]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
aarch64: Emit GNU property NOTE for GCS
authorSzabolcs Nagy <szabolcs.nagy@arm.com>
Thu, 14 Nov 2024 16:15:11 +0000 (16:15 +0000)
committerRichard Sandiford <richard.sandiford@arm.com>
Thu, 14 Nov 2024 16:15:11 +0000 (16:15 +0000)
gcc/ChangeLog:

* config/aarch64/aarch64.cc (GNU_PROPERTY_AARCH64_FEATURE_1_GCS):
Define.
(aarch64_file_end_indicate_exec_stack): Set GCS property bit.

gcc/config/aarch64/aarch64.cc

index 68230e1f4c2deebc05560a215f66ebfa360f6400..7c41f3960231767db202b27dd801dfbfba13bce9 100644 (file)
@@ -29544,6 +29544,7 @@ aarch64_can_tag_addresses ()
 #define GNU_PROPERTY_AARCH64_FEATURE_1_AND     0xc0000000
 #define GNU_PROPERTY_AARCH64_FEATURE_1_BTI     (1U << 0)
 #define GNU_PROPERTY_AARCH64_FEATURE_1_PAC     (1U << 1)
+#define GNU_PROPERTY_AARCH64_FEATURE_1_GCS     (1U << 2)
 void
 aarch64_file_end_indicate_exec_stack ()
 {
@@ -29556,6 +29557,9 @@ aarch64_file_end_indicate_exec_stack ()
   if (aarch_ra_sign_scope != AARCH_FUNCTION_NONE)
     feature_1_and |= GNU_PROPERTY_AARCH64_FEATURE_1_PAC;
 
+  if (aarch64_gcs_enabled ())
+    feature_1_and |= GNU_PROPERTY_AARCH64_FEATURE_1_GCS;
+
   if (feature_1_and)
     {
       /* Generate .note.gnu.property section.  */
@@ -29587,6 +29591,7 @@ aarch64_file_end_indicate_exec_stack ()
       assemble_align (POINTER_SIZE);
     }
 }
+#undef GNU_PROPERTY_AARCH64_FEATURE_1_GCS
 #undef GNU_PROPERTY_AARCH64_FEATURE_1_PAC
 #undef GNU_PROPERTY_AARCH64_FEATURE_1_BTI
 #undef GNU_PROPERTY_AARCH64_FEATURE_1_AND