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

Reply via email to