emerge --update --deep --newuse --ask world reports that glibc needs to be updated from 2.11.3 to 2.12.2 Compilation chugs along for a while, then fails. Reproducible: Always Steps to Reproduce: 1. emerge --update --deep --newuse --ask world 2. 3. Actual Results: Compilation/emerging fails Expected Results: Compilation/emerging should have happened without failure. HP p6230y desktop has been running fine since purchase last year (aside from problems that were clearly my own fault). x86_64-pc-linux-gnu-gcc -m32 ../nptl/sysdeps/unix/sysv/linux/getpid.c -c -std=gnu99 -fgnu89-inline -O2 -Wall -Winline -Wwrite-strings -fPIC -fmerge-all-constants -fno-strict-aliasing -fno-unwind-tables -march=native -pipe -Wstrict-prototypes -mpreferred-stack-boundary=2 -Wa,-mtune=i686 -fomit-frame-pointer -I../include -I/var/tmp/portage/sys-libs/glibc-2.12.2/work/build-x86-x86_64-pc-linux-gnu-nptl /posix -I/var/tmp/portage/sys-libs/glibc-2.12.2/work/build-x86-x86_64-pc-linux-gnu-nptl -I../sysdeps/i386/elf -I../nptl/sysdeps/unix/sysv/linux/i386/i686 -I../sysdeps/unix/sysv/linux/i386/i686 -I../nptl /sysdeps/unix/sysv/linux/i386 -I../sysdeps/unix/sysv/linux/i386 -I../nptl/sysdeps/unix/sysv/linux -I../nptl/sysdeps/pthread -I../sysdeps/pthread -I../ports/sysdeps/unix/sysv/linux -I../sysdeps/unix/sysv /linux -I../sysdeps/gnu -I../sysdeps/unix/common -I../sysdeps/unix/mman -I../sysdeps/unix/inet -I../ports/sysdeps/unix/sysv/i386 -I../sysdeps/unix/sysv/i386 -I../nptl/sysdeps/unix/sysv -I../ports/sysdep s/unix/sysv -I../sysdeps/unix/sysv -I../sysdeps/unix/i386 -I../nptl/sysdeps/unix -I../ports/sysdeps/unix -I../sysdeps/unix -I../sysdeps/posix -I../sysdeps/i386/i686/fpu -I../sysdeps/i386/i686/multiarch -I../nptl/sysdeps/i386/i686 -I../sysdeps/i386/i686 -I../sysdeps/i386/i486 -I../nptl/sysdeps/i386/i486 -I../sysdeps/i386/fpu -I../nptl/sysdeps/i386 -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 -I../nptl -I../ports -I.. -I../libio -I. -nostdinc -isystem / usr/lib/gcc/x86_64-pc-linux-gnu/4.4.5/include -isystem /usr/lib/gcc/x86_64-pc-linux-gnu/4.4.5/include-fixed -isystem /usr/include -D_LIBC_REENTRANT -include ../include/libc-symbols.h -U_FORTIFY_SO URCE -U_FORTIFY_SOURCE -U_FORTIFY_SOURCE -o /var/tmp/portage/sys-libs/glibc-2.12.2/work/build-x86-x86_64-pc-linux-gnu-nptl/posix/getpid.o -MD -MP -MF /var/tmp/portage/sys-libs/glibc-2.12.2/work/build-x8 6-x86_64-pc-linux-gnu-nptl/posix/getpid.o.dt -MT /var/tmp/portage/sys-libs/glibc-2.12.2/work/build-x86-x86_64-pc-linux-gnu-nptl/posix/getpid.o In file included from ../nptl/sysdeps/unix/sysv/linux/i386/fork.c:31: ../nptl/sysdeps/unix/sysv/linux/i386/../fork.c: In function '__libc_fork': ../nptl/sysdeps/unix/sysv/linux/i386/../fork.c:209: error: can't find a register in class 'BREG' while reloading 'asm' ../nptl/sysdeps/unix/sysv/linux/i386/../fork.c:120: error: 'asm' operand has impossible constraints ../nptl/sysdeps/unix/sysv/linux/i386/../fork.c:126: error: 'asm' operand has impossible constraints ../nptl/sysdeps/unix/sysv/linux/i386/../fork.c:130: error: 'asm' operand has impossible constraints ../nptl/sysdeps/unix/sysv/linux/i386/../fork.c:196: error: 'asm' operand has impossible constraints ../nptl/sysdeps/unix/sysv/linux/i386/../fork.c:209: error: 'asm' operand has impossible constraints .././scripts/mkinstalldirs /var/tmp/portage/sys-libs/glibc-2.12.2/work/build-x86-x86_64-pc-linux-gnu-nptl/posix make[2]: *** [/var/tmp/portage/sys-libs/glibc-2.12.2/work/build-x86-x86_64-pc-linux-gnu-nptl/posix/fork.o] Error 1 make[2]: *** Waiting for unfinished jobs.... (echo '#define SYSCALL_NAME getppid'; \ echo '#define SYSCALL_NARGS 0'; \ echo '#define SYSCALL_SYMBOL __getppid'; \ echo '#define SYSCALL_NOERRNO 1'; \ echo '#include <syscall-template.S>'; \ echo 'weak_alias (__getppid, getppid)'; \ echo 'libc_hidden_weak (getppid)'; \ ) | x86_64-pc-linux-gnu-gcc -m32 -c -I../include -I/var/tmp/portage/sys-libs/glibc-2.12.2/work/build-x86-x86_64-pc-linux-gnu-nptl/posix -I/var/tmp/portage/sys-libs/glibc-2.12.2/work/build-x86-x86_64-pc-linux-gnu-nptl -I../sysdeps/i386/elf -I../nptl/sysdeps/unix/sysv/linux/i386/i686 -I../sysdeps/unix/sysv/linux/i386/i686 -I../nptl/sysdeps/unix/sysv/linux/i386 -I../sysdeps/unix/sysv/linux/i386 -I../nptl/sysdeps/unix/sysv/linux -I../nptl/sysdeps/pthread -I../sysdeps/pthread -I../ports/sysdeps/unix/sysv/linux -I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -I../sysdeps/unix/common -I../sysdeps/unix/mman -I../sysdeps/unix/inet -I../ports/sysdeps/unix/sysv/i386 -I../sysdeps/unix/sysv/i386 -I../nptl/sysdeps/unix/sysv -I../ports/sysdeps/unix/sysv -I../sysdeps/unix/sysv -I../sysdeps/unix/i386 -I../nptl/sysdeps/unix -I../ports/sysdeps/unix -I../sysdeps/unix -I../sysdeps/posix -I../sysdeps/i386/i686/fpu -I../sysdeps/i386/i686/multiarch -I../nptl/sysdeps/i386/i686 -I../sysdeps/i386/i686 -I../sysdeps/i386/i486 -I../nptl/sysdeps/i386/i486 -I../sysdeps/i386/fpu -I../nptl/sysdeps/i386 -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 -I../nptl -I../ports -I.. -I../libio -I. -nostdinc -isystem /usr/lib/gcc/x86_64-pc-linux-gnu/4.4.5/include -isystem /usr/lib/gcc/x86_64-pc-linux-gnu/4.4.5/include-fixed -isystem /usr/include -D_LIBC_REENTRANT -include ../include/libc-symbols.h -U_FORTIFY_SOURCE -U_FORTIFY_SOURCE -U_FORTIFY_SOURCE -DASSEMBLER -DGAS_SYNTAX -Wa,--noexecstack -Wa,--noexecstack -Wa,-mtune=i686 -o /var/tmp/portage/sys-libs/glibc-2.12.2/work/build-x86-x86_64-pc-linux-gnu-nptl/posix/getppid.o -x assembler-with-cpp - -MD -MP -MF /var/tmp/portage/sys-libs/glibc-2.12.2/work/build-x86-x86_64-pc-linux-gnu-nptl/posix/getppid.o.dt -MT /var/tmp/portage/sys-libs/glibc-2.12.2/work/build-x86-x86_64-pc-linux-gnu-nptl/posix/getppid.o make[2]: Leaving directory `/var/tmp/portage/sys-libs/glibc-2.12.2/work/glibc-2.12.2/posix' make[1]: *** [posix/subdir_lib] Error 2 make[1]: Leaving directory `/var/tmp/portage/sys-libs/glibc-2.12.2/work/glibc-2.12.2' make: *** [all] Error 2 emake failed * ERROR: sys-libs/glibc-2.12.2 failed (compile phase): * make for x86 failed * * Call stack: * ebuild.sh, line 56: Called src_compile * environment, line 3707: Called eblit-run 'src_compile' * environment, line 1119: Called eblit-glibc-src_compile * src_compile.eblit, line 204: Called src_compile * environment, line 3707: Called eblit-run 'src_compile' * environment, line 1119: Called eblit-glibc-src_compile * src_compile.eblit, line 212: Called toolchain-glibc_src_compile * src_compile.eblit, line 124: Called die * The specific snippet of code: * emake || die "make for ${ABI} failed" $ emerge --info Portage 2.1.9.42 (default/linux/amd64/10.0, gcc-4.4.5, libc-0-r0, 2.6.37-gentoo-r4 x86_64) ================================================================= System uname: Linux-2.6.37-gentoo-r4-x86_64-AMD_Phenom-tm-_II_X4_810_Processor-with-gentoo-2.0.2 Timestamp of tree: Fri, 27 May 2011 19:00:01 +0000 app-shells/bash: 4.1_p9 dev-java/java-config: 2.1.11-r3 dev-lang/python: 2.7.1-r1, 3.1.3-r1 dev-util/cmake: 2.8.4-r1 sys-apps/baselayout: 2.0.2 sys-apps/openrc: 0.8.2-r1 sys-apps/sandbox: 2.4 sys-devel/autoconf: 2.13, 2.65-r1 sys-devel/automake: 1.9.6-r3, 1.10.3, 1.11.1 sys-devel/binutils: 2.20.1-r1 sys-devel/gcc: 4.4.5 sys-devel/gcc-config: 1.4.1-r1 sys-devel/libtool: 2.2.10 sys-devel/make: 3.81-r2 sys-kernel/linux-headers: 2.6.36.1 sys-libs/glibc: 2.11.3 virtual/os-headers: 0 ACCEPT_KEYWORDS="amd64" ACCEPT_LICENSE="*" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=native -O2 -pipe -fPIC" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo" CXXFLAGS="-march=native -O2 -pipe -fPIC" DISTDIR="/usr/portage/distfiles" FEATURES="assume-digests binpkg-logs distlocks fixlafiles fixpackages news parallel-fetch protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch" FFLAGS="" GENTOO_MIRRORS="http://mirrors.cs.wmich.edu/gentoo ftp://lug.mtu.edu/gentoo/ " LDFLAGS="-Wl,-O1 -Wl,--as-needed" LINGUAS="en en_US" MAKEOPTS="-j5" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" 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" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="3dnow X a52 aac acl acpi aim alsa amd64 ancient apache2 apm ati-drivers avi bash-completion berkdb bzip2 cdda cddb cdparanoia cdr cli cracklib crypt css cups curl curlwrappers cxx dbus dga directfb divx dri dv dvd dvdr dvdread emacs encode exif extras fame ffmpeg firefox flac foomaticdb fortran ftp fts3 gcj gdbm gecko gif gimp gnome gnustep gnutls gpm gtk gzip hddtemp iconv icu id3 id3tag imagemagick ipod javascript jpeg jpeg2k lame latex libcaca libnotify matroska mikmod mjpeg mmx modules mp3 mp4 mpeg mplayer mudflap multilib ncurses nls nptl nptlonly nsplugin objc offensive ogg openal opengl openmp pam pcre pdf perl png posix pppd python qt3 qt3support quicktime rar raw readline realmedia samba sdl session smp sockets spell sqlite sse sse2 ssl subtitles svg symlink sysfs syslog tcpd theora threads tiff truetype unicode usb v4l v4l2 vcd vorbis wmf wxwidgets x264 xcb xine xml xorg xosd xscreensaver xv xvid zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" 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 authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="braindump flow karbon kexi kpresenter krita tables words" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en en_US" PHP_TARGETS="php5-3" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="radeon" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY
log from running $ PORT_LOGDIR=/var/log/portage/ emerge --update --deep --newuse --ask glibc (per http://www.gentoo.org/doc/en/bugzilla-howto.xml ) is available, but runs 3.2M, so can't be attached as an attachment.
'Scuse me, but adding '-fPIC' to global CFLAGS is plain stupid. Most likely INVALID for this reason.
Thank you for you insightful and helpful comment. Removing -fPIC did, indeed, allow glibc to compile and install without errors. I don't know the protocol here, if I should change the status of the bug report or if that should be someone else.
Well, I'll put it the way - while some of the times you might get a failure to build spewing something about addig '-fPIC', if that happens either the ebuild is broken or your system is, cause in the later case, it just means shared library isn't found (at least on x86, on amd64 only the reason changes). Blindly adding CFLAGS ,you don't understand, rarely ever is the proper solution.