Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 25983

Summary: Numerous ebuilds fail due to undefined reference to __builtin_va_start when using distcc
Product: Gentoo Linux Reporter: Svein Erik Brostigen <svein.brostigen>
Component: [OLD] Core systemAssignee: Please assign to toolchain <gcc-porting>
Status: RESOLVED WORKSFORME    
Severity: critical CC: chris.rs, daniel.armyr, gentoo-bugs2, gentoo-bugs, gentoo, lisa, mark, radek, unit3
Priority: Highest    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: sysctl_h.patch

Description Svein Erik Brostigen 2003-08-05 13:54:03 UTC
I have been trying to update my system today but see numerous builds failing
with the following errors: (This is from baselayout-1.8.6.10)
gcc  -o runlevel runlevel.o
shutdown.o(.text+0x3b1): In function `spawn':
: undefined reference to `__builtin_va_start'
collect2: ld returned 1 exit status

This is a real showstopper since I can't get anything built due to the error.

Installed versions of some tools:
binutils 2.14.90.0.5-r1
gcc 3.3-r1
coreutils 5.0-r1
glibc 2.3.2-r2
portage 2.0.49_pre17
Comment 1 Martin Schlemmer (RETIRED) gentoo-dev 2003-08-07 03:58:34 UTC
Can you try it with glibc 2.3.2-r3?  If not,use gcc-3.2.3-r[12], as that is
stable.
Comment 2 Svein Erik Brostigen 2003-08-07 09:17:47 UTC
I tried to build glibc-2.3.2-r3 but it fails with the following error: 
gcc ../sysdeps/generic/libc-start.c -c -std=gnu99 -O2 -Wall -Winline 
-Wstrict-prototypes -Wwrite-strings -freorder-blocks -march=pentium3 -pipe   
-I../nptl   -I../include -I. 
-I/var/tmp/portage/glibc-2.3.2-r3/work/glibc-2.3.2/buildhere/csu -I.. 
-I../libio -I../nptl 
-I/var/tmp/portage/glibc-2.3.2-r3/work/glibc-2.3.2/buildhere 
-I../sysdeps/i386/elf -I../nptl/sysdeps/unix/sysv/linux/i386/i686 
-I../nptl/sysdeps/unix/sysv/linux/i386 -I../nptl/sysdeps/unix/sysv/linux 
-I../nptl/sysdeps/pthread -I../sysdeps/pthread -I../nptl/sysdeps/unix/sysv 
-I../nptl/sysdeps/unix -I../nptl/sysdeps/i386/i686 -I../nptl/sysdeps/i386 
-I../sysdeps/unix/sysv/linux/i386 -I../sysdeps/unix/sysv/linux -I../sysdeps/gnu 
-I../sysdeps/unix/common -I../sysdeps/unix/mman -I../sysdeps/unix/inet 
-I../sysdeps/unix/sysv/i386 -I../sysdeps/unix/sysv -I../sysdeps/unix/i386 
-I../sysdeps/unix -I../sysdeps/posix -I../sysdeps/i386/i686/fpu 
-I../sysdeps/i386/i686 -I../sysdeps/i386/i486 -I../nptl/sysdeps/i386/i486 
-I../sysdeps/i386/fpu -I../sysdeps/i386 -I../sysdeps/wordsize-32 
-I../sysdeps/ieee754/ldbl-96 -I../sysdeps/ieee754/dbl-64 
-I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754 -I../sysdeps/generic/elf 
-I../sysdeps/generic -nostdinc -isystem 
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3/include -isystem 
/lib/modules/2.6.0-test2-mm4/build/include -D_LIBC_REENTRANT -D_LIBC_REENTRANT 
-include ../include/libc-symbols.h       -DHAVE_INITFINI -o 
/var/tmp/portage/glibc-2.3.2-r3/work/glibc-2.3.2/buildhere/csu/libc-start.o -MD 
-MP -MF 
/var/tmp/portage/glibc-2.3.2-r3/work/glibc-2.3.2/buildhere/csu/libc-start.o.dt 
In file included from ../sysdeps/unix/sysv/linux/sys/sysctl.h:29, 
                 from ../include/sys/sysctl.h:2, 
                 from ../sysdeps/unix/sysv/linux/dl-osinfo.h:22, 
                 from ../sysdeps/generic/libc-start.c:33: 
