File 943.patch of Package libffi
From 50a7de2cb7c4a7f272f7ce7f8f00c7e06550a8c5 Mon Sep 17 00:00:00 2001
From: Guillaume Gardet <guillaume.gardet@arm.com>
Date: Thu, 23 Oct 2025 17:27:18 +0200
Subject: [PATCH] aarch64: support GCS in assembly
Signed-off-by: Guillaume Gardet <guillaume.gardet@arm.com>
---
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