bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug ld/24709] [arm] linker crash and assertion failure with CMSE


From: clyon at gcc dot gnu.org
Subject: [Bug ld/24709] [arm] linker crash and assertion failure with CMSE
Date: Mon, 24 Jun 2019 16:50:38 +0000

https://sourceware.org/bugzilla/show_bug.cgi?id=24709

--- Comment #1 from Christophe Lyon <clyon at gcc dot gnu.org> ---
When using 0x00400000 as section start address, we generate this:
00400000 <foo>:
  400000:       e97f e97f       sg
  400004:       f408 b8b2       b.w     816c <__acle_se_foo>

[...]

0000816c <__acle_se_foo>:
    816c:       b480            push    {r7}
    816e:       b083            sub     sp, #12
[...]

If we use 0x20400000 instead, the CMSE stub is located too far away from
__acle_se_foo (still at 0x816c), and we fail when trying to insert a far-call
stub.

The failing assertion is in elf32_arm_get_stub_entry:
  BFD_ASSERT (input_section->id <= htab->top_id);
in this case we have htab->top_id==478 and input_section_id==509 (input_section
is .gnu.sgstubs.__stub)

Can we iterate and mix different types of stubs insertion?

Alternatively, we could add a new type of stub "far-CMSE-stub" to deal with the
case where the CMSE stub is too far from its destination.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]