[PATCH v11 00/25] AArch64 AEABI build attributes (a.k.a. object attributes v2)
Matthieu Longo
matthieu.longo@arm.com
Tue Dec 30 23:05:01 GMT 2025
More information about the Binutils mailing list
Tue Dec 30 23:05:01 GMT 2025
- Previous message (by thread): [committed 4/4] aarch64: Remove sme2_movaz instruction class
- Next message (by thread): [PATCH v11 01/25] bfd: move elf_new_obj_attr to the BFD public API
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
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 10 -> 11: Patch series v10: https://inbox.sourceware.org/binutils/20251120175925.2022630-1-matthieu.longo@arm.com/ Major changes since the last revision: - prefixed several public functions in bfd with the "bfd_" prefix. - added ATTRIBUTE_HIDDEN where missing. - used format %#x in _bfd_error_handler where relevant instead of 0x%x. - inlined content of oav2_info_attr_delete() and oav2_info_subsec_delete(). - dropped elf_may_contain_obj_attrs (), and kept oav2_relevant_elf_object(). ## 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 | 2708 ++++++++++++++++- bfd/elf-attrs.h | 223 ++ bfd/elf-bfd.h | 96 +- bfd/elfnn-aarch64.c | 108 +- bfd/elfxx-aarch64.c | 439 ++- 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 | 30 + gas/config/obj-elf-attr.c | 1213 +++++++- 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 | 44 + .../aarch64/build-attributes/ba-failures-1.s | 70 + .../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-gnu-attribute-directive.d | 4 + .../oa-gnu-attribute-directive.s | 1 + .../oa-gnu-subsection-directive.d | 4 + .../oa-gnu-subsection-directive.s | 1 + .../gas/gnu-attributes/oav2-failures-1.d | 3 + .../gas/gnu-attributes/oav2-failures-1.l | 44 + .../gas/gnu-attributes/oav2-failures-1.s | 72 + .../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 | 7 + ...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 | 7 + .../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 | 8 + .../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 | 7 + ...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 | 7 + .../ld-attributes/oav2-2-required-subsec-ok.d | 16 + 156 files changed, 7889 insertions(+), 254 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-gnu-attribute-directive.d create mode 100644 gas/testsuite/gas/gnu-attributes/oa-gnu-attribute-directive.s create mode 100644 gas/testsuite/gas/gnu-attributes/oa-gnu-subsection-directive.d create mode 100644 gas/testsuite/gas/gnu-attributes/oa-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
- Previous message (by thread): [committed 4/4] aarch64: Remove sme2_movaz instruction class
- Next message (by thread): [PATCH v11 01/25] bfd: move elf_new_obj_attr to the BFD public API
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Binutils mailing list