On Saturday 23 July 2011 06:51:53 Aurelien Jarno wrote: > Building binutils on s390x leads to relocation issues: > | /home/aurel32/binutils/bfd/../libiberty/pic/libiberty.a(hashtab.o): In > | function `htab_create': > | /home/aurel32/binutils/libiberty/../../libiberty/hashtab.c:408:(.text+0x > | 5e4): relocation truncated to fit: R_390_GOT12 against symbol `xcalloc' > | defined in .text section in > | /home/aurel32/binutils/bfd/../libiberty/pic/libiberty.a(xmalloc.o) > | > | /home/aurel32/binutils/bfd/../libiberty/pic/libiberty.a(hashtab.o): In function `htab_try_create': > | /home/aurel32/binutils/libiberty/../../libiberty/hashtab.c:414:(.text+0x6 > | 1c): relocation truncated to fit: R_390_GOT12 against symbol > | `calloc@@GLIBC_2.2' defined in .text section in /lib/libc.so.6 > | > | collect2: ld returned 1 exit status > > Using -fPIC instead of -fpic there fixes the issue. > > 2011-07-23 Aurelien Jarno > > * configure.ac: Use -fPIC instead of -fpic on s390x. > > --- a/libiberty/configure.ac > +++ b/libiberty/configure.ac > @@ -216,6 +216,7 @@ > *-fpic* ) PICFLAG=-fpic ;; > * ) PICFLAG=-fPIC ;; > esac ;; > + s390x*-*-*) PICFLAG=-fPIC ;; > s390*-*-*) PICFLAG=-fpic ;; > sh*-*-*) PICFLAG=-fPIC ;; > esac i've run into this issue on Gentoo systems and binutils-2.22. but now with all the pic code being unified with gcc, we need to do: --- a/config/picflag.m4 +++ b/config/picflag.m4 @@ -51,6 +51,9 @@ case "${$2}" in m68k-*-*) $1=-fpic ;; + s390x*-*-*) + $1=-fPIC + ;; s390*-*-*) $1=-fpic ;; -mike