Emerge fails to compile giflib-4.1.0-r3 using distcc. Reproducible: Always Steps to Reproduce: 1. emerge giflib 2. crash! Actual Results: distcc[14248] (dcc_spawn_child) forking to execute: gcc -march=athlon-xp -O3 -pipe -fomit-frame-pointer -I/usr/X11R6/include -o gif2ps gif2ps.o ../lib/. libs/libgif.a -L/usr/X11R6/lib -lX11 ../lib/libgetarg.a distcc[14249] (dcc_increment_safeguard) setting safeguard: _DISTCC_SAFEGUARD=1 distcc[14248] (dcc_spawn_child) child started as pid14249 gif2epsn.o(.text+0x8d): In function `main': : undefined reference to `GifQuietPrint' gif2epsn.o(.text+0x164): In function `main': : undefined reference to `DGifOpenFileHandle' gif2epsn.o(.text+0x1d2): In function `main': : undefined reference to `DGifGetRecordType' gif2epsn.o(.text+0x22d): In function `main': : undefined reference to `DGifCloseFile' gif2epsn.o(.text+0x23e): In function `main': : undefined reference to `PrintGifError' gif2epsn.o(.text+0x252): In function `main': : undefined reference to `DGifGetImageDesc' gif2epsn.o(.text+0x2a0): In function `main': : undefined reference to `GifQprintf' gif2epsn.o(.text+0x313): In function `main': : undefined reference to `GifQprintf' gif2epsn.o(.text+0x32f): In function `main': : undefined reference to `DGifGetLine' gif2epsn.o(.text+0x35c): In function `main': : undefined reference to `GifQprintf' gif2epsn.o(.text+0x37f): In function `main': : undefined reference to `DGifGetLine' gif2epsn.o(.text+0x3c9): In function `main': : undefined reference to `DGifGetExtension' gif2epsn.o(.text+0x3e8): In function `main': : undefined reference to `DGifGetExtensionNext' gif2epsn.o(.text+0x479): In function `main': : undefined reference to `DGifOpenFileName' gif2epsn.o(.text+0x645): In function `DumpScreen2Epsn': : undefined reference to `GifQprintf' collect2: ld returned 1 exit status distcc[14232] (dcc_collect_child) cc child 14233 terminated with status 0x100 distcc[14232] (dcc_collect_child) cc times: user 0.060990s, system 0.035994s, 4040 minflt, 633 majflt distcc[14232] ERROR: compile on localhost failed distcc[14232] elapsed compilation time 0.146898s distcc[14232] (dcc_exit) exit: code 1; self: 0.000999 user 0.000999 sys; children: 0.060990 user 0.035994 sys distcc[14232] (dcc_cleanup_tempfiles) deleted 0 temporary files make[1]: *** [gif2epsn] Error 1 make[1]: *** Waiting for unfinished jobs.... gif2ps.o(.text+0x95): In function `main': : undefined reference to `GifQuietPrint' gif2ps.o(.text+0xed): In function `main': : undefined reference to `DGifOpenFileHandle' gif2ps.o(.text+0x15b): In function `main': : undefined reference to `DGifGetRecordType' gif2ps.o(.text+0x1b6): In function `main': : undefined reference to `DGifCloseFile' gif2ps.o(.text+0x1c7): In function `main': : undefined reference to `PrintGifError' gif2ps.o(.text+0x1db): In function `main': : undefined reference to `DGifGetImageDesc' gif2ps.o(.text+0x229): In function `main': : undefined reference to `GifQprintf' gif2ps.o(.text+0x293): In function `main': : undefined reference to `GifQprintf' gif2ps.o(.text+0x2af): In function `main': : undefined reference to `DGifGetLine' gif2ps.o(.text+0x2dc): In function `main': : undefined reference to `GifQprintf' gif2ps.o(.text+0x2ff): In function `main': : undefined reference to `DGifGetLine' gif2ps.o(.text+0x349): In function `main': : undefined reference to `DGifGetExtension' gif2ps.o(.text+0x368): In function `main': : undefined reference to `DGifGetExtensionNext' gif2ps.o(.text+0x3ef): In function `main': : undefined reference to `DGifOpenFileName' gif2ps.o(.text+0x684): In function `DumpScreen2PS': : undefined reference to `GifQprintf' collect2: ld returned 1 exit status distcc[14248] (dcc_collect_child) cc child 14249 terminated with status 0x100 distcc[14248] (dcc_collect_child) cc times: user 0.054991s, system 0.036994s, 4039 minflt, 633 majflt distcc[14248] ERROR: compile on localhost failed distcc[14248] elapsed compilation time 0.176242s distcc[14248] (dcc_exit) exit: code 1; self: 0.000000 user 0.001999 sys; children: 0.054991 user 0.036994 sys distcc[14248] (dcc_cleanup_tempfiles) deleted 0 temporary files make[1]: *** [gif2ps] Error 1 make[1]: Leaving directory `/var/tmp/portage/giflib-4.1.0-r3/work/giflib-4.1. 0/util' make: *** [all-recursive] Error 1 !!! ERROR: media-libs/giflib-4.1.0-r3 failed. !!! Function src_compile, Line 39, Exitcode 2 !!! (no error message) Expected Results: The program should have been emerged successfully. # emerge info Portage 2.0.49-r15 (default-x86-1.4, gcc-3.2.3, glibc-2.3.2-r3, 2.6.0-test11) ================================================================= System uname: 2.6.0-test11 i686 AMD Athlon(tm) XP 1800+ Gentoo Base System version 1.4.3.10p1 distcc[14459] (dcc_trace_version) distcc 2.11.1 i686-pc-linux-gnu; built Oct 27 2003 20:03:42 [enabled] ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer" CHOST="i686-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /var/qmail/control /usr/share/config /usr/kde/2/share/config /usr/kde/3/share/config /usr/X11R6/lib/X11/xkb" CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d" CXXFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="sandbox ccache autoaddcvs fixpackages distcc" GENTOO_MIRRORS="http://gentoo.linux.no/ ftp://gentoo.linux.no/pub/gentoo/" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.no.gentoo.org/gentoo-portage/" USE="x86 oss apm crypt cups encode foomaticdb libg++ mad mikmod nls pdflib spell xml2 zlib gtkhtml gdbm berkdb slang readline bonobo svga tcltk guile mysql sdl gpm tcpd pam libwww ssl perl esd imlib motif mozilla X gtk gtk2 gnome alsa flash ipv6 cdr gif jpeg ncurses oggvorbis opengl png truetype usb xv avi mpeg quicktime -kde -qt -arts aalib java xmms python dvd"
Almost looks like the Makefile is getting ahead of itself.
Is there a way to specify an ebuild not to use distcc? Similar to the IUSE option, it could have a FEATURE="-distcc" to remove distcc form the FEATURES.
does it work with MAKEOPTS="-j1" ?
No, it still crash.
Can you enable distcc in FEATURES, and set MAKEOPTS to -j1 please and then do: # DISTCC_VERBOSE="1" DISTCC_LOG="/tmp/giflib.txt" emerge giflib Attach the log here when it fails.
Well, let's say we have found something interesting. All tests are with these options in /etc/make.conf : MAKEOPTS="-j1" FEATURES="distcc" First: # DISTCC_VERBOSE="1" DISTCC_LOG="/tmp/giflib.txt" emerge giflib Works. Number two: This one already had distcc-config --set-verbose 1, same with the one above. # emerge giflib -v OR emerge giflib Fails # distcc-config --set-verbose 0 # source /etc/profile # emerge giflib -v OR emerge giflib Works #distcc-config --set-verbose 1 # source /etc/profile # emerge giflib -v OR emerge giflib Works... strange enough. So I open a new terminal and su to root... guess what? # emerge giflib -v OR emerge giflib FAILS... and it's the exact same settings as the previous test. And again... this time without source /etc/profile. # distcc-config --set-verbose 0 # emerge giflib Works... # distcc-config --set-verbose 1 # emerge giflib Fails..
Sorry, I am unable to generate the error if i DISTCC_LOG is set, either via command line, or by using distcc-config --set-log. The error seems to occure only if verbose is set with distcc-conf --set-verbose, not if it's set with the DISTCC_VERBOSE. Steps to reproduce (more exact): 1. # emerge distcc 2. add distcc to FEATURES in make.conf, and set MAKEOPTS to -j1 or -j5, doesn't seems to matter. 3. # distcc-config --set-verbose 1 4. # emerge giflib I'll see if I can play with the distcc-config script this weekend, maybe it's something odd there?
Let me run some tests here this week (since I finally got my other node back up!)...
Okay, this is verified. This appears to be a distcc problem since it fails with localhost and 127.0.0.1.
I can not reproduce this at all. I am even using the same CFLAGS as the initial poster and have tried the suggested steps to get the failure.
Actually, I think i may have made an error in judgement in comment 9. If this works when using only localhost to compile then it is unlikely to be a distcc problem since distcc will not connect through the daemon, but rather just pass it to gcc. Even trying now with distcc and giflib it compiles. I'm going to go ahead and mark this as NEEDINFO and wait until the original poster can provide additional information (is this still a problem? can you account for comment 10 ?).
Your right, it does compile with distcc. However, would you try again with this line? # DISTCC_VERBOSE=1 emerge giflib It's the only safe way I have found to reproduce the fault. Can anyone confirm this?
I ran into this problem during a new install. I was using distcc, and it crashed even though there were no remote compilers available at the time (and thus everything was taking place on the local machine), the compile still failed unless I removed distcc from the FEATURES.
Created attachment 38275 [details] Logfile Here is a log with both stdout and stderr of the event.