Commit 5e6ee79
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
File tree
10 files changed
+1992
-2
lines changed- buildattr64
- design-documents
- tools
- common
- rst2pdf
10 files changed
+1992
-2
lines changedLoading
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
Loading
0 commit comments