Skip to content

[codex] arm64e upstream prep stack#4

Closed
cypherair wants to merge 8 commits intomainfrom
codex/arm64e-upstream-prep-2026-04-24
Closed

[codex] arm64e upstream prep stack#4
cypherair wants to merge 8 commits intomainfrom
codex/arm64e-upstream-prep-2026-04-24

Conversation

@cypherair
Copy link
Copy Markdown
Owner

Summary

Rebuilds the arm64e ptrauth spike into an eight-commit upstream-prep stack on top of main at 36ba2c7712052d731a7082d0eba5ed3d9d56c133.

This is intentionally a CypherAir fork draft PR. The upstream-core cut point is before the final fork-only workflow commit; do not send this exact branch to rust-lang/rust unchanged.

Stack

  1. target: add arm64e-apple-visionos
  2. arm64e: model default Apple ptrauth features
  3. arm64e: emit clang-compatible ptrauth metadata
  4. arm64e: authenticate indirect function calls
  5. arm64e: authenticate function pointers used as data
  6. arm64e: reject incompatible ptrauth flag overrides
  7. bootstrap: handle fork shallow upstream detection
  8. ci: add fork arm64e validation workflow

The final workflow commit is fork-only and marked to drop before upstream. The bootstrap shallow-ref commit is separate from arm64e codegen so it can be proposed independently or dropped.

Validation

  • git diff --check main...HEAD
  • python3 x.py check compiler/rustc_codegen_ssa compiler/rustc_codegen_llvm --stage 1
  • Full targeted arm64e codegen/assembly/UI test command, including fnptr-data and invoke
  • python3 x.py build compiler/rustc library/std --stage 1 --target arm64e-apple-darwin
  • python3 x.py test src/bootstrap --stage 1 --test-args test_push_ci
  • python3 x.py test src/bootstrap --stage 1 --test-args test_ci_merge_without_upstream_parent_falls_back_to_nightly_ref
  • Scratch stage1 arm64e-apple-darwin samples: hello world, thread_local!, and std::thread::current().id() all compiled to Mach-O arm64e and ran locally; TLS assembly contains blraaz.

python3 x.py test src/bootstrap --stage 0 is rejected by this checkout (cannot test anything on stage 0). A full src/bootstrap --stage 1 run is blocked locally by missing cmake, ninja, and Linux cross compilers, so the new git-helper tests were run directly.

Notes

  • TLS is not a current blocker for the minimal stage1 samples.
  • The gcc backend skips are retained on the LLVM/AArch64-specific UI tests with local rationale comments.
  • Local ignored status notes were updated in the Rust checkout and downstream experiment notes, but are not part of this PR stack.

@cypherair
Copy link
Copy Markdown
Owner Author

Superseded by PR #5, which now carries the upstream-ready integration stack plus the integration-only visionOS+ptrauth cross-check follow-up. Keeping the branch for archive/reference history.

@cypherair cypherair closed this Apr 24, 2026
@cypherair cypherair deleted the codex/arm64e-upstream-prep-2026-04-24 branch April 25, 2026 02:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant