Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 333541 - sys-libs/glibc-2.12.1 - unrecognized symbol type "gnu_indirect_function" when building with older binutils
Summary: sys-libs/glibc-2.12.1 - unrecognized symbol type "gnu_indirect_function" when...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: AMD64 Linux
: High normal (vote)
Assignee: Gentoo Toolchain Maintainers
URL: http://sourceware.org/ml/libc-alpha/2...
Whiteboard:
Keywords:
: 333543 333545 333563 (view as bug list)
Depends on:
Blocks:
 
Reported: 2010-08-20 02:21 UTC by biohazrd
Modified: 2010-08-24 02:26 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments
build log of glibc 2.12.1 (build.log.tar.gz,170 bytes, application/x-tgz)
2010-08-20 06:09 UTC, biohazrd
Details
build log of glibc 2.12.1 (build.log.tar.gz,46.71 KB, application/x-tar)
2010-08-20 06:15 UTC, biohazrd
Details

Note You need to log in before you can comment on or make changes to this bug.
Description biohazrd 2010-08-20 02:21:56 UTC
Build fails

Reproducible: Always

Steps to Reproduce:
1.emerge-1 glibc
2.
3.

Actual Results:  
build fails with:


Assembler messages:
../sysdeps/i386/i686/multiarch/strcspn.S:78: ../sysdeps/i386/i686/multiarch/strcmp.S:78: Error: Error: unrecognized symbol type "gnu_indirect_function"unrecognized symbol type "gnu_indirect_function"

