On 06/06/2024 12:53, Richard Earnshaw (lists) wrote:
On 05/06/2024 17:07, Andre Vieira (lists) wrote:
Hi,
This patch adds missing assembly directives to the CMSE library wrapper to call
functions with attribute cmse_nonsecure_call. Without the .type directive the
linker will fail to produce the correct veneer if a call to this wrapper
function is to far from the wrapper itself. The .size was added for
completeness, though we don't necessarily have a usecase for it.
I did not add a testcase as I couldn't get dejagnu to disassemble the linked
binary to check we used an appropriate branch instruction, I did however test
it locally and with this change the GNU linker now generates an appropriate
veneer and call to that veneer when __gnu_cmse_nonsecure_call is too far.
OK for trunk and backport to any release branches still in support (after
waiting a week or so)?
libgcc/ChangeLog:
PR target/115360
* config/arm/cmse_nonsecure_call.S: Add .type and .size directives.
OK.
R.
OK to backport? I was thinking backporting it as far as gcc-11 (we
haven't done a 11.5 yet).
Kind Regards,
Andre