File gmp-gcs.patch of Package gmp
--- gmp-6.3.0/configure.ac.orig 2025-10-23 21:48:56.352795060 +0200
+++ gmp-6.3.0/configure.ac 2025-10-23 21:49:59.732815289 +0200
@@ -3779,6 +3779,10 @@ if test "$gmp_asm_syntax_testing" != no;
GMP_DEFINE_RAW(["define(<ARM64_FEATURE_PAC_DEFAULT>,<$ARM64_FEATURE_PAC_DEFAULT>)"])
AC_SUBST([ARM64_FEATURE_PAC_DEFAULT])
+ GMP_GET_MACRO_VALUE([__ARM_FEATURE_GCS_DEFAULT], [ARM64_FEATURE_GCS_DEFAULT], [0])
+ GMP_DEFINE_RAW(["define(<ARM64_FEATURE_GCS_DEFAULT>,<$ARM64_FEATURE_GCS_DEFAULT>)"])
+ AC_SUBST([ARM64_FEATURE_GCS_DEFAULT])
+
GMP_GET_MACRO_VALUE([__ELF__], [ARM64_ELF], [0])
GMP_DEFINE_RAW(["define(<ARM64_ELF>,<$ARM64_ELF>)"])
esac
--- gmp-6.3.0/mpn/arm64/arm64-defs.m4.orig 2025-10-23 21:50:14.708811044 +0200
+++ gmp-6.3.0/mpn/arm64/arm64-defs.m4 2025-10-23 21:56:17.723037919 +0200
@@ -80,6 +80,14 @@ ifelse(ARM64_FEATURE_PAC_DEFAULT, `1',
define(`GNU_PROPERTY_AARCH64_POINTER_AUTH', `0')'
')
+dnl if GCS we need to indicate the valid GCS support for gnu notes.
+
+
+ifelse(ARM64_FEATURE_GCS_DEFAULT, `1',
+ `define(`GNU_PROPERTY_AARCH64_GCS', `1'),
+ `define(`GNU_PROPERTY_AARCH64_GCS', `0')'
+')
+
dnl NOTE OVERRIDES asm-defs.m4 definition for arch specific functionality
dnl
dnl Usage: PROLOGUE_cpu(GSYM_PREFIX`'foo[,param])
@@ -125,7 +133,7 @@ define(`ADD_GNU_NOTES_IF_NEEDED', `
.asciz "GNU";
.long 0xc0000000; /* GNU_PROPERTY_AARCH64_FEATURE_1_AND */
.long 4;
- .long eval(indir(`GNU_PROPERTY_AARCH64_POINTER_AUTH') + indir(`GNU_PROPERTY_AARCH64_BTI'));
+ .long eval(indir(`GNU_PROPERTY_AARCH64_POINTER_AUTH') + indir(`GNU_PROPERTY_AARCH64_BTI') + indir(`GNU_PROPERTY_AARCH64_GCS') );
.long 0;
.popsection;
')