x86_64-pc-linux-gnu-gcc strncat.c -c -std=gnu99 -fgnu89-inline -O2 -Wall -Winline -Wwrite-strings -fmerge-all-constants -fno-strict-aliasing -Wstrict-prototypes -mpreferred-stack-boundary=2  -Wa,-mtune=i686    -I../include -I/var/tmp/portage/sys-libs/glibc-2.12.1/work/build-x86-x86_64-pc-linux-gnu-nptl/string -I/var/tmp/portage/sys-libs/glibc-2.12.1/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../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../nptl/sysdeps/unix/sysv -I../sysdeps/unix/sysv -I../sysdeps/unix/i386 -I../nptl/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.. -I../libio -I. -nostdinc -isystem /usr/lib/gcc/x86_64-pc-linux-gnu/4.4.4/include -isystem /usr/lib/gcc/x86_64-pc-linux-gnu/4.4.4/include-fixed -isystem /usr/include -D_LIBC_REENTRANT -include ../include/libc-symbols.h       -U_FORTIFY_SOURCE -U_FORTIFY_SOURCE -U_FORTIFY_SOURCE -o /var/tmp/portage/sys-libs/glibc-2.12.1/work/build-x86-x86_64-pc-linux-gnu-nptl/string/strncat.o -MD -MP -MF /var/tmp/portage/sys-libs/glibc-2.12.1/work/build-x86-x86_64-pc-linux-gnu-nptl/string/strncat.o.dt -MT /var/tmp/portage/sys-libs/glibc-2.12.1/work/build-x86-x86_64-pc-linux-gnu-nptl/string/strncat.o
make[2]: *** [/var/tmp/portage/sys-libs/glibc-2.12.1/work/build-x86-x86_64-pc-linux-gnu-nptl/string/strcmp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [/var/tmp/portage/sys-libs/glibc-2.12.1/work/build-x86-x86_64-pc-linux-gnu-nptl/string/strcspn.o] Error 1
make[2]: Leaving directory `/var/tmp/portage/sys-libs/glibc-2.12.1/work/glibc-2.12.1/string'
make[1]: *** [string/subdir_lib] Error 2
make[1]: Leaving directory `/var/tmp/portage/sys-libs/glibc-2.12.1/work/glibc-2.12.1'
make: *** [all] Error 2
 * ERROR: sys-libs/glibc-2.12.1 failed:
 *   make for x86 failed
 * 
 * Call stack:
 *           ebuild.sh, line   54:  Called src_compile
 *         environment, line 3866:  Called eblit-run 'src_compile'
 *         environment, line 1254:  Called eblit-glibc-src_compile
 *   src_compile.eblit, line  199:  Called src_compile
 *         environment, line 3866:  Called eblit-run 'src_compile'
 *         environment, line 1254:  Called eblit-glibc-src_compile
 *   src_compile.eblit, line  207:  Called toolchain-glibc_src_compile
 *   src_compile.eblit, line  123:  Called die
 * The specific snippet of code:
 *              emake || die "make for ${ABI} failed"
 * 
 * If you need support, post the output of 'emerge --info =sys-libs/glibc-2.12.1',
 * the complete build log and the output of 'emerge -pqv =sys-libs/glibc-2.12.1'.
 * The complete build log is located at '/var/tmp/portage/sys-libs/glibc-2.12.1/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/sys-libs/glibc-2.12.1/temp/environment'.
 * S: '/var/tmp/portage/sys-libs/glibc-2.12.1/work/glibc-2.12.1'

>>> Failed to emerge sys-libs/glibc-2.12.1, Log file:



emerge --info

Portage 2.1.8.3 (default/linux/amd64/10.0, gcc-4.4.4, glibc-2.11.2-r0, 2.6.34 x86_64)
=================================================================
System uname: Linux-2.6.34-x86_64-Intel-R-_Xeon-R-_CPU_E5520_@_2.27GHz-with-gentoo-2.0.1
Timestamp of tree: Thu, 19 Aug 2010 23:30:13 +0000
distcc 3.1 x86_64-pc-linux-gnu [disabled]
app-shells/bash:     4.1_p7
dev-java/java-config: 1.3.7-r1, 2.1.11
dev-lang/python:     2.6.5-r3, 3.1.2-r4
dev-util/cmake:      2.8.1-r2
sys-apps/baselayout: 2.0.1
sys-apps/openrc:     0.6.1-r1
sys-apps/sandbox:    2.3-r1
sys-devel/autoconf:  2.13, 2.65-r1
sys-devel/automake:  1.6.3-r1, 1.8.5-r3, 1.9.6-r3, 1.10.3, 1.11.1
sys-devel/binutils:  2.19.1-r1, 2.20-r1, 2.20.1-r1
sys-devel/gcc:       4.4.4-r1
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   2.2.10
sys-devel/make:      3.81-r2
virtual/os-headers:  2.6.34
ACCEPT_KEYWORDS="amd64 x86 ~amd64 ~x86"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=core2 -msse4 -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/X11/xkb /usr/share/config /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/hosts /etc/init.d /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-march=core2 -msse4 -O2 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="assume-digests distlocks fixpackages metadata-transfer news parallel-fetch protect-owned sandbox sfperms strict unmerge-logs unmerge-orphans userfetch"
GENTOO_MIRRORS="http://gentoo.osuosl.org/ ftp://distro.ibiblio.org/pub/linux/distributions/gentoo/ http://ftp.ucsb.edu/pub/mirrors/linux/gentoo/ http://mirror.usu.edu/mirrors/gentoo/ "
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
LINGUAS="en en_GB en_US"
MAKEOPTS="-j24"
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="/var/lib/layman/vmware /usr/local/portage /usr/local/portage/layman"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X a52 aac accessibility ace acl acpi alsa amd64 apache2 ares automount big-tables binary-drivers bittorrent bluetooth branding bzip2 cairo cblas cdda cddb cdparanoia cdr cdrom cli clucene consolekit cracklib crypt ctype cups cupsddk curl custom-optimization cxx dbus dhcp divx dri dv dvd dvdr dvdread dvi encode epiphany esd evo expat extensions extras fat fax fbsplash festival ffmpeg filter firefox firefox3 flac foomaticdb fortran ftp fts3 gdbm gdm gedit gif gimp gimpprint gkrellm glitz gmedia gnutls gs gstreamer gtk hpcups iconv id3tag ieee1394 innodb ipod ipv6 java javascript jpeg jpeg2k kde lame laptop lcms libsexy live lm_sensors mad mbrola mmx mmxext mng motif moznoirc moznomail mp3 mp4 mp4live mpeg mpeg2 mplayer mudflap multilib multislot multitarget musicbrainz mysql ncurses networkmanager new-hpcups nfs nfsv3 nfsv4 nls nptl nptlonly nsplugin ntfs nut nvidia ogg openal opencl openexr opengl openmp opensslcrypt oxygen pam pango pbxt pcre pdf perl php pm-utils png podcast policykit ppds pppd python qt3support qt4 quicktime readline realmedia reflection samba scanner sdl secure-delete semantic-desktop session shaper slp snmp sockets sound sox spell spl sql sqlite sse sse2 ssl ssse3 subversion svg swat sysfs tagwriting tcl tcpd theora tiff tk truetype udev unicode usb v4l v4l2 verse vhosts virtuoso vorbis webkit x264 xine xml xorg xscreensaver xulrunner xv xvid yv12 zeroconf zip 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 auth_digest authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif so speling status unique_id userdir usertrack vhost_alias" APACHE2_MPMS="prefork" ELIBC="glibc" INPUT_DEVICES="evdev wacom" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en en_GB en_US" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="nv nvidia" 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, FFLAGS, INSTALL_MASK, LANG, LC_ALL, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 1 Jory A. Pratt gentoo-dev 2010-08-20 03:00:11 UTC
*** Bug 333545 has been marked as a duplicate of this bug. ***
Comment 2 Jory A. Pratt gentoo-dev 2010-08-20 03:00:26 UTC
*** Bug 333543 has been marked as a duplicate of this bug. ***
Comment 3 SpanKY gentoo-dev 2010-08-20 05:37:50 UTC
*** Bug 333563 has been marked as a duplicate of this bug. ***
Comment 4 SpanKY gentoo-dev 2010-08-20 05:44:51 UTC
what version of binutils exactly do you have active ?  `ld --version`
Comment 5 biohazrd 2010-08-20 05:51:46 UTC
(In reply to comment #4)
> what version of binutils exactly do you have active ?  `ld --version`
> 

GNU ld (GNU Binutils) 2.19.1
Comment 6 SpanKY gentoo-dev 2010-08-20 05:52:51 UTC
so switch to 2.20.1
Comment 7 biohazrd 2010-08-20 05:56:17 UTC
(In reply to comment #5)
> (In reply to comment #4)
> > what version of binutils exactly do you have active ?  `ld --version`
> > 
> 
> GNU ld (GNU Binutils) 2.19.1
> 
Same error with :
GNU ld (GNU Binutils) 2.20.1.20100303
Comment 8 SpanKY gentoo-dev 2010-08-20 05:58:24 UTC
post the full build log as an attachment like you should in every bug report
Comment 9 biohazrd 2010-08-20 06:03:39 UTC
File is over 2000kb.. gonna have to cut it short... one moment.
Comment 10 biohazrd 2010-08-20 06:09:56 UTC
Created attachment 243663 [details]
build log of glibc 2.12.1
Comment 11 SpanKY gentoo-dev 2010-08-20 06:13:40 UTC
Comment on attachment 243663 [details]
build log of glibc 2.12.1

never clip a log.  i have no idea what this attachment is ... looks like a lot of garbage.  just compress the build.log files itself with something standard like bzip2 and post that.

$ zcat attachment.cgi\?id\=243663 | tar xvf -
build.log

$ file build.log 
build.log: gzip compressed data, from Unix, last modified: Fri Aug 20 02:07:28 2010

$ zcat build.log > _build.log
$ file _build.log
_build.log: data
Comment 12 biohazrd 2010-08-20 06:15:39 UTC
Created attachment 243665 [details]
build log of glibc 2.12.1
Comment 13 SpanKY gentoo-dev 2010-08-20 06:52:18 UTC
dont know why you still used tar for a single file, but whatever ...

that log shows that you're still using 2.19:
checking version of /usr/libexec/gcc/x86_64-pc-linux-gnu/as... 2.19.1, ok

at any rate, ive sent a patch upstream for the issue.  i'll wait to see what they have to say about it.
Comment 14 biohazrd 2010-08-20 14:38:37 UTC
(In reply to comment #13

Thanks.  Sorry I was pretty tired last night when I reported this bug. 

lrwxrwxrwx 1 root root   55 Sep 18  2009 addr2line -> /usr//x86_64-pc-linux-gnu/binutils-bin/2.19.1/addr2line
lrwxrwxrwx 1 root root   48 Sep 18  2009 ar -> /usr//x86_64-pc-linux-gnu/binutils-bin/2.19.1/ar
lrwxrwxrwx 1 root root   48 Sep 18  2009 as -> /usr//x86_64-pc-linux-gnu/binutils-bin/2.19.1/as
.........more

Something in the configure script for glibc was stopping when it found the old symlinks for binutils 2.19.1 in /usr/libexec/gcc/x86_64-pc-linux-gnu/

Moving all symlinked files out of the directory fixed the problem and glibc configured to use binutils 2.20.1 glibc 2.12.1 built fine. 

  
Comment 15 Robert Bradbury 2010-08-22 01:49:39 UTC
Oh no, you don't get out of it that easily.  I consider this bug to be "UNRESOLVED" because my system (even after applying the glibc-2.12.1-r1 patch) *STILL* does not work as it did before upgrading to 2.12.1.

The key point currently being that non-super-users can *still* not login.  (See Bug #333485).  This is *after* I have compiled at least, coreutils, openssh and net-tools with "-static" to allow them to function properly.  And that is on top of the fact that ONE CANNOT BUILD 2.12.1-r1 if one has previously (stupidly) installed 2.12.1 with a coreutils in "static" mode.  Because /usr/bin/install which is installed by coreutils is "static" and will cause a failure of 2.12.1-r1.  This is on top of the fact that one cannot downgrade to glibc-2.11.2 due to "imposed" restrictions, i.e.:

 * USE:  debug elibc_glibc kernel_linux userland_GNU x86
 * Sanity check to keep you from breaking your system:
 *  Downgrading glibc is not supported and a sure way to destruction
 * ERROR: sys-libs/glibc-2.11.2 failed:
 *   aborting to save your system

Oh, yes, "Downgrading glibc" is a sure way to break my system.  Shall we talk about "upgrading"???  In my experience non-static versions of glibc will work across 3-5 years of Linux software releases.  What doesn't appear to work is "static" releases -- when indeed *those* are the releases which should *ALWAYS* work because the 8086 architecture (and ELF formats) have not changed significantly in 15+ years!  I suspect I can take a version of sol.exe from 1995 from Windows 95 and still run it (perhaps even from DOS).  Why cannot the same be said for Linux?

For this bug to be considered "resolved", the glibc-2.12.1-r1 upgrade should work (which it appears to) and *ALL* packages which may depend on this upgrade [which may have "static" build options] (which by my count may amount to 50 or more ebuilds) should be modified so that they are rebuilt if this ebuild is installed.

And as a global option, for those of us who are really annoyed that "static" does not really mean "static" it would be nice to know who should be complained to or bug-fixes filed with "upstream" to eliminate this problem from further releases of Linux.  I do not believe the problematic functions in glibc involving static buffers are that hard to program around (caller passes address and size of buffer in which information is to be stored) -- and calls to such functions should have been eliminated from all core Linux/GNU/Gnome utilities *LONG* ago.
Comment 16 SpanKY gentoo-dev 2010-08-22 02:00:14 UTC
i think you've confused yourself.  this bug has nothing to do with static.
Comment 17 SpanKY gentoo-dev 2010-08-24 02:26:36 UTC
ive added the patch i sent upstream to 2.12.1-r1 so that older binutils (lacking gnu indirect support) will work properly