about summary refs log tree commit diff
diff options
context:
space:
mode:
authorSzabolcs Nagy <szabolcs.nagy@arm.com>2023-12-22 12:29:48 +0000
committerSzabolcs Nagy <szabolcs.nagy@arm.com>2024-07-08 09:41:44 +0100
commit4749a0c86aa030348fc44138ea8772bb3a4d075c (patch)
tree65575f6814ff17d445ea98c2c191c86e79039b33
parent01204afc0d82e3fc47a65a3f6330c09d8e7459ee (diff)
downloadglibc-4749a0c86aa030348fc44138ea8772bb3a4d075c.tar.gz
glibc-4749a0c86aa030348fc44138ea8772bb3a4d075c.tar.xz
glibc-4749a0c86aa030348fc44138ea8772bb3a4d075c.zip
aarch64: Mark objects with GCS property note
TODO: binutils config check
TODO: build attributes instead of gnu property
-rw-r--r--sysdeps/aarch64/sysdep.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/sysdeps/aarch64/sysdep.h b/sysdeps/aarch64/sysdep.h
index 661d9fe8c1..55e0230b5e 100644
--- a/sysdeps/aarch64/sysdep.h
+++ b/sysdeps/aarch64/sysdep.h
@@ -85,6 +85,7 @@ strip_pac (void *p)
 #define FEATURE_1_AND 0xc0000000
 #define FEATURE_1_BTI 1
 #define FEATURE_1_PAC 2
+#define FEATURE_1_GCS 4
 
 /* Add a NT_GNU_PROPERTY_TYPE_0 note.  */
 #define GNU_PROPERTY(type, value)	\
@@ -103,9 +104,9 @@ strip_pac (void *p)
 /* Add GNU property note with the supported features to all asm code
    where sysdep.h is included.  */
 #if HAVE_AARCH64_BTI && HAVE_AARCH64_PAC_RET
-GNU_PROPERTY (FEATURE_1_AND, FEATURE_1_BTI|FEATURE_1_PAC)
+GNU_PROPERTY (FEATURE_1_AND, FEATURE_1_BTI|FEATURE_1_PAC|FEATURE_1_GCS)
 #elif HAVE_AARCH64_BTI
-GNU_PROPERTY (FEATURE_1_AND, FEATURE_1_BTI)
+GNU_PROPERTY (FEATURE_1_AND, FEATURE_1_BTI|FEATURE_1_GCS)
 #endif
 
 /* Define an entry point visible from C.  */