Coinfigure runs without errors then boom! The make fails Reproducible: Always Steps to Reproduce: 1. emerge libdv Actual Results: make all-recursive make[1]: Entering directory `/var/tmp/portage/libdv-0.98/work/libdv-0.98' Making all in libdv make[2]: Entering directory `/var/tmp/portage/libdv-0.98/work/libdv-0.98/libdv' source='gasmoff.c' object='gasmoff.o' libtool=no \ depfile='.deps/gasmoff.Po' tmpdepfile='.deps/gasmoff.TPo' \ depmode=gcc3 /bin/sh ../depcomp \ gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -I/usr/include/SDL -D_REENTRANT -c `test -f gasmoff.c || echo './'`gasmoff.c source='bitstream.c' object='bitstream.o' libtool=no \ depfile='.deps/bitstream.Po' tmpdepfile='.deps/bitstream.TPo' \ depmode=gcc3 /bin/sh ../depcomp \ gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -I/usr/include/SDL -D_REENTRANT -c `test -f bitstream.c || echo './'`bitstream.c /bin/sh ../libtool --silent --mode=link gcc -g -O2 -Wall -I/usr/include/SDL -D_REENTRANT -o gasmoff gasmoff.o bitstream.o -lpopt -lm -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread libtool: link: cannot find the library `' make[2]: *** [gasmoff] Error 1 make[2]: Leaving directory `/var/tmp/portage/libdv-0.98/work/libdv-0.98/libdv' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/libdv-0.98/work/libdv-0.98' make: *** [all] Error 2 !!! ERROR: media-libs/libdv-0.98 failed. !!! Function src_compile, Line 41, Exitcode 2 !!! (no error message) Expected Results: Success, I demand satisfaction! Bleh
*** Bug 19223 has been marked as a duplicate of this bug. ***
please paste #emerge info
emerge info Portage 2.0.47-r10 (default-x86-1.4, gcc-3.2.2, glibc-2.3.1-r4) ================================================================= System uname: 2.4.20-gentoo-r2 i686 AMD Duron(tm) processor GENTOO_MIRRORS="http://gentoo.oregonstate.edu/ http://distro.ibiblio.org/pub/Linux/distributions/gentoo" CONFIG_PROTECT="/etc /var/qmail/control /usr/share/config /usr/kde/2/share/config /usr/kde/3/share/config /usr/X11R6/lib/X11/xkb:/usr/kde/cvs/share/config:/usr/share/config" CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d" PORTDIR="/usr/portage" DISTDIR="/usr/portage/distfiles" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR_OVERLAY="" USE="x86 apm avi encode libg++ xmms zlib gdbm berkdb tetex aalib svga tcltk pam perl python esd motif opengl 3dnow alsa arts cdr crypt cups -debug dga ethereal fbcon directfb gif flash freedts gphoto2 gpm -gtk -gtk2 -gnome imlib ipv6 java jikes jpeg kde lcms libwww mikmod mmx mozilla mpeg mysql nas ncurses -nls oggvorbis oss pdflib png qt quicktime readline samba sasl sdl slang spell sse ssl tcpd tiff truetype usb wmf X xv xml xml2" COMPILER="gcc3" CHOST="i686-pc-linux-gnu" CFLAGS="-mcpu=athlon -O3 -pipe" CXXFLAGS="-mcpu=athlon -O3 -pipe" ACCEPT_KEYWORDS="x86" MAKEOPTS="-j2" AUTOCLEAN="yes" SYNC="rsync://rsync.gentoo.org/gentoo-portage" FEATURES="sandbox ccache"
I noticed this bug (and 19223) too, but with libdv-0.99: /bin/sh ../libtool --silent --mode=link gcc -g -O2 -Wall -I/usr/include/SDL -D_REENTRANT -I/usr/include/gtk-1.2 -I/usr/include/glib-1.2 -I/usr/lib/glib/include -I/usr/X11R6/include -o playdv playdv.o display.o oss.o -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -L/usr/lib -L/usr/X11R6/lib -lgtk -lgdk -rdynamic -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm -lXv ../libdv/libdv.la -lpopt -lm libtool: link: cannot find the library `' make[2]: *** [playdv] Error 1 make[2]: Leaving directory `/var/tmp/portage/libdv-0.99/work/libdv-0.99/playdv' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/libdv-0.99/work/libdv-0.99' make: *** [all] Error 2 !!! ERROR: media-libs/libdv-0.99 failed. !!! Function src_compile, Line 37, Exitcode 2 !!! (no error message) Here is my Portage info: Portage 2.0.47-r10 (default-x86-1.4, gcc-3.2.2, glibc-2.3.2-r1) ================================================================= System uname: 2.4.21_pre7-gss i686 AMD Athlon(tm) XP 1800+ GENTOO_MIRRORS="ftp://ftp.tu-clausthal.de/pub/linux/gentoo" CONFIG_PROTECT="/etc /var/qmail/control /usr/kde/2/share/config /usr/kde/3/share/config /usr/X11R6/lib/X11/xkb /usr/kde/cvs/share/config /usr/kde/3.1/share/config /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/config" CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d" PORTDIR="/usr/portage" DISTDIR="/usr/portage/distfiles" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR_OVERLAY="/opt/portage" USE="x86 oss apm avi encode libg++ mikmod mpeg ncurses nls pdflib quicktime spell xmms xv gdbm berkdb slang readline arts tetex svga tcltk java sdl gpm libwww perl python imlib gnome qt kde motif cdr 3dnow alsa crypt cups doc dvd esd gif gtk gtk2 imap jpeg lcms maildir mmx mozilla oggvorbis opengl pam png sse ssl tcpd tiff truetype X xml2 zlib" COMPILER="gcc3" CHOST="i686-pc-linux-gnu" CFLAGS="-march=athlon-xp -O3 -pipe" CXXFLAGS="-march=athlon-xp -O3 -pipe" ACCEPT_KEYWORDS="x86 ~x86" MAKEOPTS="-j2" AUTOCLEAN="yes" SYNC="rsync://rsync9.de.gentoo.org/gentoo-portage" FEATURES="ccache sandbox"
I isolated the failure cause on my system. Cause was an invalid entry in /usr/lib/libSDL.la. There in dependency_libs was an entry -L/usr/kde/cvs/lib. But I uninstalled the cvs version of kde days before. Thus the entry pointed to a nonexistant directory, which caused libtool to error out. Portage didnt know that libsdl depended on kdelibs-5 and thus could not warn me that uninstalling it would break libsdl and thus libdv. I expect other invalid entries in other la files on my system. To fix that I reinstalled libsdl, so that libsdl correctly linked against stuff under /usr/kde/3.1/lib instead of /usr/kde/cvs/lib and generated a correct la file. Conclusion: Do not uninstall software until Portage can handle backward-dependencies ;-)
I also had this problem with avifile and kdeaddons (cvs ebuild). I have been trying to figure it out the past week and so far found out that the problem is with libSDL.la, which is linked with -pthread flag instead of -lpthread. libtool cannot handle -pthread flag and fails. I found out a couple of interesting bugreports that seem to deal with this problem: glib: http://bugzilla.gnome.org/show_bug.cgi?id=100697 gcc: http://gcc.gnu.org/cgi-bin/gnatsweb.pl?database=gcc&cmd=view+audit-trail&pr=8888 I got an impression that this bug might have been fixed on gcc-3.3 (which adds -lpthread flag when -pthread is used). P.S. Here is what I did to get more info from libtool about the failing lib. After avifile (or other ebuild) failing with "libtool: link: cannot find the library `'", go to /var/tmp/portage/avifile-0.7.34.20030319/work/avifile0.7-0.7.34/ and edit libtool file so that you change line: $echo "$modename: cannot find the library \`$lib'" 1>&2 to be like this: $echo "$modename: cannot find the library \`$lib' (lib${name}.la: $deplib)" 1>&2 After this, I get a bit clearer error message: libtool: link: cannot find the library `' (libSDL.la: -pthread)
I think I now know where the -pthread flag is coming from. On kde cvs, artsc-config now returns glib-2.0 and gthread-2.0 flags [1] and gthread-2.0 contains that -pthread (pkg-config --libs gthread-2.0). SDL depends on arts and gets the -pthread flag from 'artsc-config --libs'. which makes libtool fail when compiling packages that in turn depend on libsdl. That's why the other poster had this problem go away when he started using /usr/kde/3.1/lib instead of /usr/kde/cvs/lib. BTW, this same problem makes wine compile fail also, when it tries to compile the arts support. [1] http://webcvs.kde.org/cgi-bin/cvsweb.cgi/arts/artsc/artsc-config.in.diff?r1=1.6&r2=1.7&f=h
Workaround is to build libsdl with USE="-arts" and then at least avifile compiles ok, and I suppose all other failing ebuilds will compile ok as well. And if it was not clear yet, this problem only occurs when using arts from kde cvs.
*** Bug 21680 has been marked as a duplicate of this bug. ***
//Workaround is to build libsdl with USE="-arts" and then at least avifile compiles ok No go. libtool: link: cannot find the library `' make[2]: *** [libaviplay.la] Error 1 make[2]: Leaving directory `/var/tmp/portage/avifile-0.7.37.20030522/work/avifile0.7-0.7.37/lib' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/avifile-0.7.37.20030522/work/avifile0.7-0.7.37/lib' make: *** [all-recursive] Error 1 !!! ERROR: media-video/avifile-0.7.37.20030522 failed. !!! Function src_compile, Line 146, Exitcode 2 is there any fix for this yet? Or should I just suffer though this until arts-current is the same as arts-cvs?
The latest aviplay and libdv still do not compile with arts-cvs.
^Bump^ I cannot for the life of me figure out why this still doesn't work. Any recent developments on this?
kde-cvs thing
Yes, it only occurs with KDE CVS. When building libSDL against a kde-cvs the resulting /usr/lib/ libSDL.la is broken which leads to the build failure of libdv (and some other packages too). libSDL.la contains no dlname and the dependecy_libs contain some wrong entries. After fixing those via editor by hand, libdv builds. Here the two fixed lines from /usr/lib/libSDL.la: dlname='libSDL-1.2.so.0' dependency_libs='-lm -lasound -L/opt/kde-head/lib -ldl -lartsc -lpthread -lgmodule-2.0 -ldl - lgthread-2.0 -lglib-2.0 -L/usr/lib -lesd -laudiofile -lm -lasound -L/usr/X11R6/lib -lX11 -lXext -ldl' (Note that I have kde-cvs installed in /opt/kde-head. The ebuilds install them by default somewhere else.)
Huh...libdv now builds, as of version 0.99-r1
*** Bug 28313 has been marked as a duplicate of this bug. ***
This doesn't only occur with kdecvs, but also with kde-3.2.0_beta1. I also found that I have a really messed up libSDL.la file: # Libraries that this one depends upon. dependency_libs=' -pthread -pthread -pthread -pthread -pthread -pthread -pthread -pthread -pthread -pthread -pthread -pthread -pthread -pthread -pthread -ldirectfb -lpthread -ldl -pthread -pthread -pthread -pthread -pthread -pthread -pthread -pthread -pthread -pthread -lm -ldl -lasound -L/usr/X11R6/lib -lX11 -lXext -lvga' What's this? I did reemerge libSDL during the "cannot find -lartsc" error as I noticed I had a 1.2.5, where 1.2.6 was available. After changing the libtool file as suggested in #6 I got libtool: link: cannot find the library `'(libdirectfb.la: -pthread) Maybe updating to gcc 3.3 will fix? Will give it a try. Sebastian