-
Notifications
You must be signed in to change notification settings - Fork 193
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
AArch64 build attributes specification #230
base: main
Are you sure you want to change the base?
Commits on Nov 14, 2024
-
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.
Configuration menu - View commit details
-
Copy full SHA for 7fadae6 - Browse repository at this point
Copy the full SHA 7fadae6View commit details -
[BuildAttributes] Address review comments from MaskRay
Commmit will be squashed prior to commit. - Fixed references to GNU properties which have moved to sysvabi64.rst - Mention in buildattr64.rst that SysVr4 platforms are recommended to use GNU properties in loadable units. - Change lattice to partial order. - Be more consistent with relocatable object file, rather than relocatable file, relocatable object or relocatable object file. - Rewrite example of library selection to be clearer.
Configuration menu - View commit details
-
Copy full SHA for f806ccf - Browse repository at this point
Copy the full SHA f806ccfView commit details -
[BuildAttributes] Add subsection vendor name for pauthabi
This was unfortunately missed out in the initial commit.
Configuration menu - View commit details
-
Copy full SHA for ea25344 - Browse repository at this point
Copy the full SHA ea25344View commit details -
[buildattr64] More review comments from MaskRay
Make further corrections, these were all non-functional in nature. This commit will be squashed prior to merging.
Configuration menu - View commit details
-
Copy full SHA for ede7d6d - Browse repository at this point
Copy the full SHA ede7d6dView commit details -
[buildattr64] Review comments from initial implementations
* In assembly syntax use a comma in [,optional]. * Change document status to Beta quality. * Remove superfluous Encoding from start of sentence. * Clarification of "optional" in public subsection header. * Clarification that public subsections define their own attributes. * Clarify static linker responsibilities with mixed build attributes. and .note.gnu.property sections. * Reformat the aeabi-pauthabi section to match aeabi-feature-and-bits. * Move and expand the tool interface section from the rationale to the specification.
Configuration menu - View commit details
-
Copy full SHA for 205b12b - Browse repository at this point
Copy the full SHA 205b12bView commit details
Commits on Nov 26, 2024
-
[buildattr64] Update after discussion with assembler implementers.
* Changed assembler syntax to make parameters mandatory and to define human readable names. * Generalise mapping of aeabi-feature-and-bits to .note.gnu.property * Renumber aeabi-feature-and-bits tags to start from 0.
Configuration menu - View commit details
-
Copy full SHA for 654a64c - Browse repository at this point
Copy the full SHA 654a64cView commit details