From 50a7de2cb7c4a7f272f7ce7f8f00c7e06550a8c5 Mon Sep 17 00:00:00 2001 From: Guillaume Gardet Date: Thu, 23 Oct 2025 17:27:18 +0200 Subject: [PATCH] aarch64: support GCS in assembly Signed-off-by: Guillaume Gardet --- src/aarch64/sysv.S | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/aarch64/sysv.S b/src/aarch64/sysv.S index 81d33f2ef..ab85ddd46 100644 --- a/src/aarch64/sysv.S +++ b/src/aarch64/sysv.S @@ -74,6 +74,12 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ .text .align 4 +#if defined(__ARM_FEATURE_GCS_DEFAULT) && __ARM_FEATURE_GCS_DEFAULT == 1 +#define GNU_PROPERTY_AARCH64_GCS (1<<2) +#else +#define GNU_PROPERTY_AARCH64_GCS 0 /* No GCS */ +#endif + /* ffi_call_SYSV extern void ffi_call_SYSV (void *stack, void *frame, void (*fn)(void), void *rvalue, @@ -692,7 +698,7 @@ CNAME(ffi_go_closure_SYSV): .asciz "GNU"; .long 0xc0000000; /* GNU_PROPERTY_AARCH64_FEATURE_1_AND */ .long 4; - .long GNU_PROPERTY_AARCH64_BTI | GNU_PROPERTY_AARCH64_POINTER_AUTH; + .long GNU_PROPERTY_AARCH64_BTI | GNU_PROPERTY_AARCH64_POINTER_AUTH | GNU_PROPERTY_AARCH64_GCS; .long 0; .popsection; #endif