]> 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>
Wed, 12 Jun 2024 14:12:14 +0000 (15:12 +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.

(cherry picked from commit c559353af49fe5743d226ac3112a285b27a50f6a)

libgcc/config/arm/cmse_nonsecure_call.S

index 805136537e75898939d7a73219baf68ad21a33c2..19bf18a593183a685501aa54eecb2c920a4fedea 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