Skip to content

Commit 5e6ee79

Browse files
committed
AArch64 build attributes specification
Introduce a new specification document for AArch64 build attributes. The 32-bit ABI makes extensive use of the build attributes defined in addenda32. These attributes defined for relocatable objects are used for a number of purposes including: * Checking ABI compatibility. * Checking required processor feature compatibility. * Automatic static library selection. With AArch64's focus on software platforms, there has not been a strong requirement to introduce extra metadata to denote the requirements and optional processor features used by a relocatable object. Programs are expected to do runtime testing to check if processor features are available. With the advent of security features like PAuthABI, BTI and GCS we need a way to record additional metadata that a static linker can use to set metadata like GNU properties in a loadable-unit (executable or shared-library). A brief summary: * Made a generic "aeabi" prefix for Arm subsections. Including a header that states optionality and encoding. All ULEB or all NTBS. * Describes a single subsection that maps directly to the existing .note.gnu.properties and uses language similar to AAELF64. This includes the existing BTI and PAC properties. * Is accompanied by a design rationale with a suggestion for tool syntax.
1 parent be753b5 commit 5e6ee79

10 files changed

+1992
-2
lines changed

buildattr64/Arm_logo_blue_RGB.svg

+15
Loading

buildattr64/CONTRIBUTIONS

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
Contributions to this project are licensed under an inbound=outbound
2+
model such that any such contributions are licensed by the contributor
3+
under the same terms as those in the LICENSE file.

buildattr64/LICENSE

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
This work is licensed under the Creative Commons
2+
Attribution-ShareAlike 4.0 International License. To view a copy of
3+
this license, visit http://creativecommons.org/licenses/by-sa/4.0/ or
4+
send a letter to Creative Commons, PO Box 1866, Mountain View, CA
5+
94042, USA.
6+
7+
Grant of Patent License. Subject to the terms and conditions of this
8+
license (both the Public License and this Patent License), each
9+
Licensor hereby grants to You a perpetual, worldwide, non-exclusive,
10+
no-charge, royalty-free, irrevocable (except as stated in this
11+
section) patent license to make, have made, use, offer to sell, sell,
12+
import, and otherwise transfer the Licensed Material, where such
13+
license applies only to those patent claims licensable by such
14+
Licensor that are necessarily infringed by their contribution(s) alone
15+
or by combination of their contribution(s) with the Licensed Material
16+
to which such contribution(s) was submitted. If You institute patent
17+
litigation against any entity (including a cross-claim or counterclaim
18+
in a lawsuit) alleging that the Licensed Material or a contribution
19+
incorporated within the Licensed Material constitutes direct or
20+
contributory patent infringement, then any licenses granted to You
21+
under this license for that Licensed Material shall terminate as of
22+
the date such litigation is filed.

buildattr64/README.md

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
<div align="center">
2+
<img src="Arm_logo_blue_RGB.svg" />
3+
</div>
4+
5+
# Build Attributes for the Arm® 64-bit Architecture (AArch64)
6+
7+
## About this document
8+
9+
The [Build Attributes for the Arm 64-bit Architecture](buildattr64.rst) describes the
10+
11+
## About the license
12+
13+
As identified more fully in the [LICENSE](LICENSE) file, this project
14+
is licensed under CC-BY-SA-4.0 along with an additional patent
15+
license. The language in the additional patent license is largely
16+
identical to that in Apache-2.0 (specifically, Section 3 of Apache-2.0
17+
as reflected at https://www.apache.org/licenses/LICENSE-2.0) with two
18+
exceptions.
19+
20+
First, several changes were made related to the defined terms so as to
21+
reflect the fact that such defined terms need to align with the
22+
terminology in CC-BY-SA-4.0 rather than Apache-2.0 (e.g., changing
23+
“Work” to “Licensed Material”).
24+
25+
Second, the defensive termination clause was changed such that the
26+
scope of defensive termination applies to “any licenses granted to
27+
You” (rather than “any patent licenses granted to You”). This change
28+
is intended to help maintain a healthy ecosystem by providing
29+
additional protection to the community against patent litigation
30+
claims.
31+
32+
## Defects report
33+
34+
Please report defects in the [Build Attributes for the Arm 64-bit Architecture](buildattr64.rst) to the [issue
35+
tracker page on
36+
GitHub](https://github.com/ARM-software/abi-aa/issues).

buildattr64/TRADEMARK_NOTICE

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
The text of and illustrations in this document are licensed by Arm
2+
under a Creative Commons Attribution–Share Alike 4.0 International
3+
license ("CC-BY-SA-4.0”), with an additional clause on patents.
4+
The Arm trademarks featured here are registered trademarks or
5+
trademarks of Arm Limited (or its subsidiaries) in the US and/or
6+
elsewhere. All rights reserved. Please visit
7+
https://www.arm.com/company/policies/trademarks for more information
8+
about Arm’s trademarks.

buildattr64/buildattr64-toolflow.svg

+465
Loading

0 commit comments

Comments
 (0)