/lib/modules/2.6.0-test2-mm4/build/include/linux/sysctl.h:33: error: parse 
error before '*' token 
/lib/modules/2.6.0-test2-mm4/build/include/linux/sysctl.h:35: error: parse 
error before '*' token 
/lib/modules/2.6.0-test2-mm4/build/include/linux/sysctl.h:36: error: parse 
error before '*' token 
/lib/modules/2.6.0-test2-mm4/build/include/linux/sysctl.h:37: error: parse 
error before '*' token 
/lib/modules/2.6.0-test2-mm4/build/include/linux/sysctl.h:40: error: parse 
error before '}' token 
distcc[846] ERROR: compile on localhost failed with exit code 1 
make[2]: *** 
[/var/tmp/portage/glibc-2.3.2-r3/work/glibc-2.3.2/buildhere/csu/libc-start.o] 
Error 1 
make[2]: *** Waiting for unfinished jobs.... 
distcc[828] (dcc_writex) ERROR: failed to write: No route to host 
distcc[828] (dcc_build_somewhere) Warning: failed to distribute to 
138.1.139.196, running locally instead 
make[2]: Leaving directory 
`/var/tmp/portage/glibc-2.3.2-r3/work/glibc-2.3.2/csu' 
make[1]: *** [csu/subdir_lib] Error 2 
make[1]: Leaving directory `/var/tmp/portage/glibc-2.3.2-r3/work/glibc-2.3.2' 
make: *** [all] Error 2 
 
!!! ERROR: sys-libs/glibc-2.3.2-r3 failed. 
!!! Function src_compile, Line 282, Exitcode 2 
!!! (no error message) 
 
Now, I'm going to try to downgrade gcc to 3.2.3 and see if I can get a 
different result. 
 
Comment 3 Svein Erik Brostigen 2003-08-07 10:19:57 UTC
After downgrading gcc to 2.3.2-r2, it seems to be working again. 
 
Strange since I have been using gcc 3.3 for quite some time without any 
problems. 
 
Comment 4 Martin Schlemmer (RETIRED) gentoo-dev 2003-08-07 10:31:14 UTC
Created attachment 15688 [details, diff]
sysctl_h.patch

Its a kernel issue (-r3 failing).  Above patch should fix it.
Comment 5 Martin Schlemmer (RETIRED) gentoo-dev 2003-08-10 16:38:49 UTC
Got it working ?
Comment 6 Jasmin Buchert 2003-09-07 20:27:10 UTC
I don't think thats the problem. I have the same errors here with several packages (eg. procps, 
gnupg) after upgraded to gcc 3.3.1. 
Comment 7 Daniel Seyffer 2003-09-08 03:30:17 UTC
Hi, I just finished upgrading to gcc-3.3.1-r1 and am having the same problems here. Seems every compile for packages that need updating now fails (baselayout, tiff, ...). :-/
Comment 8 Svein Erik Brostigen 2003-09-08 12:29:18 UTC
The problem is back and is caused by upgrading gcc to 3.3.1-r1. 
This is very annoying since portage now upgrades gcc to 3.3.1 for you. Resulting in the 
inability to compile any new package. 
 
 
 
Comment 9 Martin Schlemmer (RETIRED) gentoo-dev 2003-09-08 14:00:01 UTC
What binutils, glibc ?
Comment 10 Svein Erik Brostigen 2003-09-08 14:25:30 UTC
emerge -p binutils glibc 
 
These are the packages that I would merge, in order: 
 
Calculating dependencies ...done! 
[ebuild   R   ] sys-devel/binutils-2.14.90.0.6-r2 
[ebuild   R   ] sys-libs/glibc-2.3.2-r1 
 
