glibc-2.3.6-r4 fails to compile if linked with binutils-2.17 (glibc-2.4-r3 compiles just fine): powerpc64-unknown-linux-gnu-gcc ../sysdeps/unix/sysv/linux/recvfrom.S -c -I../include -I. -I/var/tmp/portage/glibc-2.3.6-r4/work/build-ppc64-powerpc64-unknown-linux-gnu-nptl/socket -I.. -I../libio -I../nptl -I/var/tmp/portage/glibc-2.3.6-r4/work/build-ppc64-powerpc64-unknown-linux-gnu-nptl -I../sysdeps/powerpc/powerpc64/elf -I../sysdeps/powerpc/elf -I../nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64 -I../nptl/sysdeps/unix/sysv/linux/powerpc -I../nptl/sysdeps/unix/sysv/linux -I../nptl/sysdeps/pthread -I../sysdeps/pthread -I../nptl/sysdeps/unix/sysv -I../nptl/sysdeps/unix -I../nptl/sysdeps/powerpc -I../libidn/sysdeps/unix -I../sysdeps/unix/sysv/linux/powerpc/powerpc64 -I../sysdeps/unix/sysv/linux/wordsize-64 -I../sysdeps/unix/sysv/linux/powerpc -I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -I../sysdeps/unix/common -I../sysdeps/unix/mman -I../sysdeps/unix/inet -I../sysdeps/unix/sysv -I../sysdeps/unix/powerpc -I../sysdeps/unix -I../sysdeps/posix -I../sysdeps/powerpc/powerpc64/fpu -I../sysdeps/powerpc/powerpc64 -I../sysdeps/wordsize-64 -I../sysdeps/powerpc/fpu -I../sysdeps/powerpc -I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754 -I../sysdeps/generic/elf -I../sysdeps/generic -nostdinc -isystem /usr/lib/gcc/powerpc64-unknown-linux-gnu/3.4.6/include -isystem /usr/include -D_LIBC_REENTRANT -D_LIBC_REENTRANT -include ../include/libc-symbols.h -DPIC -DASSEMBLER -o /var/tmp/portage/glibc-2.3.6-r4/work/build-ppc64-powerpc64-unknown-linux-gnu-nptl/socket/recvfrom.o -MD -MP -MF /var/tmp/portage/glibc-2.3.6-r4/work/build-ppc64-powerpc64-unknown-linux-gnu-nptl/socket/recvfrom.o.dt -MT /var/tmp/portage/glibc-2.3.6-r4/work/build-ppc64-powerpc64-unknown-linux-gnu-nptl/socket/recvfrom.o ../sysdeps/unix/sysv/linux/bind.S: Assembler messages: ../sysdeps/unix/sysv/linux/bind.S:5: Error: symbol `__bind' is already defined ../sysdeps/unix/sysv/linux/bind.S:5: Error: symbol `.__bind' is already defined make[2]: *** [/var/tmp/portage/glibc-2.3.6-r4/work/build-ppc64-powerpc64-unknown-linux-gnu-nptl/socket/bind.o] Error 1 make[2]: *** Waiting for unfinished jobs.... ../sysdeps/unix/sysv/linux/listen.S: Assembler messages: ../sysdeps/unix/sysv/linux/listen.S:5: Error: symbol `__listen' is already defined ../sysdeps/unix/sysv/linux/listen.S:5: Error: symbol `.__listen' is already defined make[2]: *** [/var/tmp/portage/glibc-2.3.6-r4/work/build-ppc64-powerpc64-unknown-linux-gnu-nptl/socket/listen.o] Error 1 ../sysdeps/unix/sysv/linux/getsockname.S: Assembler messages: ../sysdeps/unix/sysv/linux/getsockname.S:5: Error: symbol `__getsockname' is already defined ../sysdeps/unix/sysv/linux/getsockname.S:5: Error: symbol `.__getsockname' is already defined make[2]: *** [/var/tmp/portage/glibc-2.3.6-r4/work/build-ppc64-powerpc64-unknown-linux-gnu-nptl/socket/getsockname.o] Error 1 make[2]: Leaving directory `/var/tmp/portage/glibc-2.3.6-r4/work/glibc-2.3.6/socket' make[1]: *** [socket/subdir_lib] Error 2 make[1]: Leaving directory `/var/tmp/portage/glibc-2.3.6-r4/work/glibc-2.3.6' make: *** [all] Error 2 # emerge --info Portage 2.1.1 (default-linux/ppc/ppc64/2006.1/64bit-userland, gcc-3.4.6, glibc-2.3.6-r4, 2.6.16.9 ppc64) ================================================================= System uname: 2.6.16.9 ppc64 POWER5 (gr) Gentoo Base System version 1.12.5 Last Sync: Thu, 21 Sep 2006 06:30:01 +0000 app-admin/eselect-compiler: [Not Present] dev-java/java-config: [Not Present] dev-lang/python: 2.4.3-r1 dev-python/pycrypto: 2.0.1-r5 dev-util/ccache: [Not Present] dev-util/confcache: [Not Present] sys-apps/sandbox: 1.2.17 sys-devel/autoconf: 2.13, 2.59-r7 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2 sys-devel/binutils: 2.17 sys-devel/gcc-config: 1.3.13-r3 sys-devel/libtool: 1.5.22 virtual/os-headers: 2.6.16 ACCEPT_KEYWORDS="ppc64" AUTOCLEAN="yes" CBUILD="powerpc64-unknown-linux-gnu" CFLAGS="-O2 -pipe -mtune=power5 -mcpu=power5" CHOST="powerpc64-unknown-linux-gnu" CONFIG_PROTECT="/etc /usr/share/X11/xkb" CONFIG_PROTECT_MASK="/etc/env.d /etc/gconf /etc/revdep-rebuild /etc/terminfo" CXXFLAGS="-O2 -pipe -mtune=power5 -mcpu=power5" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig collision-protect distlocks metadata-transfer sandbox sfperms strict" GENTOO_MIRRORS="http://ftp.ucsb.edu/pub/mirrors/linux/gentoo/" LINGUAS="" MAKEOPTS="-j9" PKGDIR="/usr/portage/packages" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude='/distfiles' --exclude='/local' --exclude='/packages'" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="ppc64 X alsa altivec apache2 apm arts audacious berkdb bitmap-fonts cli crypt cups dbus dlloader doc dri eds elibc_glibc emboss encode examples foomaticdb fortran gcj gdbm gif glib gnome gpm gstreamer gtk ibm imlib input_devices_evdev input_devices_keyboard input_devices_mouse ipv6 isdnlog jpeg kde kernel_linux libg++ libwww mad mhash mikmod mng motif mp3 mpeg mysql nas ncurses nis nls nptl nptlonly objc ogg opengl oss pam pcre pdflib perl png pppd python qt3 qt4 quicktime readline reflection sdl session spell spl ssl svg tcpd tiff truetype truetype-fonts type1-fonts udev unicode userland_GNU video_cards_ati video_cards_dummy video_cards_fbdev video_cards_mga video_cards_nv video_cards_sisusb video_cards_v4l vorbis xml xmms xorg xv zlib" Unset: CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LDFLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY
this is a bug in the ppc64-specific code, not a bug in binutils http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.3.6/6230_all_arm-glibc-2.3.6-socket-no-weak-alias.patch?rev=1.1&view=markup http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.3.6/6530_all_sparc-glibc-2.3.6-socket-no-weak-alias.patch?rev=1.1&view=markup
Created attachment 97821 [details, diff] xxxx_all_powerpc64-glibc-2.3.6-socket-no-weak-alias.patch proposed patch, which compiles just fine on my machine, though upstream did it slightly different. they have an extra #ifndef in there (around line 44): +#ifndef socket +/* If this is just socket.S leave it alone! */ +#else #ifndef __socket
whoops.. forget that last comment about #ifndef. the patch just works. upstream _removed_ the '#ifndef socket' in glibc-2.4 and not _added_ it. The arguments in my diff command where just in the wrong order...
in cvs
vapier: could you please bump out a patchset containing this fix? I would like to mark binutils-2.17 stable on ppc64 and this is the last thing holding us back.
i already did, it's called 2.3.6-r5
sorry...