Skip to content

Commit bc1d419

Browse files
committed
[buildattr64] Change aeabi section prefix to aeabi_
This is consistent with the existing section names. It means that all future Arm subsections names will be of the same form of aeabi_. Also remove any lingering references to aeabi- prefixed names. Which is what we started with, but needed to change due to assembler limitations.
1 parent 3b58247 commit bc1d419

File tree

2 files changed

+14
-11
lines changed

2 files changed

+14
-11
lines changed

buildattr64/buildattr64.rst

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -217,8 +217,8 @@ changes to the content of the document for that release.
217217
| | | Tool Interface for aeabi subsections taken from rationale document. |
218218
| | | Changed assembler syntax to make parameters mandatory and to define |
219219
| | | human readable names. |
220-
| | | Generalise mapping of aeabi-feature-and-bits to .note.gnu.property |
221-
| | | Renumber aeabi-feature-and-bits tags to start from 0. |
220+
| | | Generalise mapping of aeabi_feature_and_bits to .note.gnu.property |
221+
| | | Renumber aeabi_feature_and_bits tags to start from 0. |
222222
| | | Clarify that the same attribute with different values is an error. |
223223
| | | Rename subsection names to avoid - character which can be difficult |
224224
| | | for assemblers to parse as a single token. |
@@ -238,6 +238,9 @@ changes to the content of the document for that release.
238238
| 0.5 | 4th July 2025 | Changed optional field to comprehension to clarify its intent. No |
239239
| | | change to encoding or assembly directives. |
240240
+------------+---------------------+---------------------------------------------------------------------+
241+
| 0.6 | 7th November 2025 | Changed aeabi subsection prefix to aeabi\_ from aeabi. All existing |
242+
| | | names are compliant with this pattern. |
243+
+------------+---------------------+---------------------------------------------------------------------+
241244

242245
References
243246
----------
@@ -705,7 +708,7 @@ prefix to the names of private helper functions (for details see
705708
(AAELF64_)). The same vendor name must be used as a prefix for a
706709
vendors private subsection.
707710

708-
A public attributes subsection has a prefix of *aeabi*. Names
711+
A public attributes subsection has a prefix of *aeabi\_*. Names
709712
beginning *Anon* and *anon* are reserved for unregistered private use.
710713

711714
The syntactic structure of an attributes section is::
@@ -741,13 +744,13 @@ in the private subsection.
741744

742745
Attributes that record data about the compatibility of this
743746
relocatable object file with other relocatable object files must be
744-
recorded in a public "aeabi" prefixed subsection.
747+
recorded in a public "aeabi\_" prefixed subsection.
745748

746749
Attributes meaningful only to the producer must be recorded in a
747750
private vendor subsection.
748751

749752
Formally, there are no constraints on the order or number of vendor
750-
subsections. A consumer can collect the public ("aeabi" prefixed)
753+
subsections. A consumer can collect the public ("aeabi\_" prefixed)
751754
attributes in a single pass over the section, then all of its private
752755
data in a second pass.
753756

@@ -791,7 +794,7 @@ by *parameter type*.
791794
Public subsections
792795
------------------
793796

794-
Subsections with a vendor name prefix of "aeabi" are public
797+
Subsections with a vendor name prefix of "aeabi\_" are public
795798
subsections. They contain attributes defined by this specification.
796799

797800
Each public subsection defines its own attribute tags.
@@ -804,11 +807,11 @@ Public tags are omitted by one of the following methods::
804807
The ELF file does not have a ``.ARM.attributes`` section. All public
805808
tags defined in this specification are omitted.
806809

807-
The ``.ARM.attributes`` does not contain an "aeabi" prefixed
810+
The ``.ARM.attributes`` does not contain an "aeabi\_" prefixed
808811
subsection defined by this specification. All public tags that can
809812
be defined by the subsection are omitted.
810813

811-
An "aeabi" prefixed subsection omits one or more public tags that
814+
An "aeabi\_" prefixed subsection omits one or more public tags that
812815
can be defined by the subection.
813816

814817
The effect of omitting a public tag is identical to including it with
@@ -1139,7 +1142,7 @@ Assembler
11391142
Where possible the assembler can derive build attributes from the
11401143
assembler's command line options in the same way as the compiler. For
11411144
options that cannot be derived, assembler directives can be used to
1142-
construct "aeabi" prefixed subsections. The assembler directives take
1145+
construct "aeabi\_" prefixed subsections. The assembler directives take
11431146
precedence over any derived attributes.
11441147

11451148
Directives
@@ -1239,4 +1242,4 @@ name.
12391242
This translates to the following .ARM.attributes section contents for
12401243
a little-endian relocatable object:
12411244

1242-
`A`, <length 0x1e,0x0,0x0,0x0>, "aeabi_feature_and_bits", 1, 0, 2, 1, <length 0x21, 0x0, 0x0, 0x0>, "aeabi-feature-pauthabi", 0, 0, 0, 1, 1, 1
1245+
`A`, <length 0x1e,0x0,0x0,0x0>, "aeabi_feature_and_bits", 1, 0, 2, 1, <length 0x21, 0x0, 0x0, 0x0>, "aeabi_feature-pauthabi", 0, 0, 0, 1, 1, 1

design-documents/buildattr64-rationale.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -327,7 +327,7 @@ Differences from the 32-bit ABI Build Attributes
327327

328328
- Related attributes with similar properties and compatibility model
329329
are grouped into subsections. In (ADDENDA32_) all public attributes
330-
are present in a single ``"aeabi"`` subsection.
330+
are present in a single ``"aeabi\_"`` subsection.
331331

332332
- Every subsection has all of its tags encoded as ULEB128 or all of
333333
its tags as encoded as NTBS. In (ADDENDA32_) this is determined by

0 commit comments

Comments
 (0)