- Add upstream patch to fix GCS on aarch64: * 943.patch OBS-URL: https://build.opensuse.org/request/show/1313715 OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/libffi?expand=0&rev=40
37 lines
1.2 KiB
Diff
37 lines
1.2 KiB
Diff
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
|