I'm getting the following error when installing sys-libs/glibc-2.2.5-r8: ---snip--- gcc ../sysdeps/generic/libc-start.c -c -O2 -Wall -Winline -Wstrict-prototypes -Wwrite-strings -march=pentium3 -mcpu=pentium3 -pipe -I../include -I. -I/var/tmp/portage/glibc-2.2.5-r8/work/glibc-2.2.5/buildhere/csu -I.. -I../libio -I/var/tmp/portage/glibc-2.2.5-r8/work/glibc-2.2.5/buildhere -I../sysdeps/i386/elf -I../linuxthreads/sysdeps/unix/sysv/linux/i386 -I../linuxthreads/sysdeps/unix/sysv/linux -I../linuxthreads/sysdeps/pthread -I../sysdeps/pthread -I../linuxthreads/sysdeps/unix/sysv -I../linuxthreads/sysdeps/unix -I../linuxthreads/sysdeps/i386/i686 -I../linuxthreads/sysdeps/i386 -I../sysdeps/unix/sysv/linux/i386/i686 -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../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 -D_LIBC_REENTRANT -include ../include/libc-symbols.h -DHAVE_INITFINI -o /var/tmp/portage/glibc-2.2.5-r8/work/glibc-2.2.5/buildhere/csu/libc-start.o In file included from ../include/pthread.h:1, from ../linuxthreads/sysdeps/pthread/bits/libc-lock.h:23, from ../sysdeps/generic/ldsodefs.h:34, from ../sysdeps/unix/sysv/linux/ldsodefs.h:25, from ../sysdeps/generic/libc-start.c:21: ../linuxthreads/sysdeps/pthread/pthread.h:163: parse error before "__thread" ../linuxthreads/sysdeps/pthread/pthread.h:165: `pthread_create' declared as function returning a function ../linuxthreads/sysdeps/pthread/pthread.h:165: warning: function declaration isn't a prototype ../linuxthreads/sysdeps/pthread/pthread.h:166: parse error before "void" ../linuxthreads/sysdeps/pthread/pthread.h:591: storage class specified for parameter `type name' In file included from ../linuxthreads/sysdeps/pthread/pthread.h:655, from ../include/pthread.h:1, from ../linuxthreads/sysdeps/pthread/bits/libc-lock.h:23, from ../sysdeps/generic/ldsodefs.h:34, from ../sysdeps/unix/sysv/linux/ldsodefs.h:25, from ../sysdeps/generic/libc-start.c:21: ../linuxthreads/sysdeps/unix/sysv/linux/bits/sigthread.h:36: storage class specified for parameter `type name' make[2]: *** [/var/tmp/portage/glibc-2.2.5-r8/work/glibc-2.2.5/buildhere/csu/libc-start.o] Error 1 make[2]: *** Waiting for unfinished jobs.... In file included from ../include/pthread.h:1, from ../linuxthreads/sysdeps/pthread/bits/libc-lock.h:23, from ../sysdeps/generic/ldsodefs.h:34, from ../sysdeps/unix/sysv/linux/ldsodefs.h:25, from ../sysdeps/unix/sysv/linux/init-first.c:32: ../linuxthreads/sysdeps/pthread/pthread.h:163: parse error before "__thread" ../linuxthreads/sysdeps/pthread/pthread.h:165: `pthread_create' declared as function returning a function ../linuxthreads/sysdeps/pthread/pthread.h:165: warning: function declaration isn't a prototype ../linuxthreads/sysdeps/pthread/pthread.h:166: parse error before "void" ../linuxthreads/sysdeps/pthread/pthread.h:591: storage class specified for parameter `type name' In file included from ../linuxthreads/sysdeps/pthread/pthread.h:655, from ../include/pthread.h:1, from ../linuxthreads/sysdeps/pthread/bits/libc-lock.h:23, from ../sysdeps/generic/ldsodefs.h:34, from ../sysdeps/unix/sysv/linux/ldsodefs.h:25, from ../sysdeps/unix/sysv/linux/init-first.c:32: ../linuxthreads/sysdeps/unix/sysv/linux/bits/sigthread.h:36: storage class specified for parameter `type name' make[2]: *** [/var/tmp/portage/glibc-2.2.5-r8/work/glibc-2.2.5/buildhere/csu/init-first.o] Error 1 make[2]: Leaving directory `/var/tmp/portage/glibc-2.2.5-r8/work/glibc-2.2.5/csu' make[1]: *** [csu/subdir_lib] Error 2 make[1]: Leaving directory `/var/tmp/portage/glibc-2.2.5-r8/work/glibc-2.2.5' make: *** [all] Error 2 !!! ERROR: sys-libs/glibc-2.2.5-r8 failed. !!! Function src_compile, Line 201, Exitcode 2 !!! (no error message) ---snip--- Reproducible: Always Steps to Reproduce: 1. emerge -u glibc Actual Results: See above... compile fails. Expected Results: Compiled and installed. Portage 2.0.47-r10 (default-1.0, gcc-3.2.1, glibc-2.2.5-r4,2.2.5-r7) ================================================================= System uname: 2.4.20-gentoo-r2 i686 Pentium III (Coppermine) GENTOO_MIRRORS="http://gentoo.oregonstate.edu/ http://distro.ibiblio.org/pub/Linux/distributions/gentoo" CONFIG_PROTECT="/etc /var/qmail/control /usr/kde/2/share/config /usr/kde/3/share/config /usr/X11R6/lib/X11/xkb /usr/kde/3.1/share/config /usr/share/config" CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d" PORTDIR="/usr/portage" DISTDIR="/usr/portage/distfiles" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR_OVERLAY="/usr/local/portage" USE="x86 oss 3dnow apm arts avi crypt cups encode jpeg kde libg++ mikmod mmx mpeg ncurses oggvorbis pdflib quicktime sdl spell svga truetype xml2 xmms xv berkdb esd gdbm gif gnome-libs gpm gtk guile imlib java ldap libwww motif mozilla mysql nls opengl pam perl png python qt readline slang snmp ssl tcltk tcpd tiff X" COMPILER="" CHOST="i686-pc-linux-gnu" CFLAGS="-march=pentium3 -mcpu=pentium3 -O3 -pipe" CXXFLAGS="-march=pentium3 -mcpu=pentium3 -O3 -pipe" ACCEPT_KEYWORDS="x86" MAKEOPTS="-j2" AUTOCLEAN="yes" SYNC="rsync://rsync.us.gentoo.org/gentoo-portage" FEATURES="sandbox ccache"
You need an older gcc as now __thread is a reserved keyword. The glibc sources could be patched with s/__thread/___thread/g or similar.
So should I switch back to the older gcc or wait for a patched version? This is what I have installed: nlabadie@security nlabadie $ gcc-config --list-profiles i686-pc-linux-gnu-2.95.3 i686-pc-linux-gnu-3.2.1 Thanks much, Nate
You know that if you start mixing compilers for the same system, you will run into problems ?
Then what's the point of gcc-config? I didn't have much of a choice... it installed both of them at one point in time.
Ok, lets put it this way: Mixing compilers to compile system libraries is not a good idea, as a program will then link to both gcc2 and gcc3 libs at run time. That clarifies it ? You need to select a compiler, and go with it. Also, only just compiling a program that links to c++ libs with another compiler will either fail, or have grave runtime problems (check the mozilla plugin issue ..)
Shouldn't glibc be patched to deal with this? It compiles with i686-pc-linux-gnu-2.95.3, but not with i686-pc-linux-gnu-3.2.1.
Maybe, but its not really supported setup. If you want to use gcc3, the best (and least painful solution at the end) solution will be to just install Gentoo 1.4.
this could be helpful to upgrade http://www.gentoo.org/doc/en/new-upgrade-to-gentoo-1.4.xml
Good timing... I was about to close this myself ;). I just realized that /etc/make.profile was pointing to an old release (my mistake). Sorry about the confusion. Thanks much, Nate
No problem. Glad you caught the mistake. Marking as invalid, as it was a type-o ;)