Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 35530 - giflib - Compile crash when using distcc
Summary: giflib - Compile crash when using distcc
Status: RESOLVED NEEDINFO
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: x86 Linux
: High normal (vote)
Assignee: Lisa Seelye (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-12-10 08:59 UTC by Tor Håkon Haugen
Modified: 2004-08-27 00:24 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
Logfile (giflib.txt,124.67 KB, text/plain)
2004-08-27 00:24 UTC, Tor Håkon Haugen
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Tor Håkon Haugen 2003-12-10 08:59:31 UTC
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"
Comment 1 Lisa Seelye (RETIRED) gentoo-dev 2003-12-10 09:11:50 UTC
Almost looks like the Makefile is getting ahead of itself.
Comment 2 Tor Håkon Haugen 2003-12-10 12:50:47 UTC
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.
Comment 3 Mr. Bones. (RETIRED) gentoo-dev 2003-12-10 13:03:21 UTC
does it work with MAKEOPTS="-j1" ?
Comment 4 Tor Håkon Haugen 2003-12-10 13:14:03 UTC
No, it still crash.
Comment 5 Lisa Seelye (RETIRED) gentoo-dev 2003-12-10 13:20:39 UTC
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.
Comment 6 Tor Håkon Haugen 2003-12-10 13:45:52 UTC
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..
Comment 7 Tor Håkon Haugen 2003-12-12 09:45:19 UTC
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?
Comment 8 Lisa Seelye (RETIRED) gentoo-dev 2003-12-21 22:10:54 UTC
Let me run some tests here this week (since I finally got my other node back up!)...
Comment 9 Lisa Seelye (RETIRED) gentoo-dev 2004-01-09 09:50:27 UTC
Okay, this is verified.

This appears to be a distcc problem since it fails with localhost and 127.0.0.1.
Comment 10 Benjamin Smee (strerror) (RETIRED) gentoo-dev 2004-03-01 14:25:20 UTC
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.
Comment 11 Lisa Seelye (RETIRED) gentoo-dev 2004-03-01 14:43:21 UTC
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 ?).
Comment 12 Tor Håkon Haugen 2004-03-04 06:41:46 UTC
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?
Comment 13 Michael Dale Long 2004-07-16 10:45:02 UTC
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.
Comment 14 Tor Håkon Haugen 2004-08-27 00:24:46 UTC
Created attachment 38275 [details]
Logfile

Here is a log with both stdout and stderr of the event.