[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug ld/25665] aarch64 veneers not inserted with large .text object betw
From: |
tnfchris at sourceware dot org |
Subject: |
[Bug ld/25665] aarch64 veneers not inserted with large .text object between caller and target |
Date: |
Tue, 07 Apr 2020 15:32:34 +0000 |
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.
- [Bug ld/25665] aarch64 veneers not inserted with large .text object between caller and target, tnfchris at sourceware dot org, 2020/04/03
- [Bug ld/25665] aarch64 veneers not inserted with large .text object between caller and target, tnfchris at sourceware dot org, 2020/04/07
- [Bug ld/25665] aarch64 veneers not inserted with large .text object between caller and target, rrorden at ptc dot com, 2020/04/07
- [Bug ld/25665] aarch64 veneers not inserted with large .text object between caller and target,
tnfchris at sourceware dot org <=
- [Bug ld/25665] aarch64 veneers not inserted with large .text object between caller and target, rrorden at ptc dot com, 2020/04/07
- [Bug ld/25665] aarch64 veneers not inserted with large .text object between caller and target, tnfchris at sourceware dot org, 2020/04/07
- [Bug ld/25665] aarch64 veneers not inserted with large .text object between caller and target, rrorden at ptc dot com, 2020/04/07
- [Bug ld/25665] aarch64 veneers not inserted with large .text object between caller and target, wdijkstr at arm dot com, 2020/04/07
- [Bug ld/25665] aarch64 veneers not inserted with large .text object between caller and target, rrorden at ptc dot com, 2020/04/07
- [Bug ld/25665] aarch64 veneers not inserted with large .text object between caller and target, tnfchris at sourceware dot org, 2020/04/07
- [Bug ld/25665] aarch64 veneers not inserted with large .text object between caller and target, tnfchris at sourceware dot org, 2020/04/22
- [Bug ld/25665] aarch64 veneers not inserted with large .text object between caller and target, rrorden at ptc dot com, 2020/04/22
- [Bug ld/25665] aarch64 veneers not inserted with large .text object between caller and target, wdijkstr at arm dot com, 2020/04/22
- [Bug ld/25665] aarch64 veneers not inserted with large .text object between caller and target, tnfchris at sourceware dot org, 2020/04/22