Skip to content

Pointer authentication config and user facing options#156712

Open
jchlanda wants to merge 22 commits into
rust-lang:mainfrom
jchlanda:jakub/pac_config
Open

Pointer authentication config and user facing options#156712
jchlanda wants to merge 22 commits into
rust-lang:mainfrom
jchlanda:jakub/pac_config

Conversation

@jchlanda

@jchlanda jchlanda commented May 18, 2026

Copy link
Copy Markdown

View all comments

This patch brings:

  • unified handling of pointer authentication options through:
    -Zpointer-authentication, with possible values:
    aarch64-jump-table-hardening, auth-traps, calls, elf-got,
    function-pointer-type-discrimination, indirect-gotos, init-fini,
    init-fini-address-discrimination, return-addresses. Toggled with
    +/-.
  • centralized handling of pointer authentication features. Session holds
    pointer_auth_config: Option<PointerAuthConfig>
  • encapsulation of schema for function pointers and init/fini through
    PointerAuthSchema. This allowed for retiring of PacMetadata.
  • refactor enabling of pointer authentication in code, instead of
    relying on the target (pauthtest) use the session

@rustbot rustbot added A-compiletest Area: The compiletest test runner A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-run-make Area: port run-make Makefiles to rmake.rs A-test-infra-minicore Area: `minicore` test auxiliary and `//@ add-core-stubs` A-testsuite Area: The testsuite used to check the correctness of rustc S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. labels May 18, 2026
@rust-log-analyzer

This comment has been minimized.

@jchlanda jchlanda force-pushed the jakub/pac_config branch from 77fe412 to b0a7e47 Compare May 18, 2026 13:15
@rust-log-analyzer

This comment has been minimized.

@jchlanda jchlanda force-pushed the jakub/pac_config branch from b0a7e47 to 4e8d9e3 Compare May 18, 2026 13:23
@rust-log-analyzer

This comment has been minimized.

@jchlanda jchlanda force-pushed the jakub/pac_config branch from 4e8d9e3 to 418f447 Compare May 18, 2026 13:39
@rust-log-analyzer

This comment has been minimized.

@jchlanda jchlanda force-pushed the jakub/pac_config branch from 418f447 to 6af45da Compare May 18, 2026 14:26
@jchlanda

Copy link
Copy Markdown
Author

@davidtwco, @folkertdev, @tgross35, @madsmtm FWI this is a follow up to #155722 and #156548
This will have to be rebased once the above are merged.

@jchlanda jchlanda marked this pull request as ready for review May 19, 2026 12:17
@rustbot

rustbot commented May 19, 2026

Copy link
Copy Markdown
Collaborator

This PR modifies src/bootstrap/src/core/config.

If appropriate, please update CONFIG_CHANGE_HISTORY in src/bootstrap/src/utils/change_tracker.rs.

Some changes occurred in src/tools/compiletest

cc @jieyouxu

The GCC codegen subtree was changed

cc @antoyo, @GuillaumeGomez

compiletest directives have been modified. Please add or update docs for the
new or modified directive in src/doc/rustc-dev-guide/.

Some changes occurred in src/doc/rustc/src/platform-support

cc @Noratrieb

This PR modifies tests/auxiliary/minicore.rs.

cc @jieyouxu

These commits modify compiler targets.
(See the Target Tier Policy.)

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels May 19, 2026
@rustbot

rustbot commented May 19, 2026

Copy link
Copy Markdown
Collaborator

r? @mejrs

rustbot has assigned @mejrs.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

Why was this reviewer chosen?

The reviewer was selected based on:

  • Owners of files modified in this PR: compiler
  • compiler expanded to 73 candidates
  • Random selection from 20 candidates

@rust-log-analyzer

This comment has been minimized.

@rust-bors

This comment has been minimized.

@mejrs

mejrs commented May 24, 2026

Copy link
Copy Markdown
Contributor

Hi, I am not qualified to review this.

r? madsmtm or reroll maybe

@madsmtm madsmtm linked an issue Jun 2, 2026 that may be closed by this pull request
@rust-bors

This comment has been minimized.

@jchlanda jchlanda force-pushed the jakub/pac_config branch from d601217 to d4eca6e Compare June 3, 2026 13:55
@rustbot

This comment has been minimized.

@jchlanda jchlanda force-pushed the jakub/pac_config branch from d4eca6e to d59f1be Compare June 3, 2026 15:41
@rust-bors

This comment has been minimized.

jchlanda and others added 22 commits June 8, 2026 05:39
Co-authored-by: Daniil Kovalev <dkovalev@accesssoftek.com>
Allow PAC metadata to be passed to `get_fn_addr` and related API
changes.
The set of supported attributes is:
function
* "aarch64-jump-table-hardening"
* "ptrauth-auth-traps"
* "ptrauth-calls"
* "ptrauth-indirect-gotos"
* "ptrauth-returns"
module
* "ptrauth-elf-got"
* "ptrauth-sign-personality"
Also:
* update tests to force dynamic library when targetting pauthtest
* various test fixes
* introduce end-to-end tests for pauthtest (in run-make)
This patch brings:
* unified handling of pointer authentication options through:
  `-Zpointer-authentication`, with possible values:
  `aarch64-jump-table-hardening`, `auth-traps`, `calls`, `elf-got`,
  `function-pointer-type-discrimination`, `indirect-gotos`, `init-fini`,
  `init-fini-address-discrimination`, `return-addresses`. Toggled with
  `+`/`-`.
* centralized handling of pointer authentication features. Session holds
  `pointer_auth_config: Option<PointerAuthConfig>`
* encapsulation of schema for function pointers and init/fini through
  `PointerAuthSchema`. This allowed for retiring of `PacMetadata`.
* refactor enabling of pointer authentication in code, instead of
  relying on the target (`pauthtest`) use the session
- warning on unsupported test
- error on type discrimination
- removal of PointerAuthKind
@jchlanda jchlanda force-pushed the jakub/pac_config branch from d59f1be to 9166ec6 Compare June 8, 2026 08:34
@rustbot

rustbot commented Jun 8, 2026

Copy link
Copy Markdown
Collaborator

This PR was rebased onto a different main commit. Here's a range-diff highlighting what actually changed.

Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers.

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

Labels

A-compiletest Area: The compiletest test runner A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-run-make Area: port run-make Makefiles to rmake.rs A-test-infra-minicore Area: `minicore` test auxiliary and `//@ add-core-stubs` A-testsuite Area: The testsuite used to check the correctness of rustc S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Unify handling of pointer authentication features

6 participants