[gcc r11-11479] arm: Add .type and .size to __gnu_cmse_nonsecure_call [PR115360]
Andre Simoes Dias Vieira
avieira@gcc.gnu.org
Wed Jun 12 14:13:40 GMT 2024
https://gcc.gnu.org/g:e8d2679c0163f190984c6e5c20f17fe0ceec77fd
commit r11-11479-ge8d2679c0163f190984c6e5c20f17fe0ceec77fd
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.
(cherry picked from commit c559353af49fe5743d226ac3112a285b27a50f6a)
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 c8e0fbbe665d..f36ddef447ae 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