[gcc r15-1073] arm: Add .type and .size to __gnu_cmse_nonsecure_call [PR115360]

Andre Simoes Dias Vieira avieira@gcc.gnu.org
Thu Jun 6 15:03:19 GMT 2024


https://gcc.gnu.org/g:c559353af49fe5743d226ac3112a285b27a50f6a

commit r15-1073-gc559353af49fe5743d226ac3112a285b27a50f6a
Author: Andre Vieira <andre.simoesdiasvieira@arm.com>
Date:   Thu Jun 6 16:02:50 2024 +0100

    arm: Add .type and .size to __gnu_cmse_nonsecure_call [PR115360]
    
    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.
    
    libgcc/ChangeLog:
    
            PR target/115360
            * config/arm/cmse_nonsecure_call.S: Add .type and .size directives.

Diff:
---
 libgcc/config/arm/cmse_nonsecure_call.S | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/libgcc/config/arm/cmse_nonsecure_call.S b/libgcc/config/arm/cmse_nonsecure_call.S
index f93ce6bb4f9..fef37b955af 100644
--- a/libgcc/config/arm/cmse_nonsecure_call.S
+++ b/libgcc/config/arm/cmse_nonsecure_call.S
@@ -33,6 +33,7 @@
 #endif
 
 .thumb
+.type __gnu_cmse_nonsecure_call, %function
 .global __gnu_cmse_nonsecure_call
 __gnu_cmse_nonsecure_call:
 #if defined(__ARM_ARCH_8M_MAIN__)
@@ -142,3 +143,4 @@ pop	    {r5-r7, pc}
 #else
 #error "This should only be used for armv8-m base- and mainline."
 #endif
+.size __gnu_cmse_nonsecure_call, .-__gnu_cmse_nonsecure_call


More information about the Gcc-cvs mailing list