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 system | Assignee: | Please assign to toolchain <gcc-porting> |
Status: | RESOLVED WORKSFORME | ||
Severity: | critical | CC: | chris.rs, daniel.armyr, gentoo-bugs2, gentoo, 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
Can you try it with glibc 2.3.2-r3? If not,use gcc-3.2.3-r[12], as that is stable. 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. 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. Created attachment 15688 [details, diff]
sysctl_h.patch
Its a kernel issue (-r3 failing). Above patch should fix it.
Got it working ? 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. 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, ...). :-/ 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. What binutils, glibc ? 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" 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 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. Lisa have a look. Don't distcc check for same version gcc ? I guess even binutils, etc might cause issues. 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. 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. 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. yes, re-emerging distcc fixed all problems here. :) 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" *** Bug 28513 has been marked as a duplicate of this bug. *** 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 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 *** Bug 31637 has been marked as a duplicate of this bug. *** *** Bug 27964 has been marked as a duplicate of this bug. *** the issue is that distcc should only be used with 'similar' gcc versions *** Bug 42333 has been marked as a duplicate of this bug. *** *** Bug 53902 has been marked as a duplicate of this bug. *** 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" |