emerge --update world, glibc fails emerge in initial checks. > checking for -z nodelete option... configure: error: linker with -z nodelete support required I verified (well, I checked man page) that ld supports -z nodelete. I re-emerged binutils, sourced profile, tried again, didn't resolve. Reproducible: Always Steps to Reproduce: 1.emerge glibc 2. 3. Actual Results: # cat /var/tmp/portage/sys-libs/glibc-2.8_p20080602-r1/temp/build.log >>> Unpacking source... * Checking gcc for __thread support ... [ ok ] * Checking kernel version (>=2.6.9) ... [ ok ] * Checking linux-headers version (>=2.6.9) ... [ ok ] >>> Unpacking glibc-2.8-20080602.tar.bz2 to /var/tmp/portage/sys-libs/glibc-2.8_p20080602-r1/work >>> Unpacking glibc-2.8-ports-20080602.tar.bz2 to /var/tmp/portage/sys-libs/glibc-2.8_p20080602-r1/work/glibc-2.8-20080602 >>> Unpacking glibc-2.8-patches-5.tar.bz2 to /var/tmp/portage/sys-libs/glibc-2.8_p20080602-r1/work * Applying Gentoo Glibc Patchset 2.8-5 ... * 0010_all_glibc-2.7-ssp-compat.patch ... [ ok ] * 0030_all_glibc-respect-env-CPPFLAGS.patch ... [ ok ] * 0040_all_glibc-i586-chk.patch ... [ ok ] * 0070_all_glibc-i386-x86_64-revert-clone-cfi.patch ... [ ok ] * 1010_all_glibc-queue-header-updates.patch ... [ ok ] * 1030_all_glibc-manual-no-perl.patch ... [ ok ] * 1040_all_2.3.3-localedef-fix-trampoline.patch ... [ ok ] * 1050_all_glibc-2.8-stdio-redirect.patch ... [ ok ] * 1051_all_glibc-2.8-__REPB_PREFIX.patch ... [ ok ] * 1052_all_glibc-2.8-mkfile-NUL.patch ... [ ok ] * 1053_all_glibc-2.8-Add-localedata.patch ... [ ok ] * 1053_all_glibc-2.8-BODY-for-__gconv_transform_ascii_internal-Add-mis.patch ... [ ok ] * 1053_all_glibc-2.8-bug-iconv6-ENV-tst-iconv7-ENV-Define.patch ... [ ok ] * 1053_all_glibc-2.8-create_cd_newstate-Don-t-look-at-create_cd_newsta.patch ... [ ok ] * 1053_all_glibc-2.8-do_test-Use-de_DE.UTF-8-locale.patch ... [ ok ] * 1053_all_glibc-2.8-nscd-nscd_getserv_r.c-__nscd_getservbyport_r-P.patch ... [ ok ] * 1053_all_glibc-2.8-optimize_utf8-Add-a-note-on-why-we-test-opr.ctx_t.patch ... [ ok ] * 1054_all_glibc-2.8-deb-cvs-getaddrinfo.patch ... [ ok ] * 1055_all_glibc-resolv-dynamic.patch ... [ ok ] * 1075_all_glibc-section-comments.patch ... [ ok ] * 1080_all_glibc-no-inline-gmon.patch ... [ ok ] * 1090_all_glibc-2.3.6-fix-pr631.patch ... [ ok ] * 1100_all_glibc-2.3.3-china.patch ... [ ok ] * 1103_all_glibc-new-valencian-locale.patch ... [ ok ] * 1130_all_glibc-2.4-undefine-__i686.patch ... [ ok ] * 1160_all_glibc-2.8-nscd-one-fork.patch ... [ ok ] * 1501_all_glibc-2.7-hppa-atomic_h.patch ... [ ok ] * 1504_all_glibc-2.7-hppa-pie.patch ... [ ok ] * 1518_all_glibc-2.7-pthread-join.patch ... [ ok ] * 1530_all_glibc-m68k-sys-user.patch ... [ ok ] * 3000_all_2.3.6-dl_execstack-PaX-support.patch ... [ ok ] * 3010_all_2.3.3_pre20040117-pt_pax.patch ... [ ok ] * 3020_all_glibc-tests-sandbox-libdl-paths.patch ... [ ok ] * 5063_all_glibc-dont-build-timezone.patch ... [ ok ] * 5070_all_glibc-2.7-cross-compile-nptl.patch ... [ ok ] * 6001_all_alpha-glibc-2.4-xstat.patch ... [ ok ] * 6015_all_alpha-glibc-2.5-no-page-header.patch ... [ ok ] * 6016_all_alpha-glibc-2.5-no-asm-elf-header.patch ... [ ok ] * 6017_all_alpha-glibc-2.8-creat.patch ... [ ok ] * 6018_all_alpha-glibc-2.8-cache-shape.patch ... [ ok ] * 6018_all_glibc-ptr-mangling.patch ... [ ok ] * 6220_all_glibc-2.4-arm-cirrus-ep93xx-maverick-crunch-fpu.patch ... [ ok ] * 6240_all_glibc-2.8-nptl-lowlevellock.patch ... [ ok ] * 6400_all_sh-glibc-2.3.2-fpscr_values.patch ... [ ok ] * 6415_all_sh-glibc-2.5-no-asm-user-header.patch ... [ ok ] * 6416_all_sh-glibc-2.5-no-asm-elf-header.patch ... [ ok ] * 6605_all_glibc-2.4-fpu-cw-mips.patch ... [ ok ] * 6645_all_glibc-mips_shn_undef-hack.patch ... [ ok ] * Done with patching * Using GNU config files from /usr/share/libtool * Updating scripts/config.sub [ ok ] * Updating scripts/config.guess [ ok ] >>> Source unpacked in /var/tmp/portage/sys-libs/glibc-2.8_p20080602-r1/work >>> Compiling source in /var/tmp/portage/sys-libs/glibc-2.8_p20080602-r1/work/glibc-2.8-20080602 ... * ABI: default * CBUILD: i586-pc-linux-gnu * CHOST: i586-pc-linux-gnu * CTARGET: i586-pc-linux-gnu * CBUILD_OPT: * CTARGET_OPT: * CC: * CFLAGS: -march=i586 -pipe -O2 -fno-strict-aliasing -fno-stack-protector -nopie * Configuring GLIBC for nptl with: * --disable-stackguard-randomization * --enable-old-ssp-compat * --enable-add-ons=nptl,c_stubs,libidn,ports * --enable-kernel=2.6.9 * --without-selinux * --without-cvs * --enable-bind-now * --build=i586-pc-linux-gnu * --host=i586-pc-linux-gnu * --disable-profile * --without-gd * --with-headers=/usr/include * --prefix=/usr * --libdir=/usr/lib * --mandir=/usr/share/man * --infodir=/usr/share/info * --libexecdir=/usr/lib/misc/glibc * checking build system type... i586-pc-linux-gnu checking host system type... i586-pc-linux-gnu configure: running configure fragment for add-on nptl configure: running configure fragment for add-on c_stubs configure: running configure fragment for add-on libidn checking add-on ports for preconfigure fragments... am33 arm hppa m68k mips checking sysdep dirs... sysdeps/i386/elf nptl/sysdeps/unix/sysv/linux/i386/i586 nptl/sysdeps/unix/sysv/linux/i386 sysdeps/unix/sysv/linux/i386 nptl/sysdeps/unix/sysv/linux nptl/sysdeps/pthread sysdeps/pthread ports/sysdeps/unix/sysv/linux sysdeps/unix/sysv/linux sysdeps/gnu sysdeps/unix/common sysdeps/unix/mman sysdeps/unix/inet ports/sysdeps/unix/sysv/i386 sysdeps/unix/sysv/i386 nptl/sysdeps/unix/sysv ports/sysdeps/unix/sysv sysdeps/unix/sysv sysdeps/unix/i386 nptl/sysdeps/unix ports/sysdeps/unix sysdeps/unix sysdeps/posix nptl/sysdeps/i386/i586 sysdeps/i386/i586 sysdeps/i386/i486 nptl/sysdeps/i386/i486 sysdeps/i386/fpu nptl/sysdeps/i386 sysdeps/i386 sysdeps/wordsize-32 sysdeps/ieee754/ldbl-96 sysdeps/ieee754/dbl-64 sysdeps/ieee754/flt-32 sysdeps/ieee754 sysdeps/generic/elf sysdeps/generic checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking for i586-pc-linux-gnu-gcc... i586-pc-linux-gnu-gcc checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether i586-pc-linux-gnu-gcc accepts -g... yes checking for i586-pc-linux-gnu-gcc option to accept ISO C89... none needed checking how to run the C preprocessor... i586-pc-linux-gnu-gcc -E checking for i586-pc-linux-gnu-g++... i586-pc-linux-gnu-g++ checking whether we are using the GNU C++ compiler... yes checking whether i586-pc-linux-gnu-g++ accepts -g... yes checking whether /usr/lib/gcc/i586-pc-linux-gnu/3.4.6/../../../../i586-pc-linux-gnu/bin/as is GNU as... yes checking whether /usr/lib/gcc/i586-pc-linux-gnu/3.4.6/../../../../i586-pc-linux-gnu/bin/ld is GNU ld... yes checking for /usr/lib/gcc/i586-pc-linux-gnu/3.4.6/../../../../i586-pc-linux-gnu/bin/as... /usr/lib/gcc/i586-pc-linux-gnu/3.4.6/../../../../i586-pc-linux-gnu/bin/as checking version of /usr/lib/gcc/i586-pc-linux-gnu/3.4.6/../../../../i586-pc-linux-gnu/bin/as... 2.18, ok checking for /usr/lib/gcc/i586-pc-linux-gnu/3.4.6/../../../../i586-pc-linux-gnu/bin/ld... /usr/lib/gcc/i586-pc-linux-gnu/3.4.6/../../../../i586-pc-linux-gnu/bin/ld checking version of /usr/lib/gcc/i586-pc-linux-gnu/3.4.6/../../../../i586-pc-linux-gnu/bin/ld... 2.18, ok checking for pwd... /bin/pwd checking for i586-pc-linux-gnu-gcc... (cached) i586-pc-linux-gnu-gcc checking version of i586-pc-linux-gnu-gcc... 3.4.6, ok checking for gnumake... no checking for gmake... gmake checking version of gmake... 3.81, ok checking for gnumsgfmt... no checking for gmsgfmt... gmsgfmt checking version of gmsgfmt... 0.17, ok checking for makeinfo... makeinfo checking version of makeinfo... 4.13, ok checking for sed... sed checking version of sed... 4.1.5, ok checking for autoconf... autoconf checking whether autoconf works... yes checking whether ranlib is necessary... no checking LD_LIBRARY_PATH variable... ok checking whether GCC supports -static-libgcc... -static-libgcc checking for bash... /bin/bash checking for gawk... gawk checking for perl... /usr/bin/perl checking for install-info... /usr/bin/install-info checking for bison... /usr/bin/bison checking for signed size_t type... no checking for libc-friendly stddef.h... yes checking whether we need to use -P to assemble .S files... no checking whether .text pseudo-op must be used... yes checking for assembler global-symbol directive... .globl checking for .set assembler directive... yes checking for assembler .type directive prefix... @ checking for .symver assembler directive... yes checking for ld --version-script... yes checking for .previous assembler directive... yes checking for .protected and .hidden assembler directive... yes checking whether __attribute__((visibility())) is supported... yes checking for broken __attribute__((visibility()))... no checking for broken __attribute__((alias()))... no checking whether to put _rtld_local into .sdata section... no checking for .preinit_array/.init_array/.fini_array support... yes checking for libunwind-support in compiler... no checking for -z nodelete option... configure: error: linker with -z nodelete support required * * ERROR: sys-libs/glibc-2.8_p20080602-r1 failed. * Call stack: * ebuild.sh, line 49: Called src_compile * environment, line 3475: Called eblit-run 'src_compile' * environment, line 1083: Called eblit-glibc-src_compile * src_compile.eblit, line 187: Called toolchain-glibc_src_compile * src_compile.eblit, line 120: Called glibc_do_configure 'nptl' * src_compile.eblit, line 97: Called die * The specific snippet of code: * "${S}"/configure ${myconf} || die "failed to configure glibc" * The die message: * failed to configure glibc * Expected Results: Ideally, successfully compiled, tested, installed. Portage 2.1.6.7 (default/linux/x86/2008.0, gcc-3.4.6, glibc-2.3.6-r4, 2.6.27-hardened-r8_s2 i686) ================================================================= System uname: Linux-2.6.27-hardened-r8_s2-i686-VIA_Samuel_2-with-glibc2.1.3 Timestamp of tree: Sat, 14 Mar 2009 21:15:02 +0000 distcc 2.18.3 i586-pc-linux-gnu (protocols 1 and 2) (default port 3632) [enabled] app-shells/bash: 3.2_p39 dev-java/java-config: 1.3.7-r1, 2.1.7 dev-lang/python: 2.4.3-r1, 2.5.2-r7 dev-python/pycrypto: 2.0.1-r8 sys-apps/baselayout: 1.12.11.1 sys-apps/sandbox: 1.2.18.1-r2 sys-devel/autoconf: 2.13, 2.63 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.2 sys-devel/binutils: 2.18-r3 sys-devel/gcc-config: 1.4.0-r4 sys-devel/libtool: 1.5.26 virtual/os-headers: 2.6.27-r2 ACCEPT_KEYWORDS="x86" CBUILD="i586-pc-linux-gnu" CFLAGS="-march=c3 -Os -m3dnow -mmmx -pipe -fomit-frame-pointer" CHOST="i586-pc-linux-gnu" CONFIG_PROTECT="/etc /var/bind" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/gconf /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="-march=c3 -Os -m3dnow -mmmx -pipe -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="distcc distlocks fixpackages parallel-fetch protect-owned sandbox sfperms strict unmerge-orphans userfetch" GENTOO_MIRRORS="http://gentoo.chem.wisc.edu/gentoo/ http://cudlug.cudenver.edu/gentoo/" LDFLAGS="-Wl,-O1" MAKEOPTS="-j2" 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" PORTDIR_OVERLAY="/opt/portage" SYNC="rsync://rsync.us.gentoo.org/gentoo-portage" USE="acl apache2 berkdb bzip2 clamav cli cracklib crypt dri gdbm gif hardened hddtemp iconv imap isdnlog java ldap lm_sensors midi mudflap mysql mysqli ncurses nls nptl nptlonly openmp pam pcre perl php pic png ppds pppd python readline reflection session sockets spl ssl sysfs syslog tcpd threads unicode vhosts x86 zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 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="access auth auth_dbm auth_anon auth_digest authz_host alias file-cache echo charset-lite cache dir disk-cache mem-cache ext-filter case_filter case-filter-in deflate mime-magic cern-meta expires filter headers unique-id proxy proxy-connect proxy-ftp proxy-http info include cgi cgid dav dav-fs vhost-alias speling rewrite log_config logio env setenvif mime status autoindex asis negotiation dir imap actions userdir so" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" USERLAND="GNU" VIDEO_CARDS="fbdev glint i810 intel mach64 mga neomagic nv r128 radeon savage sis tdfx trident vesa vga via vmware voodoo" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LANG, LC_ALL, LINGUAS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Upgrading gcc from gcc-3.4.6-r1 to gcc-3.4.6-r2 before upgrading glibc solved the issue. Emerge was attempting to do glibc before the gcc upgrade. I suspect that contemporary glibc ebuilds should have a dependency on >gcc-3.4.6-r1 so the emerge order might work by default. Here's the original order that emerge tried: <snip from original emerge> # nice emerge --pretend --verbose --nospinner --update --deep world These are the packages that would be merged, in order: Calculating dependencies ...... done! [ebuild U ] sys-libs/glibc-2.8_p20080602-r1 [2.3.6-r4] USE="nls -debug% -gd% -glibc-omitfp (-hardened*) (-multilib) -profile (-selinux) -vanilla% (-build%) (-erandom%) (-glibc-compat20%) (-nptl%*) (-nptlonly%*)" 0 kB [?=>0] [ebuild U ] sys-devel/gcc-3.4.6-r2 [3.4.6-r1] USE="nls (-altivec) -bootstrap -boundschecking -build -d% -doc -fortran -gcj -gtk (-hardened*) -ip28 -ip32r10k -libffi% (-multilib) -multislot (-n32) (-n64) -nocxx -nopie -nossp -objc -test -vanilla" 0 kB [?=>0] </snip> FWIW, I've masked later gcc versions since I've read that gcc 4.x uses a lot more memory and this is a tiny machine.
Use a modern version of gcc. Older ones are merely around for convenience. Also, we have a dependency on glibc for the minimal version of gcc that you should have, and differences between revisions shouldn't have fixed this problem for you unless something else was already broken.