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
openSUSE Build Service is sponsored by