the labels .LC2 and .LC3 used via GOTOFF pic mechanism are local (by virtue of starting with .L) but undefined in crtn.S the line making the offending reference looks like: leal .LC2@GOTOFF(%ebx), %eax I am using the patch described in the bug #101113 to accomodate for -fstack-protector-all in my CFLAGS. This may be unrelated. error excerpt: i686-pc-linux-gnu-gcc -nostdlib -nostartfiles -o /var/tmp/portage/glibc-2.3.5/work/build-default-i686-pc-linux-gnu-linuxthreads/iconv/iconvconfig -Wl,-dynamic-linker=/lib/ld-linux.so.2 -Wl,-z,combreloc -Wl,-z,relro /var/tmp/portage/glibc-2.3.5/work/build-default-i686-pc-linux-gnu-linuxthreads/csu/crt1.o /var/tmp/portage/glibc-2.3.5/work/build-default-i686-pc-linux-gnu-linuxthreads/csu/crti.o `i686-pc-linux-gnu-gcc --print-file-name=crtbegin.o` /var/tmp/portage/glibc-2.3.5/work/build-default-i686-pc-linux-gnu-linuxthreads/iconv/iconvconfig.o /var/tmp/portage/glibc-2.3.5/work/build-default-i686-pc-linux-gnu-linuxthreads/iconv/strtab.o /var/tmp/portage/glibc-2.3.5/work/build-default-i686-pc-linux-gnu-linuxthreads/iconv/xmalloc.o /var/tmp/portage/glibc-2.3.5/work/build-default-i686-pc-linux-gnu-linuxthreads/iconv/hash-string.o -Wl,-rpath-link=/var/tmp/portage/glibc-2.3.5/work/build-default-i686-pc-linux-gnu-linuxthreads:/var/tmp/portage/glibc-2.3.5/work/build-default-i686-pc-linux-gnu-linuxthreads/math:/var/tmp/portage/glibc-2.3.5/work/build-default-i686-pc-linux-gnu-linuxthreads/elf:/var/tmp/portage/glibc-2.3.5/work/build-default-i686-pc-linux-gnu-linuxthreads/dlfcn:/var/tmp/portage/glibc-2.3.5/work/build-default-i686-pc-linux-gnu-linuxthreads/nss:/var/tmp/portage/glibc-2.3.5/work/build-default-i686-pc-linux-gnu-linuxthreads/nis:/var/tmp/portage/glibc-2.3.5/work/build-default-i686-pc-linux-gnu-linuxthreads/rt:/var/tmp/portage/glibc-2.3.5/work/build-default-i686-pc-linux-gnu-linuxthreads/resolv:/var/tmp/portage/glibc-2.3.5/work/build-default-i686-pc-linux-gnu-linuxthreads/crypt:/var/tmp/portage/glibc-2.3.5/work/build-default-i686-pc-linux-gnu-linuxthreads/linuxthreads /var/tmp/portage/glibc-2.3.5/work/build-default-i686-pc-linux-gnu-linuxthreads/libc.so.6 /var/tmp/portage/glibc-2.3.5/work/build-default-i686-pc-linux-gnu-linuxthreads/libc_nonshared.a -lgcc -lgcc_eh `i686-pc-linux-gnu-gcc --print-file-name=crtend.o` /var/tmp/portage/glibc-2.3.5/work/build-default-i686-pc-linux-gnu-linuxthreads/csu/crtn.o /var/tmp/portage/glibc-2.3.5/work/build-default-i686-pc-linux-gnu-linuxthreads/csu/crtn.o(.init+0x10):/var/tmp/portage/glibc-2.3.5/work/build-default-i686-pc-linux-gnu-linuxthreads/csu/crtn.S:15: undefined reference to `.LC2' /var/tmp/portage/glibc-2.3.5/work/build-default-i686-pc-linux-gnu-linuxthreads/csu/crtn.o(.fini+0x10):/var/tmp/portage/glibc-2.3.5/work/build-default-i686-pc-linux-gnu-linuxthreads/csu/crtn.S:37: undefined reference to `.LC3' collect2: ld returned 1 exit status make[2]: *** [/var/tmp/portage/glibc-2.3.5/work/build-default-i686-pc-linux-gnu-linuxthreads/iconv/iconvconfig] Error 1 The error was obtained with: emerge -vu1 gcc which resulted in emerging glibc as the first prerequisite.
my emerge info: Portage 2.0.51.22-r2 (default-linux/x86/2005.0, gcc-3.4.3, glibc-2.3.4.20040808-r1, 2.6.9-gentoo-r6tma8 i686) ================================================================= System uname: 2.6.9-gentoo-r6tma8 i686 Intel(R) Pentium(R) M processor 1.60GHz Gentoo Base System version 1.4.16 ccache version 2.3 [enabled] dev-lang/python: 2.3.4 sys-apps/sandbox: 1.2.11 sys-devel/autoconf: 2.13, 2.59-r6 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.5 sys-devel/binutils: 2.15.92.0.2-r10 sys-devel/libtool: 1.5.18-r1 virtual/os-headers: 2.6.11-r2 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CBUILD="i686-pc-linux-gnu" CFLAGS="-O2 -pipe -march=pentium-m -mtune=pentium-m -fomit-frame-pointer -fstack-protector-all" CHOST="i686-pc-linux-gnu" re/config /usr/kde/3.3/shutdown /usr/kde/3/share/config /usr/share/config /usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/bind /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O2 -pipe -march=pentium-m -mtune=pentium-m -fomit-frame-pointer -fstack-protector-all" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig ccache distlocks sandbox sfperms strict" GENTOO_MIRRORS="ftp://ftp.fi.muni.cz/pub/linux/gentoo/ ftp://ftp.sh.cvut.cz/MIRRORS/gentoo/gentoo/ http://gentoo.osuosl.org http://www.ibiblio.org/pub/Linux/distributions/gentoo" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage" USE="x86 X acl acpi alsa apm arts avi berkdb bidi bitmap-fonts bzlib cdr crypt cscope cups curl dga divx4linux doc dvd emboss encode esd exif fam flac foomaticdb fortran gcj gd gdbm gif gphoto2 gpm gtkgtk2 guile iconv icq imagemagick imlib ipv6 java javascript jikes jpeg kde libg++ libwww mad matroska mikmod mmx mmx2 motif mozilla mp3 mpeg mysql ncurses nls objc ogg oggvorbis opengl oss pam pcmcia pdflib perl png python qt quicktime readline real sdl slang spell sse ssl svg svga tcpd tetex tga tifftruetype truetype-fonts type1-fonts unicode vorbis xine xml2 xmms xv zlib userland_GNU kernel_linux elibc_glibc" Unset: ASFLAGS, CTARGET, LANG, LC_ALL, LDFLAGS, LINGUAS, MAKEOPTS
And if you don't use -fstack-protector-all, it emerges cleanly?
Removing -fstack-protector-all from the CFLAGS seems to have alleviated the problem at the expense of less secure glibc.
If you want SSP enabled, use the hardened gcc, don't specify -fstack-protector in CFLAGS. Switching on -fstack-protector in CFLAGS will break stuff; hardened gcc has some magic to keep things mostly sane and will switch it on for you automatically. See also bug #99934
*** This bug has been marked as a duplicate of 99934 ***