Skip to content
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

Open
wants to merge 4 commits into
base: main
Choose a base branch
from

Commits on Nov 28, 2023

  1. 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.
    smithp35 committed Nov 28, 2023
    Configuration menu
    Copy the full SHA
    4034345 View commit details
    Browse the repository at this point in the history
  2. [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.
    smithp35 committed Nov 28, 2023
    Configuration menu
    Copy the full SHA
    7c35e21 View commit details
    Browse the repository at this point in the history

Commits on Nov 29, 2023

  1. [BuildAttributes] Add subsection vendor name for pauthabi

    This was unfortunately missed out in the initial commit.
    smithp35 committed Nov 29, 2023
    Configuration menu
    Copy the full SHA
    2e33926 View commit details
    Browse the repository at this point in the history

Commits on Dec 11, 2023

  1. [buildattr64] More review comments from MaskRay

    Make further corrections, these were all non-functional in nature.
    This commit will be squashed prior to merging.
    smithp35 committed Dec 11, 2023
    Configuration menu
    Copy the full SHA
    2e82708 View commit details
    Browse the repository at this point in the history