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-