Hi all: I have been building ARM Cortex-M3 cross-compiler toolchains for years with makefiles similar to this one: https://github.com/rdiez/JtagDue/blob/master/Toolchain/Makefile I am trying to upgrade that makefile from GCC 10.2 to GCC 11.2 (search for "VersionSet9" in that makefile), and I am getting this error from ld: /usr/bin/ld: /tmp/g++-mapper-server.98PJcy.ltrans0.ltrans.o: relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a PIE object; recompile with -fPIE collect2: error: ld returned 1 exit status make[3]: *** [Makefile:94: g++-mapper-server] Error 1 make[2]: *** [Makefile:10549: all-c++tools] Error 2 This is very similar to the following bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98324 I checked, and the fix linked from this bug is included in version GCC 11.2 . But I am still getting that error. The way I am building the toolchain is not the same as described in that bug. I have never used option "--enable-default-pie" in the past, and I have never used option "-with-build-config=bootstrap-lto-lean", and I still was able build cross-toolchains with many GCC versions for years. The target is actually an embedded ARM Cortex-M3 microcontroller with fixed memory addresses (a "bare metal" firmware without OS), so I guess that I do not really need PIE. It may even cost some performance, if I understand correctly what PIE does. I am guessing that bootstrapping a cross-compiler GCC with LTO is still broken with its default PIE setting. I already added Comment 7 about it to that bug, but got no reply yet. Can anybody here help? Thanks in advance, rdiez