diff options
author | Szabolcs Nagy <szabolcs.nagy@arm.com> | 2024-11-14 16:15:11 +0000 |
---|---|---|
committer | Richard Sandiford <richard.sandiford@arm.com> | 2024-11-14 16:15:11 +0000 |
commit | 608da244019424852215d41019278b2f4e3962c5 (patch) | |
tree | 41e73ed499ccc3a47b11145af9b4e75d7fbae1af /gcc | |
parent | 2a330ec14914e10e5201e39d565674463e67c2e2 (diff) | |
download | gcc-608da244019424852215d41019278b2f4e3962c5.zip gcc-608da244019424852215d41019278b2f4e3962c5.tar.gz gcc-608da244019424852215d41019278b2f4e3962c5.tar.bz2 |
aarch64: Emit GNU property NOTE for GCS
gcc/ChangeLog:
* config/aarch64/aarch64.cc (GNU_PROPERTY_AARCH64_FEATURE_1_GCS):
Define.
(aarch64_file_end_indicate_exec_stack): Set GCS property bit.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/aarch64/aarch64.cc | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc index 68230e1..7c41f39 100644 --- a/gcc/config/aarch64/aarch64.cc +++ b/gcc/config/aarch64/aarch64.cc @@ -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 |