[PATCH v5 0/3] aarch64: GCS feature check in GNU note properties for input objects of a same link unit

Matthieu Longo matthieu.longo@arm.com
Mon Dec 2 14:37:55 GMT 2024


This patch series is based on the feedback from a previous review [1] on the GCS patch, and only focus on adding support for Guarded Control Stack to AArch64 linker.
Most of the issues mentioned in [1] are addressed in a separate patch series [2] independent of the introduction of GCS.
Regarding the GCS feature, more technical details are available in patch 1.

Regression tested on aarch64-unknown-linux-gnu.
Ok for binutils-master?

Regards,
Matthieu.

[1]: https://inbox.sourceware.org/binutils/4796b1c0-20b5-4ffd-a71f-fdd955cf139b@arm.com/
[2]: https://inbox.sourceware.org/binutils/20241202142219.3426785-1-matthieu.longo@arm.com/

Matthieu Longo (2):
  aarch64: add tests to check the correct merge of the GCS feature with
    others.
  aarch64: add tests for combinations of GCS options and marked/unmarked
    inputs

Srinath Parvathaneni (1):
  aarch64: GCS feature check in GNU note properties for input objects

 bfd/elfnn-aarch64.c                           | 29 +++++++
 bfd/elfxx-aarch64.c                           | 67 ++++++++++++++-
 bfd/elfxx-aarch64.h                           | 22 +++++
 binutils/readelf.c                            |  4 +
 include/elf/common.h                          |  1 +
 ld/emultempl/aarch64elf.em                    | 85 ++++++++++++++++---
 ld/ld.texi                                    | 30 +++++++
 ld/testsuite/ld-aarch64/protections/gcs-1-a.d |  9 ++
 ld/testsuite/ld-aarch64/protections/gcs-1-b.d | 12 +++
 ld/testsuite/ld-aarch64/protections/gcs-1-c.d |  7 ++
 ld/testsuite/ld-aarch64/protections/gcs-1-d.d |  7 ++
 .../ld-aarch64/protections/gcs-2-a-i.d        | 12 +++
 .../ld-aarch64/protections/gcs-2-a-ii.d       | 14 +++
 .../ld-aarch64/protections/gcs-2-b-i.d        | 12 +++
 .../ld-aarch64/protections/gcs-2-b-ii.d       |  7 ++
 .../ld-aarch64/protections/gcs-2-b-iii.d      | 12 +++
 .../ld-aarch64/protections/gcs-2-b-iv.d       |  7 ++
 .../ld-aarch64/protections/gcs-2-c-i.d        |  7 ++
 .../ld-aarch64/protections/gcs-2-c-ii.d       |  7 ++
 .../ld-aarch64/protections/gcs-3-a-i.d        |  8 ++
 .../ld-aarch64/protections/gcs-3-a-ii.d       | 14 +++
 .../ld-aarch64/protections/gcs-3-a-iii.d      | 13 +++
 .../ld-aarch64/protections/gcs-3-a-iv.d       | 14 +++
 .../ld-aarch64/protections/gcs-3-b-i.d        |  8 ++
 .../ld-aarch64/protections/gcs-3-b-ii.d       |  8 ++
 .../ld-aarch64/protections/gcs-3-b-iii.d      |  8 ++
 .../ld-aarch64/protections/gcs-3-c-i.d        |  8 ++
 .../ld-aarch64/protections/gcs-3-c-ii.d       |  8 ++
 .../ld-aarch64/protections/gcs-3-c-iii.d      |  8 ++
 ld/testsuite/ld-aarch64/protections/gcs.s     | 12 +++
 ld/testsuite/ld-aarch64/protections/gcs2.s    | 32 +++++++
 .../gnu-note-properties-maskable-merged.inc   |  4 +
 .../gnu-note-properties-maskable-split.inc    | 21 +++++
 .../gnu-note-properties-selectable-merged.inc |  4 +
 .../gnu-note-properties-selectable-split.inc  | 21 +++++
 .../protections/gnu-properties-1-all-merged.d |  2 +-
 .../protections/gnu-properties-1-all-split.d  |  2 +-
 .../protections/gnu-properties-all.s          |  3 +-
 .../gnu-properties-combine-2-all-all.d        |  4 +-
 .../gnu-properties-combine-2-all-bti-pac.d    | 12 +++
 .../gnu-properties-combine-2-all-gcs.d        | 12 +++
 ld/testsuite/ld-aarch64/protections/nogcs.s   | 14 +++
 42 files changed, 572 insertions(+), 19 deletions(-)
 create mode 100644 ld/testsuite/ld-aarch64/protections/gcs-1-a.d
 create mode 100644 ld/testsuite/ld-aarch64/protections/gcs-1-b.d
 create mode 100644 ld/testsuite/ld-aarch64/protections/gcs-1-c.d
 create mode 100644 ld/testsuite/ld-aarch64/protections/gcs-1-d.d
 create mode 100644 ld/testsuite/ld-aarch64/protections/gcs-2-a-i.d
 create mode 100644 ld/testsuite/ld-aarch64/protections/gcs-2-a-ii.d
 create mode 100644 ld/testsuite/ld-aarch64/protections/gcs-2-b-i.d
 create mode 100644 ld/testsuite/ld-aarch64/protections/gcs-2-b-ii.d
 create mode 100644 ld/testsuite/ld-aarch64/protections/gcs-2-b-iii.d
 create mode 100644 ld/testsuite/ld-aarch64/protections/gcs-2-b-iv.d
 create mode 100644 ld/testsuite/ld-aarch64/protections/gcs-2-c-i.d
 create mode 100644 ld/testsuite/ld-aarch64/protections/gcs-2-c-ii.d
 create mode 100644 ld/testsuite/ld-aarch64/protections/gcs-3-a-i.d
 create mode 100644 ld/testsuite/ld-aarch64/protections/gcs-3-a-ii.d
 create mode 100644 ld/testsuite/ld-aarch64/protections/gcs-3-a-iii.d
 create mode 100644 ld/testsuite/ld-aarch64/protections/gcs-3-a-iv.d
 create mode 100644 ld/testsuite/ld-aarch64/protections/gcs-3-b-i.d
 create mode 100644 ld/testsuite/ld-aarch64/protections/gcs-3-b-ii.d
 create mode 100644 ld/testsuite/ld-aarch64/protections/gcs-3-b-iii.d
 create mode 100644 ld/testsuite/ld-aarch64/protections/gcs-3-c-i.d
 create mode 100644 ld/testsuite/ld-aarch64/protections/gcs-3-c-ii.d
 create mode 100644 ld/testsuite/ld-aarch64/protections/gcs-3-c-iii.d
 create mode 100644 ld/testsuite/ld-aarch64/protections/gcs.s
 create mode 100644 ld/testsuite/ld-aarch64/protections/gcs2.s
 create mode 100644 ld/testsuite/ld-aarch64/protections/gnu-properties-combine-2-all-bti-pac.d
 create mode 100644 ld/testsuite/ld-aarch64/protections/gnu-properties-combine-2-all-gcs.d
 create mode 100644 ld/testsuite/ld-aarch64/protections/nogcs.s

-- 
2.47.0



More information about the Binutils mailing list