On 11/04/2011 02:17 PM, Andreas Krebbel wrote:
> This appears to break bootstrap on s390x:
> 
> /home/andreas/regtest/gcc-bisect-build/./gcc/crtbeginS.o: In function 
> `__do_global_dtors_aux':
> crtstuff.c:(.text+0x28): relocation truncated to fit: R_390_GOT12 against 
> symbol
> `__cxa_finalize@@GLIBC_2.2' defined in .text section in /lib64/libc.so.6
> /home/andreas/regtest/gcc-bisect-build/./gcc/crtbeginS.o: In function 
> `frame_dummy':
> crtstuff.c:(.text+0x78): relocation truncated to fit: R_390_GOT12 against 
> undefined symbol
> `_Jv_RegisterClasses'
> collect2: error: ld returned 1 exit status
> make[5]: *** [libstdc++.la] Error 1
> make[5]: Leaving directory
> `/home/andreas/regtest/gcc-bisect-build/s390x-ibm-linux-gnu/libstdc++-v3/src'
> make[4]: *** [all-recursive] Error 1
> make[4]: Leaving directory
> `/home/andreas/regtest/gcc-bisect-build/s390x-ibm-linux-gnu/libstdc++-v3'
> make[3]: *** [all] Error 2
> make[3]: Leaving directory
> `/home/andreas/regtest/gcc-bisect-build/s390x-ibm-linux-gnu/libstdc++-v3'
> make[2]: *** [all-stage1-target-libstdc++-v3] Error 2
> make[2]: Leaving directory `/home/andreas/regtest/gcc-bisect-build'
> make[1]: *** [stage1-bubble] Error 2
> make[1]: Leaving directory `/home/andreas/regtest/gcc-bisect-build'
> make: *** [all] Error 2

This is caused by changing t-crtstuff-pic from:
CRTSTUFF_T_CFLAGS_S = $(CRTSTUFF_T_CFLAGS) -fPIC
to:
CRTSTUFF_T_CFLAGS_S = $(CRTSTUFF_T_CFLAGS) $(PICFLAG)

With that change the crtbeginS file is built with -fpic instead of -fPIC and 
therefore the
relocation above fails due to a GOT overflow.

-fPIC compared to -fpic causes a small overhead in the generated code so I'm 
not sure if
that should be changed in config/picflag.m4. I think I would prefer to go back 
to the old
t-crtstuff-pic instead.

Bye,

-Andreas-

Reply via email to