https://sourceware.org/bugzilla/show_bug.cgi?id=25665
--- Comment #5 from Tamar Christina <tnfchris at sourceware dot org> --- It works on AArch32 because it places the veneers directly after the input section instead of after all sections. This is just a coincidence that it works, the general problem doesn't work, You can get the same problem in a number of ways on aarch32: Bar.c int foo () { return 0; } Foo.c int main() { int x = foo (); asm (".zero 134217728"); return x; } > arm-none-eabi-ld -e0 foo.o bar.o foo.o: in function `main': foo.c:(.text+0x8): relocation truncated to fit: R_ARM_CALL against symbol `foo' defined in .text section in bar.o So while I can change the generation of the veneer section to match what Arm is doing it won't fix the general problem. It also has an effect on things such as certain erratum workarounds. placing the sub sections immediately after the section that needs them means for something like the A53 erratum we have to align each individual stub section to a 4k boundary to prevent it re-introducing the same bug. This has the potential to increase the code size significantly. Though I guess I could do it as a commandline option, but I think you'll just run into the problem again in a different form. -- You are receiving this mail because: You are on the CC list for the bug.