Here is the contents from emerge info too: 
Portage 2.0.49-r3 (default-x86-1.4, gcc-3.3.1, glibc-2.3.2-r2,2.3.2-r1, 2.6.0-test4-mm4) 
================================================================= 
System uname: 2.6.0-test4-mm4 i686 Intel(R) Pentium(R) 4 CPU 2.40GHz 
distcc 2.10 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [enabled] 
ccache version 2.2 [enabled] 
ACCEPT_KEYWORDS="x86 ~x86" 
AUTOCLEAN="yes" 
CFLAGS="-march=pentium3 -O3 -pipe -fomit-frame-pointer -funroll-loops -mfpmath=sse -
mmmx -msse" 
CHOST="i686-pc-linux-gnu" 
COMPILER="gcc3" 
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/ /opt/glftpd/etc /usr/share/config" 
CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d" 
CXXFLAGS="-march=pentium3 -O3 -pipe -fomit-frame-pointer -funroll-loops -mfpmath=sse -
mmmx -msse" 
DISTDIR="/usr/portage/distfiles" 
FEATURES="ccache autoaddcvs sandbox distcc notitles" 
GENTOO_MIRRORS="ftp://gentoo.mirrors.pair.com/ http://www.ibiblio.org/gentoo" 
MAKEOPTS="-j4" 
PKGDIR="/usr/portage/packages" 
PORTAGE_TMPDIR="/var/tmp" 
PORTDIR="/usr/portage" 
PORTDIR_OVERLAY="/usr/local/portage" 
SYNC="rsync://rsync.gentoo.org/gentoo-portage" 
USE="x86 oss avi crypt cups encode foomaticdb gif jpeg libg++ mad mikmod mmx mpeg 
ncurses nls pdflib png quicktime spell truetype xml2 xmms xv zlib directfb alsa gdbm berkdb 
slang readline arts tetex svga tcltk java guile X sdl gpm tcpd libwww ssl perl python esd imlib 
oggvorbis gnome gtk qt kde motif opengl acpi artswrappersuid dga fbcon ggi gstreamer gtk2 
gtkhtml icc icc-pgo innodb mbox mozilla nptl oci8 odbc sse tiff xvid -apm -mysql -pam" 
 
Comment 11 Hal Duston 2003-09-08 14:31:30 UTC
When I stop using distcc (different versions of gcc on other boxes) the problems I had emerging _many_ things (baselayout, tiff, procps, etc. . .) went away.  I was then able to emerge everything successfully
Comment 12 Svein Erik Brostigen 2003-09-08 14:52:40 UTC
Interesting... I'm using distcc. 
 
I'm emergeing gcc 3.3.1-r on another of my distcc farm PC's and then I'll try to repeat the 
process using just the local and the one rebuilt distcc machine. 
 
I'll update the bug with the result of this later today. 
 
Comment 13 Martin Schlemmer (RETIRED) gentoo-dev 2003-09-08 15:16:29 UTC
Lisa have a look.  Don't distcc check for same version gcc ?  I guess even
binutils, etc might cause issues.
Comment 14 Lisa Seelye (RETIRED) gentoo-dev 2003-09-08 15:23:37 UTC
You have to have the same gcc[1] version of gcc on each volunteer for distcc.  Distcc doesn't check versions.


1: 3.2.x series of gcc on all hosts, or 3.3.x series on all machines.
Comment 15 Daniel Seyffer 2003-09-08 16:13:55 UTC
Hm, distcc sounds promising. (though I was aware of these problems, I totally forgot about distcc and gcc versions.) But setting distcc to localhost only or even stoppig it completely didn't change a thing for me. 
Comment 16 Svein Erik Brostigen 2003-09-08 16:32:10 UTC
Alas, even using the same version of gcc on 2 PC's in order to test it, produced the same result. 
Hence it is not related to distcc. 
 
