]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
arm: Add .type and .size to __gnu_cmse_nonsecure_call [PR115360]
authorAndre Vieira <andre.simoesdiasvieira@arm.com>
Thu, 6 Jun 2024 15:02:50 +0000 (16:02 +0100)
committerAndre Vieira <andre.simoesdiasvieira@arm.com>
Thu, 6 Jun 2024 15:02:50 +0000 (16:02 +0100)
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.

libgcc/config/arm/cmse_nonsecure_call.S

index f93ce6bb4f9f679020c9684c56f5916f1c0bf73c..fef37b955af673fb975dd64229d5e0647afe0d00 100644 (file)
@@ -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