]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit
aarch64: Add support for GCS in AArch64 linker. users/ARM/gcs-binutils-gdb-master
authorSrinath Parvathaneni <srinath.parvathaneni@arm.com>
Tue, 30 Jan 2024 08:59:53 +0000 (08:59 +0000)
committersrinath <srinath.parvathaneni@arm.com>
Tue, 30 Jan 2024 08:59:55 +0000 (08:59 +0000)
commitba52022915e0a474600cdb17ae5f9ac0b057e83d
tree5c7ba90fce8f7284a830c7446e952e02b68ef996
parentb960445a45981873c5b1718824ea9d3b5749433a
aarch64: Add support for GCS in AArch64 linker.

This patch adds support for GCS in AArch64 linker.

This patch implements the following:
1) Defines GNU_PROPERTY_AARCH64_FEATURE_1_GCS bit for GCS in
GNU_PROPERTY_AARCH64_FEATURE_1_AND macro.

2) Adds readelf support to read and print the GNU properties
in AArch64.

Displaying notes found in: .note.gnu.property
[      ]+Owner[        ]+Data size[    ]+Description
  GNU                  0x00000010      NT_GNU_PROPERTY_TYPE_0
      Properties: AArch64 feature: GCS

3) Adds support for -z experimental-gcs linker option and document
all the values allowed with option (-z experimental-gcs[=always|never|implicit]).
-z experimental-gcs is equivalent to -z experimental-gcs=always and
when option is not passed in the command line, it defaults to implicit.

4) Adds support for -z experimental-gcs-report linker option and document
all the values allowed with this option (-z experimental-gcs-report[=none|warning|error]).
-z experimental-gcs-report is equivalent to -z experimental-gcs-report=none
and when option is not passed in the command line, it defaults to none.

The ABI changes adding GNU_PROPERTY_AARCH64_FEATURE_1_GCS to the
GNU property GNU_PROPERTY_AARCH64_FEATURE_1_AND is merged into main and
can be found below.
https://github.com/ARM-software/abi-aa/blob/main/sysvabi64/sysvabi64.rst
33 files changed:
bfd/elfnn-aarch64.c
bfd/elfxx-aarch64.c
bfd/elfxx-aarch64.h
binutils/readelf.c
include/elf/common.h
ld/emultempl/aarch64elf.em
ld/testsuite/ld-aarch64/aarch64-elf.exp
ld/testsuite/ld-aarch64/property-bti-pac1.d
ld/testsuite/ld-aarch64/property-bti-pac1.s
ld/testsuite/ld-aarch64/property-gcs.s [new file with mode: 0644]
ld/testsuite/ld-aarch64/property-gcs1.d [new file with mode: 0644]
ld/testsuite/ld-aarch64/property-gcs10.d [new file with mode: 0644]
ld/testsuite/ld-aarch64/property-gcs11.d [new file with mode: 0644]
ld/testsuite/ld-aarch64/property-gcs12.d [new file with mode: 0644]
ld/testsuite/ld-aarch64/property-gcs13.d [new file with mode: 0644]
ld/testsuite/ld-aarch64/property-gcs14.d [new file with mode: 0644]
ld/testsuite/ld-aarch64/property-gcs15.d [new file with mode: 0644]
ld/testsuite/ld-aarch64/property-gcs16.d [new file with mode: 0644]
ld/testsuite/ld-aarch64/property-gcs17.d [new file with mode: 0644]
ld/testsuite/ld-aarch64/property-gcs18.d [new file with mode: 0644]
ld/testsuite/ld-aarch64/property-gcs19.d [new file with mode: 0644]
ld/testsuite/ld-aarch64/property-gcs2.d [new file with mode: 0644]
ld/testsuite/ld-aarch64/property-gcs2.s [new file with mode: 0644]
ld/testsuite/ld-aarch64/property-gcs20.d [new file with mode: 0644]
ld/testsuite/ld-aarch64/property-gcs21.d [new file with mode: 0644]
ld/testsuite/ld-aarch64/property-gcs22.d [new file with mode: 0644]
ld/testsuite/ld-aarch64/property-gcs3.d [new file with mode: 0644]
ld/testsuite/ld-aarch64/property-gcs4.d [new file with mode: 0644]
ld/testsuite/ld-aarch64/property-gcs5.d [new file with mode: 0644]
ld/testsuite/ld-aarch64/property-gcs6.d [new file with mode: 0644]
ld/testsuite/ld-aarch64/property-gcs7.d [new file with mode: 0644]
ld/testsuite/ld-aarch64/property-gcs8.d [new file with mode: 0644]
ld/testsuite/ld-aarch64/property-gcs9.d [new file with mode: 0644]