/usr/lib/ccache/bin/gcc -o pal2rgb -g -march=pentium3 -O3 -pipe -fomit-frame-pointer -funroll-
loops -mfpmath=sse -mmmx -msse -I. -I../tools -I../libtiff pal2rgb.o ../libtiff/libtiff.so.3 -L/usr/lib -
ljpeg -L/usr/lib -lz  -lm 
fax2ps.o(.text+0xafb): In function `main': 
../tools/fax2ps.c:379: warning: the use of `mktemp' is dangerous, better use `mkstemp' 
../libtiff/libtiff.so.3: undefined reference to `__builtin_va_start' 
collect2: ld returned 1 exit status 
distcc[13756] ERROR: compile on localhost failed 
make[1]: *** [fax2ps] Error 1 
make[1]: *** Waiting for unfinished jobs.... 
../libtiff/libtiff.so.3: undefined reference to `__builtin_va_start' 
collect2: ld returned 1 exit status 
distcc[13760] ERROR: compile on localhost failed 
make[1]: *** [gif2tiff] Error 1 
../libtiff/libtiff.so.3: undefined reference to `__builtin_va_start' 
collect2: ld returned 1 exit status 
distcc[13764] ERROR: compile on localhost failed 
make[1]: *** [pal2rgb] Error 1 
make: *** [all] Error 2 
 
I then removed distcc from features in /etc/make.conf and reran the emerge. 
Now it is working fine. 
It seems like distcc and gcc 3.3.1 is not friendly with each other :) 
 
I had to manually re-emerge distcc to get it to handle the new version of gcc. 
 
Once I had done that, I reran emerge tiff (which caused the problem above) and it now 
compiled fine even using distcc. 
 
1. emerge new gcc version 
2. emerge distcc again 
(Do this on all machines involved in distcc) 
 
This should remove the errors I first reported. 
 
 
Comment 17 Daniel Seyffer 2003-09-09 01:07:26 UTC
yes, re-emerging distcc fixed all problems here. :)
Comment 18 Mauricio L. Pilla gentoo-dev 2003-09-09 05:05:42 UTC
I've tested emerging tiff (both the stable and the ~x86 version) after emerging gcc 3.3.1-r1 and it has worked.

%emerge info
Portage 2.0.49-r3 (default-x86-1.4, gcc-3.3.1, glibc-2.3.2-r1, 2.4.20-wolk4.10s)
=================================================================
System uname: 2.4.20-wolk4.10s i686 Intel(R) Pentium(R) III Mobile CPU      1200MHz
distcc 2.9 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled]
ccache version 2.2 [enabled]
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CFLAGS="-march=pentium3 -Os -fomit-frame-pointer -mmmx -msse -pipe "
CHOST="i686-pc-linux-gnu"
COMPILER="gcc3"
CONFIG_PROTECT="/var/qmail/control /usr/kde/2/share/config /usr/kde/3/share/config /etc /usr/X11R6/lib/X11/xkb /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"
CXXFLAGS="-march=pentium3 -Os -fomit-frame-pointer -mmmx -msse -pipe "
DISTDIR="/var/cache/portage/distfiles"
FEATURES="sandbox autoaddcvs ccache"
GENTOO_MIRRORS="http://gentoo.chem.wisc.edu/gentoo"
MAKEOPTS="-j2"
PKGDIR="/var/cache/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="x86 oss apm avi crypt cups encode foomaticdb gif jpeg libg++ mad mmx mpeg ncurses nls pdflib png quicktime spell truetype xml2 xmms xv zlib directfb gtkhtml alsa gdbm berkdb slang readline arts tetex aalib nas bonobo svga ggi tcltk guile X sdl gpm tcpd pam libwww ssl perl python imlib oggvorbis gtk qt kde motif opengl ldap cdr artswrappersuid dga dvd evo fbcon gps gtk2 icc leim moznoirc moznomail mule nptl pcmcia pic plotutils pnp prebuilt sse tiff type1 usb wmf Xaw3d -3dnow -java -mikmod -esd -gnome -mozilla"
Comment 19 SpanKY gentoo-dev 2003-09-12 05:45:21 UTC
*** Bug 28513 has been marked as a duplicate of this bug. ***
Comment 20 Mark E. Drummond 2003-09-12 17:58:33 UTC
Sorry, I'm still not clear on this. I've got three Gentoo boxes on my LAN all 
participating as distcc clients for each other. I am now in this state getting 
the __builtin_va_start errors on the one machine that I tried to update which 
now has gcc 3.3.1 installed. 
 
Should I downgrade gcc on the "broken" machine and also avoid upgrading gcc on 
the other two? 
 
I tried re-emerging distcc but it failed with the same error, even with 
'FEATURES="" emerge distcc'. 
 
Mark 
Comment 21 Daniel Seyffer 2003-09-13 01:19:54 UTC
Hi. 
there are 2 things you should consider - anyone here correct me if I'm wrong :)
1.) re-emerge disctcc should fix the error message/the issue discussed here. At least it did for me. ;)
2.) you can not (should not?) use distcc with different major sub-releases of gcc.  i.e. do not use distcc if you have gcc-3.2.x on one and gcc-3.3.x on another machine as this asks for trouble.
--> Fix: for all machines (if possible): 
disable distcc, upgrade to gcc-3.3.x, re-emerge distcc, re-enable distcc.
(if for some reasony you can't or don't want to upgrade all gccs, then only use distcc on those systems that either all have 3.3.x or 3.2.x ...)
Daniel
Comment 22 SpanKY gentoo-dev 2003-10-20 22:52:36 UTC
*** Bug 31637 has been marked as a duplicate of this bug. ***
Comment 23 SpanKY gentoo-dev 2003-10-20 22:52:50 UTC
*** Bug 27964 has been marked as a duplicate of this bug. ***
Comment 24 SpanKY gentoo-dev 2003-12-25 21:04:28 UTC
the issue is that distcc should only be used with 'similar' gcc versions
Comment 25 Daniel Ahlberg (RETIRED) gentoo-dev 2004-02-22 23:19:03 UTC
*** Bug 42333 has been marked as a duplicate of this bug. ***
Comment 26 Graeme Humphries 2004-06-14 10:20:38 UTC
*** Bug 53902 has been marked as a duplicate of this bug. ***
Comment 27 Roman Gaufman 2004-09-16 13:55:26 UTC
got that here on a Pentium-MMX 266MHZ on a clean gentoo install:

laptop 2.6.8-gentoo-r3 # emerge info
Portage 2.0.50-r11 (default-x86-2004.2, gcc-3.3.3, glibc-2.3.3.20040420-r0, 2.6.8-gentoo-r3)
=================================================================
System uname: 2.6.8-gentoo-r3 i586 Mobile Pentium MMX
Gentoo Base System version 1.4.16
distcc 2.16 i586-pc-linux-gnu (protocols 1 and 2) (default port 3632) [enabled]
ccache version 2.3 [enabled]
Autoconf: sys-devel/autoconf-2.59-r3
Automake: sys-devel/automake-1.8.3
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CFLAGS="-Os -march=pentium-mmx -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
COMPILER=""
CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3/share/config /usr/share/config /v
ar/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-Os -march=pentium-mmx -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs ccache distcc sandbox"
GENTOO_MIRRORS="http://gentoo.osuosl.org http://distro.ibiblio.org/pub/Linux/distributions/gentoo"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X acpi alsa apm audiofile avi bitmap-fonts cap cdr crypt cups dvd encode ethereal faad flac foomaticdb gif 
gphoto2 gpm gtk2 imap imlib imlib2 jpeg kde libg++ libwww mbox mmx mysql ncurses oggvorbis pam pcmcia pdflib php
 pic png pnp python qt quicktime readline speex spell ssl svg tcpd tiff truetype trusted usb wifi x86 xine xprin
t xv xvid zlib"