From: Szabolcs Nagy <[email protected]>
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 | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc
index e1e513a5f0b..d6b7b5c8ae9 100644
--- a/gcc/config/aarch64/aarch64.cc
+++ b/gcc/config/aarch64/aarch64.cc
@@ -29410,6 +29410,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 ()
{
@@ -29422,6 +29423,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. */
@@ -29453,6 +29457,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
--
2.39.5