I think I have a fix for the libtool convenience library bug, I've 
included a diff to ltmain.sh.

This bug occurs in libtool 1.4 and higher (possibly earlier versions 
too, though I haven't seen that yet). Basically it happens when libtool 
causes cc to link a "convenience library" with a .al extension twice. 
You get errors where a symbol is multiply defined from the same file, 
like this:

cc <...> -all_load dir/.libs/libfoo.al <...> dir/.libs/libfoo.al
ld: multiple definitions of symbol _foo_bar
dir/.libs/libfoo.al(foo.lo) definition of _foo_bar in section 
(__TEXT,__text)
dir/.libs/libfoo.al(foo.lo) definition of _foo_bar in section 
(__TEXT,__text)
/usr/bin/libtool: internal link edit command failed

So far, this patch has worked with audiofile, gdk-pixbuf, and nautilus. 
This patch can has been worked around by adding --disable-shared as a 
param to configure, since this error only occurs when creating shared 
libs. If anyone else has a package which uses --disable-shared for this 
reason, or uses some other workaround to this bug, please test this 
patch so I can send it upstream.

Thanks,

Dave Vasilevsky


--- ltmain-old.sh       Fri Jan 18 15:10:01 2002
+++ ltmain.sh   Sat Jan 26 17:55:29 2002
@@ -2862,7 +2862,12 @@
        if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
          eval cmds=\"$archive_expsym_cmds\"
        else
+         save_deplibs="$deplibs"
+         for conv in $convenience; do
+           deplibs="${deplibs%$conv*} ${deplibs#*$conv}"
+         done
          eval cmds=\"$archive_cmds\"
+         deplibs="$save_deplibs"
        fi
        IFS="${IFS=     }"; save_ifs="$IFS"; IFS='~'
        for cmd in $cmds; do


_______________________________________________
Fink-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/fink-devel

Reply via email to