https://gcc.gnu.org/g:c559353af49fe5743d226ac3112a285b27a50f6a
commit r15-1073-gc559353af49fe5743d226ac3112a285b27a50f6a Author: Andre Vieira <andre.simoesdiasvie...@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