[PATCH v12 00/25] AArch64 AEABI build attributes (a.k.a. object attributes v2)
Matthieu Longo
matthieu.longo@arm.com
Fri Jan 16 18:59:20 GMT 2026
This patch series introduces support for AArch64 AEABI build attributes (that I will refer as Object Attributes V2). Object Attributes V2 are metadata embedded in ELF object files, and binaries (executables, and shared linkable libraries) to provide ABI and compatibility information. These attributes help linkers to diagnose incompatibilities and enforce compatibility between the input object files at link time. Additionally, they can offer insights into the targeted processor, or architecture for an object file, or features used in it. More details can be found in [1] and Section 4 of [2].
This enhancement aligns with the ongoing efforts to improve compatibility and interoperability within the ELF ecosystem for AArch64.
## Diff against previous revisions
### Revision 11 -> 12:
Patch series v11: https://inbox.sourceware.org/binutils/20251230230530.1268690-1-matthieu.longo@arm.com/
Major changes since the last revision:
- added ATTRIBUTE_HIDDEN to the doubly linked list helpers.
- simplified the parsing to bail out at the first error.
- reworked error log messages.
- uniformally set the OA section alignment to 2.
- adapted readelf output expectations with regexp.
## Background and Motivation
The initial implementation of build attributes (that I will refer as Object Attributes V1) dates back to 2005 ([3]) and is specified in [4]. It stores attributes in a vendor-specific section ".ARM.attribute" using a complex format based on <tag, value> pairs and sub-subsections, where the key determines whether the attributes is mandatory or optional, and whether the type of the value is an integer encoded as ULEB128 (Unsigned Little Endian Base 128) or a string encoded as NTBS (Null-Terminated Byte String). While widely adopted since 2007 ([5]), Object Attributes V1's complexity makes parsing and skipping subsections or attributes challenging, especially for the main consumers, the linkers, which are responsible to merge them, and enforce compatibility.
To address these limitations, a new specification for AArch64 build attributes (Object Attributes V2) was proposed ([1], [2]). Key design goals include:
- Retaining successful aspects of Object Attributes V1.
- Defining the relationship between build attributes and the existing GNU program properties.
- Separating architectural requirements from software ABI requirements.
- Simplifying the format to allow consumers to skip a subsection or attribute that it does not understand without giving a warning message.
The specification is available in [2], and a pull request for discussion is open at [6].
Example of the new AArch64 assembly directives to declare subsections and attributes:
```
.aeabi_subsection aeabi_feature_and_bits, optional, uleb128
.aeabi_attribute Tag_Feature_BTI, 1
.aeabi_attribute Tag_Feature_GCS, 1
```
Output of readelf:
```
Displaying notes found in: .note.gnu.property
Owner Data size Description
GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0
Properties: AArch64 feature: BTI, GCS
Subsections:
- Name: aeabi_feature_and_bits
Scope: public
Length: 33
Optional: True
Encoding: ULEB128
Values:
Tag_Feature_BTI: 1 (0x1)
Tag_Feature_GCS: 1 (0x1)
```
## Disclaimer
Ideally, the architecture should look like a "sandwich" composed of:
- a deserialization layer toward a generic abstraction covering OAv1, OAv2(, and even GNU properties because it is basically the same thing).
- a generic middle end merging the attributes.
- a serialization layer toward the latest version of OA + GNU properties as we cannot really switch to all-OA because of performance concerns in the runtime linker.
This would require a middle-end abstraction agnostic of V1 or V2, a translation layer in the deserializer to convert the attributes to the internal data format, and one in the serializer to convert the internal data to the targeted format(s) (add an 's' if you include GNU properties in the picture). Unfortunately building this middle end is a lot of work, and I currently don't have the allocated time for it.
This current implementation should be able to handle a set of heterogeneous input objects (=an input object might contain OAv1, OAv2, or nothing). Since AArch64 does not have such a need for now, the current implementation does not implement any handler for the translation to the internal format. The OAv2 code is added to architecture-independent files, so this code will be unused for the vast majority of architectures. If others architectures want to adopt this model, it is very likely that they might need to support an heterogeneous set of object files with both OAv1 and OAv2 data, and so might need to add a backend-dependent translation layer right after the deserialization.
Please, if any of those points is a blocker, feel free to include any maintainers or developers that you think relevant to the discussion.
## Testing
Regression testing on AArch64, Arm, ARC, CSky, loongarch, m68k, MIPS, msp430, PowerPC, TI C6X, RISC-V, S390, SPARC showed no failure.
Regards,
Matthieu.
## References
[1]: [Design Rationale for Build Attributes for the Arm 64-bit Architecture (AARCH64)](https://github.com/ARM-software/abi-aa/blob/eec881270d5e3b23e58a6250640d06ff545ec1fc/design-documents/buildattr64-rationale.rst)
[2]: [Build Attributes for the Arm® 64-bit Architecture (AArch64)](https://github.com/smithp35/abi-aa/blob/build-attributes/buildattr64/buildattr64.rst)
[3]: [\[patch\] Arm EABI object attributes, by Paul Brook - September 2005](https://sourceware.org/pipermail/binutils/2005-September/044310.html)
[4]: [Addenda to, and Errata in, the ABI for the ARM Architecture (AArch32) - Chapter 3 - ADDENDUM: Build Attributes](https://github.com/ARM-software/abi-aa/blob/a82eef0433556b30539c0d4463768d9feb8cfd0b/addenda32/addenda32.rst#addendum-build-attributes)
[5]: [Object attribute tagging, by Joseph S. Myers - June 2007](https://gcc.gnu.org/legacy-ml/gcc/2007-06/msg00654.html)
[6]: [PR #230: AArch64 build attributes specification](https://github.com/ARM-software/abi-aa/pull/230)
Matthieu Longo (20):
bfd: move elf_new_obj_attr to the BFD public API
gas: use common code for object attribute v1 & v2 parsing
bfd: parse Object Attributes v2's section in input object files
bfd: add support for copying Object Attributes v2
objcopy tests for Object Attributes v2
OAv2 merge: plumbing of generic merge logic during linkage
OAv2 merge: find first input containing an object attributes section
OAv2 merge: create a section for object attributes
OAv2 merge: merge subsections and tags at file scope
OAv2 merge: mark unknown subsections
OAv2 merge: merging Object Attributes
OAv2 merge: prune unsupported or invalid subsections and attributes
OAv2 merge: translate GNU properties to Object Attributes v2 (and vice versa)
ld tests for generic merge coverage of Object Attributes v2
aarch64: merge of Object Attributes v2 during linkage
ld tests for AArch64-specific merge coverage for AEABI Build Attributes
gnu directives: add support for .gnu_attribute and .gnu_subsection in OAv2 context
gnu directives: gas/readelf tests for gnu attributes v2
gnu directives: bfd: generic tests for objcopy of gnu attributes v2
gnu directives: bfd: generic tests for merge of gnu attributes v2
Richard Ball (5):
Object Attributes v2: new abstractions for subsections and attributes
gas: implement parsing of object attributes v2
bfd: write Object Attributes v2
readelf: dump Object Attributes v2
Serialization and dumping tests of Object Attributes v2
bfd/Makefile.am | 2 +-
bfd/Makefile.in | 2 +-
bfd/elf-attrs.c | 2709 ++++++++++++++++-
bfd/elf-attrs.h | 225 ++
bfd/elf-bfd.h | 97 +-
bfd/elfnn-aarch64.c | 108 +-
bfd/elfxx-aarch64.c | 424 ++-
bfd/elfxx-aarch64.h | 40 +
bfd/elfxx-target.h | 44 +-
bfd/po/SRC-POTFILES.in | 1 +
binutils/readelf.c | 336 +-
.../binutils-all/aarch64/build-attributes.d | 52 +
.../binutils-all/aarch64/build-attributes.s | 31 +
binutils/testsuite/binutils-all/objcopy.exp | 1 +
.../testsuite/binutils-all/object-attr-v2.d | 52 +
.../testsuite/binutils-all/object-attr-v2.s | 31 +
binutils/testsuite/lib/binutils-common.exp | 33 +
gas/config/obj-elf-attr.c | 1188 +++++++-
gas/config/obj-elf-attr.h | 24 +-
gas/config/obj-elf.c | 14 +-
gas/config/tc-aarch64.c | 16 +
gas/config/tc-aarch64.h | 5 +
gas/config/tc-arc.c | 2 +-
gas/config/tc-arc.h | 4 +-
gas/config/tc-arm.c | 2 +-
gas/config/tc-arm.h | 6 +-
gas/config/tc-csky.h | 4 +-
gas/config/tc-loongarch.h | 4 +-
gas/config/tc-m68k.c | 2 +-
gas/config/tc-m68k.h | 4 +-
gas/config/tc-mips.h | 4 +-
gas/config/tc-msp430.h | 4 +-
gas/config/tc-ppc.c | 2 +-
gas/config/tc-ppc.h | 6 +-
gas/config/tc-riscv.c | 2 +-
gas/config/tc-riscv.h | 4 +-
gas/config/tc-s390.h | 4 +-
gas/config/tc-sparc.h | 4 +-
gas/config/tc-tic6x.c | 2 +-
gas/config/tc-tic6x.h | 4 +-
gas/configure | 4 +-
gas/configure.ac | 4 +-
gas/doc/as.texi | 105 +-
gas/doc/c-aarch64.texi | 33 +
.../aarch64-build-attributes.exp | 23 +
.../gas/aarch64/build-attributes/ba-1.d | 53 +
.../gas/aarch64/build-attributes/ba-1.s | 32 +
.../aarch64/build-attributes/ba-failures-1.d | 3 +
.../aarch64/build-attributes/ba-failures-1.l | 40 +
.../aarch64/build-attributes/ba-failures-1.s | 68 +
.../ba-interleaved-subsections.d | 35 +
.../ba-interleaved-subsections.s | 32 +
.../build-attributes/ba-subsection-parsing.d | 75 +
.../build-attributes/ba-subsection-parsing.s | 37 +
gas/testsuite/gas/arm/attr-syntax.d | 6 +-
.../gas/gnu-attributes/gnu-attributes.exp | 20 +
.../oa-no-gnu-attribute-directive.d | 4 +
.../oa-no-gnu-attribute-directive.s | 1 +
.../oa-no-gnu-subsection-directive.d | 4 +
.../oa-no-gnu-subsection-directive.s | 1 +
.../gas/gnu-attributes/oav2-failures-1.d | 3 +
.../gas/gnu-attributes/oav2-failures-1.l | 40 +
.../gas/gnu-attributes/oav2-failures-1.s | 70 +
.../oav2-interleaved-subsections.d | 34 +
.../oav2-interleaved-subsections.s | 32 +
.../gnu-attributes/oav2-subsection-parsing.d | 74 +
.../gnu-attributes/oav2-subsection-parsing.s | 37 +
.../gas/gnu-attributes/oav2-success-1.d | 52 +
.../gas/gnu-attributes/oav2-success-1.s | 32 +
include/elf/aarch64.h | 17 +
ld/ldelf.c | 1 +
.../aarch64-build-attributes.exp | 34 +
.../build-attributes/ba-1-all-optional-1.s | 15 +
.../build-attributes/ba-1-all-optional-2.s | 15 +
...ismatch-subsec-props-with-all-optional-1.d | 11 +
...ismatch-subsec-props-with-all-optional-1.s | 2 +
.../build-attributes/ba-1-one-file.d | 42 +
...-1-two-files-all-optional-1more-1missing.d | 52 +
...nknown-and-known-attr-known-subsection-1.s | 11 +
...nknown-and-known-attr-known-subsection-2.s | 11 +
...-unknown-and-known-attr-known-subsection.d | 25 +
...ba-2-mix-unknown-and-known-subsections-1.s | 19 +
...ba-2-mix-unknown-and-known-subsections-2.s | 19 +
.../ba-2-mix-unknown-and-known-subsections.d | 25 +
.../ba-2-required-subsec-A-1.s | 3 +
.../ba-2-required-subsec-A-2.s | 3 +
.../build-attributes/ba-2-required-subsec-B.s | 3 +
.../ba-2-required-subsec-nok.d | 8 +
.../ba-2-required-subsec-ok.d | 16 +
.../build-attributes/ba-aarch64-1-bti-1.s | 9 +
.../build-attributes/ba-aarch64-1-bti-2.s | 14 +
...a-aarch64-1-bti-explicit-ok-objdump-dump.d | 53 +
...a-aarch64-1-bti-explicit-ok-readelf-dump.d | 24 +
...t-only-one-input-without-ba-or-gnu-props.d | 19 +
...-gnu-props-only-implicit-ok-readelf-dump.d | 20 +
...-aarch64-1-bti-implicit-nok-objdump-dump.d | 45 +
...-aarch64-1-bti-implicit-nok-readelf-dump.d | 16 +
...a-aarch64-1-bti-implicit-ok-objdump-dump.d | 38 +
...a-aarch64-1-bti-implicit-ok-readelf-dump.d | 19 +
.../ba-aarch64-1-bti-via-gnu-props.s | 11 +
...u-props-and-bas-implicit-ok-readelf-dump.d | 22 +
.../build-attributes/ba-aarch64-1-gcs-1.s | 9 +
.../build-attributes/ba-aarch64-1-gcs-2.s | 14 +
...a-aarch64-1-gcs-explicit-ok-readelf-dump.d | 24 +
...-gnu-props-only-implicit-ok-readelf-dump.d | 20 +
...-aarch64-1-gcs-implicit-nok-readelf-dump.d | 16 +
...a-aarch64-1-gcs-implicit-ok-readelf-dump.d | 19 +
.../ba-aarch64-1-gcs-via-gnu-props.s | 11 +
.../build-attributes/ba-aarch64-1-no-bti.s | 2 +
.../build-attributes/ba-aarch64-1-no-gcs.s | 2 +
.../build-attributes/ba-aarch64-1-pac-1.s | 9 +
.../build-attributes/ba-aarch64-1-pac-2.s | 14 +
...rch64-1-pac-ba-with-pac-plt-objdump-dump.d | 44 +
...rch64-1-pac-ba-with-pac-plt-readelf-dump.d | 21 +
...64-1-pac-ba-without-pac-plt-objdump-dump.d | 38 +
...64-1-pac-ba-without-pac-plt-readelf-dump.d | 21 +
...h64-1-pac-plt-but-no-pac-ba-objdump-dump.d | 53 +
...h64-1-pac-plt-but-no-pac-ba-readelf-dump.d | 18 +
.../ba-aarch64-1-pac-via-gnu-props.s | 11 +
.../ba-aarch64-1-required-subsection-1.s | 7 +
.../ba-aarch64-1-required-subsection-2.s | 7 +
.../ba-aarch64-1-required-subsection-3.s | 7 +
.../ba-aarch64-1-required-subsection-4.s | 7 +
...aarch64-1-required-subsection-mismatch-1.s | 7 +
...aarch64-1-required-subsection-mismatch-2.s | 7 +
.../ba-aarch64-1-required-subsection-nok-1.d | 10 +
.../ba-aarch64-1-required-subsection-nok-2.d | 9 +
.../ba-aarch64-1-required-subsection-ok-1.d | 25 +
.../ba-aarch64-1-required-subsection-ok-2.d | 25 +
.../ba-aarch64-1-unknown-tag.d | 20 +
.../ba-aarch64-1-unknown-tag.s | 3 +
.../build-attributes/ba-aarch64-1-void.s | 5 +
.../ld-aarch64/build-attributes/bti-plt.ld | 27 +
.../gnu-note-properties-maskable-merged.inc | 32 +
.../gnu-note-properties-maskable-split.inc | 72 +
.../gnu-note-properties-selectable-merged.inc | 32 +
.../gnu-note-properties-selectable-split.inc | 72 +
.../ld-aarch64/lib/aarch64-elf-lib.exp | 2 +-
ld/testsuite/ld-attributes/ld-attributes.exp | 31 +
.../ld-attributes/oav2-1-all-optional-1.s | 15 +
.../ld-attributes/oav2-1-all-optional-2.s | 15 +
...ismatch-subsec-props-with-all-optional-1.d | 11 +
...ismatch-subsec-props-with-all-optional-1.s | 2 +
ld/testsuite/ld-attributes/oav2-1-one-file.d | 42 +
...-1-two-files-all-optional-1more-1missing.d | 53 +
...nknown-and-known-attr-known-subsection-1.s | 11 +
...nknown-and-known-attr-known-subsection-2.s | 11 +
...-unknown-and-known-attr-known-subsection.d | 25 +
...v2-2-mix-unknown-and-known-subsections-1.s | 19 +
...v2-2-mix-unknown-and-known-subsections-2.s | 19 +
...oav2-2-mix-unknown-and-known-subsections.d | 26 +
.../oav2-2-required-subsec-A-1.s | 3 +
.../oav2-2-required-subsec-A-2.s | 3 +
.../ld-attributes/oav2-2-required-subsec-B.s | 3 +
.../oav2-2-required-subsec-nok.d | 8 +
.../ld-attributes/oav2-2-required-subsec-ok.d | 16 +
156 files changed, 7859 insertions(+), 251 deletions(-)
create mode 100644 bfd/elf-attrs.h
create mode 100644 binutils/testsuite/binutils-all/aarch64/build-attributes.d
create mode 100644 binutils/testsuite/binutils-all/aarch64/build-attributes.s
create mode 100644 binutils/testsuite/binutils-all/object-attr-v2.d
create mode 100644 binutils/testsuite/binutils-all/object-attr-v2.s
create mode 100644 gas/testsuite/gas/aarch64/build-attributes/aarch64-build-attributes.exp
create mode 100644 gas/testsuite/gas/aarch64/build-attributes/ba-1.d
create mode 100644 gas/testsuite/gas/aarch64/build-attributes/ba-1.s
create mode 100644 gas/testsuite/gas/aarch64/build-attributes/ba-failures-1.d
create mode 100644 gas/testsuite/gas/aarch64/build-attributes/ba-failures-1.l
create mode 100644 gas/testsuite/gas/aarch64/build-attributes/ba-failures-1.s
create mode 100644 gas/testsuite/gas/aarch64/build-attributes/ba-interleaved-subsections.d
create mode 100644 gas/testsuite/gas/aarch64/build-attributes/ba-interleaved-subsections.s
create mode 100644 gas/testsuite/gas/aarch64/build-attributes/ba-subsection-parsing.d
create mode 100644 gas/testsuite/gas/aarch64/build-attributes/ba-subsection-parsing.s
create mode 100644 gas/testsuite/gas/gnu-attributes/gnu-attributes.exp
create mode 100644 gas/testsuite/gas/gnu-attributes/oa-no-gnu-attribute-directive.d
create mode 100644 gas/testsuite/gas/gnu-attributes/oa-no-gnu-attribute-directive.s
create mode 100644 gas/testsuite/gas/gnu-attributes/oa-no-gnu-subsection-directive.d
create mode 100644 gas/testsuite/gas/gnu-attributes/oa-no-gnu-subsection-directive.s
create mode 100644 gas/testsuite/gas/gnu-attributes/oav2-failures-1.d
create mode 100644 gas/testsuite/gas/gnu-attributes/oav2-failures-1.l
create mode 100644 gas/testsuite/gas/gnu-attributes/oav2-failures-1.s
create mode 100644 gas/testsuite/gas/gnu-attributes/oav2-interleaved-subsections.d
create mode 100644 gas/testsuite/gas/gnu-attributes/oav2-interleaved-subsections.s
create mode 100644 gas/testsuite/gas/gnu-attributes/oav2-subsection-parsing.d
create mode 100644 gas/testsuite/gas/gnu-attributes/oav2-subsection-parsing.s
create mode 100644 gas/testsuite/gas/gnu-attributes/oav2-success-1.d
create mode 100644 gas/testsuite/gas/gnu-attributes/oav2-success-1.s
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/aarch64-build-attributes.exp
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-1-all-optional-1.s
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-1-all-optional-2.s
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-1-mismatch-subsec-props-with-all-optional-1.d
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-1-mismatch-subsec-props-with-all-optional-1.s
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-1-one-file.d
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-1-two-files-all-optional-1more-1missing.d
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-2-mix-unknown-and-known-attr-known-subsection-1.s
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-2-mix-unknown-and-known-attr-known-subsection-2.s
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-2-mix-unknown-and-known-attr-known-subsection.d
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-2-mix-unknown-and-known-subsections-1.s
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-2-mix-unknown-and-known-subsections-2.s
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-2-mix-unknown-and-known-subsections.d
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-2-required-subsec-A-1.s
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-2-required-subsec-A-2.s
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-2-required-subsec-B.s
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-2-required-subsec-nok.d
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-2-required-subsec-ok.d
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-aarch64-1-bti-1.s
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-aarch64-1-bti-2.s
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-aarch64-1-bti-explicit-ok-objdump-dump.d
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-aarch64-1-bti-explicit-ok-readelf-dump.d
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-aarch64-1-bti-explicit-only-one-input-without-ba-or-gnu-props.d
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-aarch64-1-bti-gnu-props-only-implicit-ok-readelf-dump.d
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-aarch64-1-bti-implicit-nok-objdump-dump.d
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-aarch64-1-bti-implicit-nok-readelf-dump.d
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-aarch64-1-bti-implicit-ok-objdump-dump.d
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-aarch64-1-bti-implicit-ok-readelf-dump.d
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-aarch64-1-bti-via-gnu-props.s
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-aarch64-1-bti-with-mix-gnu-props-and-bas-implicit-ok-readelf-dump.d
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-aarch64-1-gcs-1.s
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-aarch64-1-gcs-2.s
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-aarch64-1-gcs-explicit-ok-readelf-dump.d
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-aarch64-1-gcs-gnu-props-only-implicit-ok-readelf-dump.d
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-aarch64-1-gcs-implicit-nok-readelf-dump.d
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-aarch64-1-gcs-implicit-ok-readelf-dump.d
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-aarch64-1-gcs-via-gnu-props.s
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-aarch64-1-no-bti.s
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-aarch64-1-no-gcs.s
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-aarch64-1-pac-1.s
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-aarch64-1-pac-2.s
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-aarch64-1-pac-ba-with-pac-plt-objdump-dump.d
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-aarch64-1-pac-ba-with-pac-plt-readelf-dump.d
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-aarch64-1-pac-ba-without-pac-plt-objdump-dump.d
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-aarch64-1-pac-ba-without-pac-plt-readelf-dump.d
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-aarch64-1-pac-plt-but-no-pac-ba-objdump-dump.d
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-aarch64-1-pac-plt-but-no-pac-ba-readelf-dump.d
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-aarch64-1-pac-via-gnu-props.s
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-aarch64-1-required-subsection-1.s
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-aarch64-1-required-subsection-2.s
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-aarch64-1-required-subsection-3.s
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-aarch64-1-required-subsection-4.s
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-aarch64-1-required-subsection-mismatch-1.s
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-aarch64-1-required-subsection-mismatch-2.s
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-aarch64-1-required-subsection-nok-1.d
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-aarch64-1-required-subsection-nok-2.d
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-aarch64-1-required-subsection-ok-1.d
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-aarch64-1-required-subsection-ok-2.d
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-aarch64-1-unknown-tag.d
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-aarch64-1-unknown-tag.s
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/ba-aarch64-1-void.s
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/bti-plt.ld
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/gnu-note-properties-maskable-merged.inc
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/gnu-note-properties-maskable-split.inc
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/gnu-note-properties-selectable-merged.inc
create mode 100644 ld/testsuite/ld-aarch64/build-attributes/gnu-note-properties-selectable-split.inc
create mode 100644 ld/testsuite/ld-attributes/ld-attributes.exp
create mode 100644 ld/testsuite/ld-attributes/oav2-1-all-optional-1.s
create mode 100644 ld/testsuite/ld-attributes/oav2-1-all-optional-2.s
create mode 100644 ld/testsuite/ld-attributes/oav2-1-mismatch-subsec-props-with-all-optional-1.d
create mode 100644 ld/testsuite/ld-attributes/oav2-1-mismatch-subsec-props-with-all-optional-1.s
create mode 100644 ld/testsuite/ld-attributes/oav2-1-one-file.d
create mode 100644 ld/testsuite/ld-attributes/oav2-1-two-files-all-optional-1more-1missing.d
create mode 100644 ld/testsuite/ld-attributes/oav2-2-mix-unknown-and-known-attr-known-subsection-1.s
create mode 100644 ld/testsuite/ld-attributes/oav2-2-mix-unknown-and-known-attr-known-subsection-2.s
create mode 100644 ld/testsuite/ld-attributes/oav2-2-mix-unknown-and-known-attr-known-subsection.d
create mode 100644 ld/testsuite/ld-attributes/oav2-2-mix-unknown-and-known-subsections-1.s
create mode 100644 ld/testsuite/ld-attributes/oav2-2-mix-unknown-and-known-subsections-2.s
create mode 100644 ld/testsuite/ld-attributes/oav2-2-mix-unknown-and-known-subsections.d
create mode 100644 ld/testsuite/ld-attributes/oav2-2-required-subsec-A-1.s
create mode 100644 ld/testsuite/ld-attributes/oav2-2-required-subsec-A-2.s
create mode 100644 ld/testsuite/ld-attributes/oav2-2-required-subsec-B.s
create mode 100644 ld/testsuite/ld-attributes/oav2-2-required-subsec-nok.d
create mode 100644 ld/testsuite/ld-attributes/oav2-2-required-subsec-ok.d
--
2.52.0
More information about the Binutils
mailing list