Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 250350 - sys-libs/glibc-2.9_p20081201 fails to compile with distcc (with ERROR: compile (null) on localhost failed)
Summary: sys-libs/glibc-2.9_p20081201 fails to compile with distcc (with ERROR: compi...
Status: RESOLVED NEEDINFO
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: AMD64 Linux
: High normal (vote)
Assignee: Gentoo Toolchain Maintainers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: glibc-2.9
  Show dependency tree
 
Reported: 2008-12-09 08:43 UTC by Bob Raitz
Modified: 2010-04-23 23:09 UTC (History)
6 users (show)

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


Attachments
emerge --info (emerge--info.txt,3.20 KB, text/plain)
2009-12-02 13:13 UTC, Albert W. Hopkins
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Bob Raitz 2008-12-09 08:43:00 UTC
When attempting to compile sys-libs/glibc-2.9_p20081201, the compilation fails with the following message:
collect2: ld returned 1 exit status
distcc[9746] ERROR: compile (null) on localhost failed
Full emerge log to follow.

Reproducible: Always

Steps to Reproduce:
1. emerge -av sys-libs/glibc-2.9_p20081201
2. compilation fails.
3.

Actual Results:  
The compilation fails,

Expected Results:  
I expect a successful compilation of this package as cross-i486-pc-linux-gnu/glibc-2.9_p20081201 compiled successfully, as does the same package for x86.

EMERGE --INFO:

core-too ~ # emerge --info
Portage 2.2_rc17 (default-linux/amd64/2007.0, gcc-4.2.3, glibc-2.8_p20080602-r0, 2.6.27-gentoo-r5 x86_64)
=================================================================
System uname: Linux-2.6.27-gentoo-r5-x86_64-Intel-R-_Core-TM-2_Duo_CPU_E6550_@_2.33GHz-with-glibc2.2.5
Timestamp of tree: Tue, 09 Dec 2008 06:30:01 +0000
distcc 3.1 x86_64-pc-linux-gnu [enabled]
app-shells/bash:     3.2_p48
dev-java/java-config: 1.3.7-r1, 2.1.6-r1
dev-lang/python:     2.5.2-r8
dev-python/pycrypto: 2.0.1-r6
dev-util/cmake:      2.6.2
sys-apps/baselayout: 2.0.0
sys-apps/openrc:     0.3.0-r1
sys-apps/sandbox:    1.2.18.1-r3
sys-devel/autoconf:  2.13, 2.63
sys-devel/automake:  1.4_p6, 1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.2
sys-devel/binutils:  2.19
sys-devel/gcc-config: 1.4.0-r4
sys-devel/libtool:   2.2.6a
virtual/os-headers:  2.6.27-r2
ACCEPT_KEYWORDS="amd64 ~amd64"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -march=nocona -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/terminfo /etc/udev/rules.d"
CXXFLAGS="-O2 -march=nocona -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="distcc distlocks fixpackages metadata-transfer parallel-fetch preserve-libs protect-owned sandbox sfperms strict unmerge-orphans userfetch"
GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo"
LANG="en_US.UTF-8"
LC_ALL="en_US.UTF-8"
LDFLAGS=""
LINGUAS="en"
MAKEOPTS="-j16"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X a52 aac accessibility acl alsa amd64 audiofile avi bash-completion berkdb bitmap-fonts bzip2 cairo cdr cli cracklib crypt css cups dbus dlloader dri dvd dvdr dvdread emboss encode fam ffmpeg fftw flac foomaticdb fortran gdbm gif gpm gsl gtk hal iconv ipv6 isdnlog jpeg kde kdgraphics ladspa lame ldap libsamplerate libwww live mad midi mikmod mmx mp3 mpeg mudflap nas ncurses nls nptl nptlonly ogg opengl openmp pam pcre pdcre pdf pdflib perl php png ppds pppd python qt3 qt3support quicktime readline reflection samba sdl session slang slp sndfile spell spl sse sse2 ssl swat tcpd theora tiff truetype udev unicode vorbis wxwindows x264 xml xorg xscreensaver xv xvid zlib" ALSA_CARDS="ice1712" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic auth_digest authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif so speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="evdev keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en" USERLAND="GNU" VIDEO_CARDS="intel"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 1 Bob Raitz 2008-12-09 08:49:27 UTC
This is the last bit before things fail. I have a full log of the build, but it's 6.6 megs. If needed, I can put the rest up on pastebin or some such.

/var/tmp/portage/sys-libs/glibc-2.9_p20081201/work/build-x86-x86_64-pc-linux-gnu-nptl/libc_nonshared.a
x86_64-pc-linux-gnu-gcc   -nostdlib -nostartfiles -r -o /var/tmp/portage/sys-libs/glibc-2.9_p20081201/work/build-x86-x86_64-pc-linux-gnu-nptl/libc_pic.os \
	 -Wl,-d -Wl,--whole-archive /var/tmp/portage/sys-libs/glibc-2.9_p20081201/work/build-x86-x86_64-pc-linux-gnu-nptl/libc_pic.a
/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/../../../../x86_64-pc-linux-gnu/bin/ld: Relocatable linking with relocations from format elf64-x86-64 (/var/tmp/portage/sys-libs/glibc-2.9_p20081201/work/build-x86-x86_64-pc-linux-gnu-nptl/libc_pic.a(init-first.os)) to format elf32-i386 (/var/tmp/portage/sys-libs/glibc-2.9_p20081201/work/build-x86-x86_64-pc-linux-gnu-nptl/libc_pic.os) is not supported
collect2: ld returned 1 exit status
distcc[13381] ERROR: compile (null) on localhost failed
make[1]: *** [/var/tmp/portage/sys-libs/glibc-2.9_p20081201/work/build-x86-x86_64-pc-linux-gnu-nptl/libc_pic.os] Error 1
make[1]: Leaving directory `/var/tmp/portage/sys-libs/glibc-2.9_p20081201/work/glibc-2.9-20081201'
make: *** [all] Error 2
 * 
 * ERROR: sys-libs/glibc-2.9_p20081201 failed.
 * Call stack:
 *               ebuild.sh, line   49:  Called src_compile
 *             environment, line 3465:  Called eblit-run 'src_compile'
 *             environment, line 1129:  Called eblit-glibc-src_compile
 *       src_compile.eblit, line  179:  Called src_compile
 *             environment, line 3465:  Called eblit-run 'src_compile'
 *             environment, line 1129:  Called eblit-glibc-src_compile
 *       src_compile.eblit, line  187:  Called toolchain-glibc_src_compile
 *       src_compile.eblit, line  122:  Called die
 * The specific snippet of code:
 *   		make PARALLELMFLAGS="${MAKEOPTS}" || die "make for ${ABI} failed"
 *  The die message:
 *   make for x86 failed
 * 
 * If you need support, post the topmost build error, and the call stack if relevant.
 * A complete build log is located at '/var/tmp/portage/sys-libs/glibc-2.9_p20081201/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/sys-libs/glibc-2.9_p20081201/temp/environment'.
 * 

>>> Failed to emerge sys-libs/glibc-2.9_p20081201, Log file:

>>>  '/var/tmp/portage/sys-libs/glibc-2.9_p20081201/temp/build.log'
Comment 2 Bob Raitz 2008-12-09 08:54:21 UTC
Note that both sys-libs/glibc-2.9_p20081201 and  cross-x86_64-pc-linux-gnu/glibc
on two x86 systems compiled successfully.
Comment 3 Scott 2008-12-09 09:32:20 UTC
I had the same problem, do not use distcc to compile glibc

try
FEATURES="-distcc" emerge -uDN glibc

Comment 4 Bob Raitz 2008-12-09 10:27:49 UTC
That worked out. Is there any way that the ebuild can be modified so it automatically shuts off distcc? I know of a few other packages that would benefit from being able to shut off distcc. 

If there isn't a way, would it be advisable to start a new bug with that suggestion?

Comment 5 Scott 2008-12-09 19:31:50 UTC
The nvidia driver does this

export DISTCC_DISABLE=1
export CCACHE_DISABLE=1

in pkg_setup()

Im surprised that gcc and glibc dont already do that.
Comment 6 SpanKY gentoo-dev 2008-12-27 08:59:04 UTC
distcc/ccache should be fixed if they're broken, not ignored.  same goes for bad user configurations.

for people hitting this bug, do you have both distcc and ccache installed ?  if you disable just ccache but keep distcc, does it work ?

you should also describe all the nodes in your system: are they homogeneous or are you mixing things (i.e. some are x86 while others are x86_64)
Comment 7 Bob Raitz 2008-12-27 20:59:57 UTC
(In reply to comment #6)
> distcc/ccache should be fixed if they're broken, not ignored.  same goes for
> bad user configurations.
> 
> for people hitting this bug, do you have both distcc and ccache installed ?  if
> you disable just ccache but keep distcc, does it work ?
> 
> you should also describe all the nodes in your system: are they homogeneous or
> are you mixing things (i.e. some are x86 while others are x86_64)
> 
ccache is not installed on my system. I use distcc all the time. This does not effect the x86 systems. It only affects the x86_64 system, and only since glibc-2.8.x. It's easy enough to enter MAKEOPTS="-j3" FEATURES="-distcc" emerge -av <glibc_version>, but I still think it would be better to preload the ebuilds to do this automatically.

Also, I tried the suggestion of adding those above statements to the glibc ebuild. It didn't work.

And, this problem continues. The latest glibc (2.9_p20081201-r1) needed to have distcc turned off. 

Blessed be!
Pappy
Comment 8 SpanKY gentoo-dev 2008-12-27 22:05:12 UTC
you didnt describe your distcc like i asked

and no, we arent going to disable distcc in random packages.  either distcc is broken and it gets fixed, or your setup is broken and it gets fixed.
Comment 9 Bob Raitz 2008-12-28 05:29:38 UTC
(In reply to comment #8)
> you didnt describe your distcc like i asked
> 
> and no, we arent going to disable distcc in random packages.  either distcc is
> broken and it gets fixed, or your setup is broken and it gets fixed.
> 

Actually, I did. Perhaps you should read more thoroughly. 

I do not use ccache. It's a complete waste of hard drive space. A cursory reading of my emerge --info would have told that tale.

If I disable distcc, then things compile; also as was said above. If I compile with distcc, it fails, once again, as has been said before.

As to mixed nodes, My network has three Gentoo systems. Two are x86, and this one is x86_64.

Also, in the future, you might want to ease up on the snarky tone. Perhaps it matters little to you, but computers and problems with them can be fixed without being needlessly negative. Just a thought.

Blessed be!
Pappy
Comment 10 Scott 2008-12-29 07:49:09 UTC
Hi,

I have only distcc (no ccache), all three of my machines in my distcc cluster are x86-64 (2x intel laptops, 1x amd desktop).

Comment 11 SpanKY gentoo-dev 2008-12-29 09:20:17 UTC
you did not explicitly state what your nodes were.  you vaguely referred to x86 and x86_64, but never said anything beyond that.

probably due to the way multilib is handled (-m32 is inserted behind the back of the compiler), distcc needs to be second in PATH to the gcc-config wrapper or it'll probably fall apart.
Comment 12 Bob Raitz 2008-12-29 09:26:58 UTC
(In reply to comment #11)
> you did not explicitly state what your nodes were.  you vaguely referred to x86
> and x86_64, but never said anything beyond that.
> 
> probably due to the way multilib is handled (-m32 is inserted behind the back
> of the compiler), distcc needs to be second in PATH to the gcc-config wrapper
> or it'll probably fall apart.
> 
So, what information do you want? Define "node". And for the sake of civility, do try to be more clear, and less snarky. I'll tell you whatever you want, if you ask, clearly.

Blessed be!
Pappy
Comment 13 Bob Raitz 2009-01-03 19:56:38 UTC
Since it has become apparent to me that this is a distcc issue, and it has been a distcc issue since I began using distcc, I've turned off distcc under "FEATURES=" on the machine in question. 

Distcc is really superfluous, since the machine in question can do a complete world rebuild in just about a day without it.

And the most likely reason for the trouble I have is due to race conditions set up between the host computer and it's helper compilation machine. Since it is the fastest machine I have, race conditions will always turn in favor of it. That means if there are snippets of code that arrive late, it can result in errors, segmentation faults, and other problems...as it has been doing since I began using it. First with boost, then with groff, and now with this.

And since I seem unworthy of polite conversation, I'm quite over dealing with this issue.

Lesson learned: don't distribute compilation from a fast machine to one not as fast.

Blessed be!
Pappy
Comment 14 Steve Arnold archtester gentoo-dev 2009-01-07 22:55:35 UTC
Same problem here, but only hit now when I rebuilt with new headers (glibc 2.8 had previously compiled fine with).  Only two amd64 x2 machines are involved here, with identical make.conf/package.* configurations.  Distcc and ccache are enabled on both, and disabling distcc makes it compile successfully (didn't touch ccache).

Glibc has been pegged at 2.8 for a while, along with kernel-headers.  The only recent update besides the latter I can remember is distcc (but I haven't tried older versions of distcc to test that part).

Portage 2.2_rc20 (default/linux/amd64/2008.0, gcc-4.3.2, glibc-2.8_p20080602-r1, 2.6.28 x86_64)
=================================================================
System uname: Linux-2.6.28-x86_64-AMD_Athlon-tm-_64_X2_Dual_Core_Processor_4800+-with-glibc2.2.5
Timestamp of tree: Mon, 05 Jan 2009 01:00:02 +0000
distcc 3.0 x86_64-pc-linux-gnu [enabled]
ccache version 2.4 [enabled]
app-shells/bash:     3.2_p48
dev-java/java-config: 1.3.7-r1, 2.1.6-r1
dev-lang/python:     2.4.4-r15, 2.5.2-r8
dev-python/pycrypto: 2.0.1-r6
dev-util/ccache:     2.4-r7
dev-util/cmake:      2.4.6-r1
sys-apps/baselayout: 2.0.0
sys-apps/openrc:     0.3.0-r1
sys-apps/sandbox:    1.3.2
sys-devel/autoconf:  2.13, 2.63
sys-devel/automake:  1.4_p6, 1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.2
sys-devel/binutils:  2.19
sys-devel/gcc-config: 1.4.0-r4
sys-devel/libtool:   2.2.6a
virtual/os-headers:  2.6.28-r1
ACCEPT_KEYWORDS="amd64"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=athlon64 -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/lib64/fax /usr/share/bufrtables /usr/share/config /var/spool/fax/etc"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/eselect/postgresql /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c /etc/udev/rules.d"
CXXFLAGS="-march=athlon64 -O2 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="buildpkg ccache distcc distlocks fixpackages multilib-strict parallel-fetch preserve-libs protect-owned sandbox sfperms strict unmerge-orphans userfetch userpriv usersandbox"
GENTOO_MIRRORS="http://kuroshin.arnolds.bogus/gentoo/"
LANG="C"
LDFLAGS="-Wl,-O1"
LINGUAS="en"
MAKEOPTS="-j10"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://kuroshin.arnolds.bogus/gentoo-portage"
USE="3dnow X Xaw3d a52 aac aalib accessibility acl acpi ada alsa amd64 ansi ao artworkextra aspell avahi avi bitmap-fonts bluetooth bonobo browserplugin bzip2 cairo caps cddb cdparanoia cdr clamav cli cracklib crypt cups curl daap dbus dga directfb divx4linux djvu dri dts dv dvd dvdr dvdread dynagraph emacs enchant encode evo exif fam fame fbcon ffmpeg firefox fits flac fontconfig fortran freetype freetype2 gb gd gdbm geos gif gimp gmp gnome gnutls gphoto2 gpm gps graphviz grass gs gstreamer gtk gtkhtml gtkspell guile hal howl iconv icq id3tag ieee1394 imagemagick imap imlib ipv6 isdnlog jabber jack jasper java jbig jikes jpeg jpeg2k jpg junit ladspa lame lapack lash latex lcms ldap libnotify libsamplerate lirc lm_sensors logrotate mad midi mmx motif mp3 mpeg mplayer mudflap multilib mysql mythtv nas nautilus ncurses netcdf nfs nls nolvmstatic nptlonly nsplugin numeric ogdi ogg oggvorbis opengl openmp oss pam pcre pda pdf perl plotutils png postgres pppd pulseaudio python qt qt3 quicktime readline reflection rtc ruby samba sasl sdl seamonkey session slp smartcard sndfile snmp spamassassin spell spl sse sse2 ssl subtitles svg sysfs tcl tcpd theora threads tiff timidity tk truetype truetype-fonts type1-fonts unicode usb v4l v4l2 vcd vorbis wavpack wifi xanim xext xine xml xorg xpm xv xvid xvmc zeo zlib zvbi" ALSA_CARDS="emu10k1 hda-intel" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="dav dav_fs authn_file auth_digest authz_groupfile" CAMERAS="directory canon casio fuji kodak polaroid ptp2 samsung spca50x" ELIBC="glibc" INPUT_DEVICES="keyboard mouse joystick evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en" USERLAND="GNU" VIDEO_CARDS="fbdev radeon vesa v4l radeonhd"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LC_ALL, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 15 Albert W. Hopkins 2009-12-02 13:12:41 UTC
This occurs using distcc w/o ccache even when the only distcc host is localhost (and I mean "localhost", not 127.0.0.1 which means it's not actually connecting to a distccd).  System is x86_64 using distcc-3.1-r4 and glibc-2.11.

Comment 16 Albert W. Hopkins 2009-12-02 13:13:03 UTC
Created attachment 211761 [details]
emerge --info
Comment 17 Steven Noonan 2010-01-26 06:28:03 UTC
I'm hitting this exact same problem too, on an x86_64 system. I'm convinced distcc has a bug.
Comment 18 James 2010-04-23 23:09:26 UTC
(In reply to comment #17)
> I'm hitting this exact same problem too, on an x86_64 system. I'm convinced
> distcc has a bug.
> 

Same here as well. Two identical x86_64 machines.