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

Christophe Lyon <clyon at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|unassigned at sourceware dot org   |clyon at gcc dot gnu.org

--- Comment #2 from Christophe Lyon <clyon at gcc dot gnu.org> ---

> 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.

I'm trying this approach, because it seems simpler, but there is a
complication: the section containing the CMSE stub is created just before the
first CMSE stub is created, in cmse_scan() while calling:

      stub_entry
        = elf32_arm_create_stub (htab, arm_stub_cmse_branch_thumb_only,
                                 NULL, NULL, section, hash, sym_name,
                                 sym_value, branch_type, &new_stub);

So, in cmse_scan(), we can compute the address of the target (via sym_value and
section offset/vma), but we don't know the address of the instruction in the
stub that will cause an out-of-range branch.
Replacing the stub with one of "far-CMSE-stub" type seems at least awkward....

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils

Reply via email to