https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119440
Bug ID: 119440 Summary: --enable-host-pie fails to link (stage1) gnatbind Product: gcc Version: 15.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: ada Assignee: unassigned at gcc dot gnu.org Reporter: rguenth at gcc dot gnu.org CC: dkm at gcc dot gnu.org Target Milestone: --- When bootstrapping GCC 15 with Ada enabled and --enable-host-pie using a GCC 14 host compiler that wasn't built with --enable-host-pie I see [ 189s] g++ -std=c++14 -pie -g ... -static-libstdc++ -static-libgcc -o gnatbind ... /usr/lib64/gcc/x86_64-suse-linux/14/adalib/libgnat.a ... [ 190s] /usr/lib64/gcc/x86_64-suse-linux/14/../../../../x86_64-suse-linux/bin/ld: /usr/lib64/gcc/x86_64-suse-linux/14/adalib/libgnat.a(a-contai.o): relocation R_X86_64_32 against symbol `ada__containers__capacity_error' can not be used when making a PIE object; recompile with -fPIE [ 190s] /usr/lib64/gcc/x86_64-suse-linux/14/../../../../x86_64-suse-linux/bin/ld: failed to set dynamic section sizes: bad value [ 190s] collect2: error: ld returned 1 exit status [ 190s] make[3]: *** [../../gcc/ada/gcc-interface/Make-lang.in:797: gnatbind] Error 1 ... [ 206s] make[2]: *** [Makefile:5073: all-stage1-gcc] Error 2 [ 206s] make[1]: *** [Makefile:30409: stage1-bubble] Error 2 it seems stage1 gnatbind (and probably other related tools) are linking statically and when using --enable-host-pie they use -pie without considering how that host static library is built. It seems to me that stage1 Ada tools should not be using -pie and I hope stage2 and on will then use the built libgnat.a instead of the host one.