Skip to content

Expose target_abi = "pauthtest" #1033

Description

@jchlanda

Proposal

I propose adding Pauthtest = "pauthtest" as a possible value of CfgAbi, exposing cfg(target_abi = "pauthtest") for the AArch64 Linux pauthtest target. This makes pauthtest a distinct ABI configuration within rustc rather than merely another name for the default AArch64 ABI.

This MCP is being filed retroactively (apologies), following review feedback on the PR that introduced the target. The PR also added the corresponding LlvmAbi::Pauthtest value.

The target adds support for pointer authentication on AArch64 Linux ELF systems using a musl-based C standard library, using LLVM's aarch64-unknown-linux-pauthtest target triple.

The proposed pauthtest value is useful for gating target-specific pointer-authentication behavior based on the ABI. For example, the pointer authentication implementation uses the ABI to gate code responsible for creating signing schemas. The new ABI value also couples the Rust-visible ABI with the corresponding LLVM ABI, as enforced by the consistency checks.

The name pauthtest is consistent with LLVM's existing terminology.

Mentors or Reviewers

If you have a reviewer or mentor in mind for this work, mention them here. You can put your own name here if you are planning to mentor the work.

Process

The main points of the Major Change Process are as follows:

  • File an issue describing the proposal.
  • A compiler team member who is knowledgeable in the area can second by writing @rustbot second or kickoff a team FCP with @rfcbot fcp $RESOLUTION.
  • Once an MCP is seconded, the Final Comment Period begins.
    • Final Comment Period lasts for 10 days after all outstanding concerns are solved.
    • Outstanding concerns will block the Final Comment Period from finishing. Once all concerns are resolved, the 10 day countdown is restarted.
    • If no concerns are raised after 10 days since the resolution of the last outstanding concern, the MCP is considered approved.

You can read more about Major Change Proposals on forge.

Activity

  1. added
    T-compilerAdd this label so rfcbot knows to poll the compiler team
    major-changeA proposal to make a major change to rustc
    on Aug 18, 2026
  2. rustbot commented on Aug 18, 2026

    @rustbot
    Collaborator

    Important

    This issue is not meant to be used for technical discussion. There is a Zulip stream for that.
    Use this issue to leave procedural comments, such as volunteering to review, indicating that you second the proposal (or third, etc), or raising a concern that you would like to be addressed.

    Concerns or objections can formally be registered here by adding a comment.

    @rustbot concern reason-for-concern
    <description of the concern>
    

    Concerns can be lifted with:

    @rustbot resolve reason-for-concern
    

    See documentation at https://forge.rust-lang.org

    cc @rust-lang/compiler
  3. jchlanda commented on Aug 18, 2026

    @jchlanda
    Author
  4. RalfJung commented on Aug 18, 2026

    @RalfJung
    Member

    Sorry, there was some confusion here. LlvmAbi is an internal value in rustc, doesn't need an MCP.
    But that PR also added a new value for target_abi / target_env, right? That is user-visible and is something we've usually done MCPs for.

    EDIT: Yeah, it's the cfg_abi: CfgAbi::Pauthtest I was talking about re: MCP. Not the llvm_abiname: LlvmAbi::Pauthtest. Please update the MCP above.

  5. changed the title [-]Retroactive MCP for the addition of `LlvmAbi::Pauthtest`[/-] [+]Expose `target_abi = "pauthtest"`[/+] on Aug 18, 2026
  6. jchlanda commented on Aug 18, 2026

    @jchlanda
    Author

    Sorry, there was some confusion here. LlvmAbi is an internal value in rustc, doesn't need an MCP. But that PR also added a new value for target_abi / target_env, right? That is user-visible and is something we've usually done MCPs for.

    EDIT: Yeah, it's the cfg_abi: CfgAbi::Pauthtest I was talking about re: MCP. Not the llvm_abiname: LlvmAbi::Pauthtest. Please update the MCP above.

    Done, apologies for the confusion.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    T-compilerAdd this label so rfcbot knows to poll the compiler teammajor-changeA proposal to make a major change to rustc

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions