Skip to content

ci: leave deterministic LLVM ARM64 archives flag-free - #5490

Merged
sxlijin merged 1 commit into
canaryfrom
sxlijin/fix-arm64-llvm-archiver-flags
Nov 3, 2026
Merged

sxlijin merged 1 commit into
canaryfrom
sxlijin/fix-arm64-llvm-archiver-flags

Conversation

@sxlijin

@sxlijin sxlijin commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

Native Windows ARM64 wrapper builds select llvm-lib.exe, which treats /Brepro as an input filename and fails with /Brepro: no such file or directory. Clear the ARM64 archiver flags while retaining /Brepro for the x64 MSVC archiver. LLVM's COFF archiver already writes deterministic archives by default.

This is the remaining archiver failure exposed after #5489 stopped MSYS2 from converting the flags into paths. Failure example: https://github.com/BoundaryML/baml/actions/runs/41558436389/job/125663254593.

Validation: reproduced the unsupported-flag failure with LLVM using an ARM64 Windows COFF object, then successfully wrote two byte-identical libraries without the flag after changing the object's filesystem timestamp. Sourcing .envrc clears an inherited ARM64 /Brepro value and preserves the x64 flag. Shell syntax and applicable prek checks pass. LLVM's implementation explicitly enables deterministic output: https://github.com/llvm/llvm-project/blob/main/llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp.

Summary by CodeRabbit

  • Chores
    • Updated build settings for native ARM64 Windows builds. The build no longer passes an unsupported option to the library tool; application behavior is unchanged.

@vercel

vercel Bot commented Nov 3, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
developer-docs Building Building Preview Nov 3, 2026 1:25am UTC

Request Review

@github-actions

github-actions Bot commented Nov 3, 2026

Copy link
Copy Markdown

⏭️ Performance benchmarks were skipped

Perf benchmarks (CodSpeed) are opt-in on pull requests — they no longer run on every push. They always run automatically after merge to canary/main.

To run them on this PR, do any of the following, then push a commit (or re-run CI):

  • Add RUN_CODSPEED=1 to the PR description, or
  • Include run-perf or /perf in the PR title or any commit message.

@coderabbitai

coderabbitai Bot commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review.

Walkthrough

The .envrc configuration now leaves ARFLAGS_aarch64_pc_windows_msvc empty. A new comment states that native ARM64 llvm-lib is deterministic by default and does not support /Brepro.

Changes: ARM64 Archiver Configuration

Layer / File(s) Summary
Update the ARM64 archiver flag
.envrc
ARFLAGS_aarch64_pc_windows_msvc is now empty. A comment documents that native ARM64 llvm-lib is deterministic by default and does not support /Brepro.

Estimated code review effort: 1 (Trivial) | ~3 minutes

Change: Bug fix

Possibly related PRs

Suggested reviewers: codeshaunted

Merge Risk: Minimal · up to 0e9b2

The ARM64 archiver configuration is ready to merge with no identified actionable risk.

Architecture risk: Low · up to 0e9b2

The changed surface does not map to a changed system, dependency edge, entrypoint, or external dependency.

Changed systems: None identified.

Architecture concerns
No architecture-level concerns identified.

Review details

Before / after behavior

  • observed — Modified behavior in .envrc: The ARM64 MSVC archiver flags change from /Brepro to an empty value; a comment identifies native ARM64’s llvm-lib as deterministic by default and without /Brepro support.
Pre-merge checks: Passed 5
Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title "ci: leave deterministic LLVM ARM64 archives flag-free" matches the main change. The .envrc change clears ARFLAGS_aarch64_pc_windows_msvc so the native ARM64 llvm-lib archiver no longer rece…
Docstring Coverage Passed No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentat…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Title check

Explanation

The title "ci: leave deterministic LLVM ARM64 archives flag-free" matches the main change. The .envrc change clears ARFLAGS_aarch64_pc_windows_msvc so the native ARM64 llvm-lib archiver no longer receives /Brepro, which it treats as an input filename and rejects. The x64 MSVC flag is kept, and the title's use of "ci:" fits a change to build configuration. The title is specific and concise, though it names the ARM64 archive behavior rather than the failure it fixes.

Full details: Docstring Coverage

Explanation

No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 0 functions across 0 files. (1 skipped: 1 unsupported.)

Finishing Touches
Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Warning

Billing warning: we have not been able to collect payment for this subscription for more than 72 hours. Please update the payment method or pay any pending invoices in Billing to avoid service interruption.

A rabbit checks the flags with care,
Finds /Brepro is not for there.
The ARM64 setting clears its space,
While llvm-lib keeps its steady pace.
The burrow hums; the build runs clean.

CodeRabbit Verify

  • Run CodeRabbit Verify to test the changes in this pull request.
Recent review info
Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Repository UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 7a205740-cc36-4097-959a-c86f2c817071
Commits

Reviewing files that changed from the base of the PR and between 5437493 and 0e9b2d6.

Files selected for processing: 1
  • .envrc

Included review availability: This review used your included allowance. Your plan provides up to 8 included reviews per hour; 4 remain after this review.

@sxlijin
sxlijin added this pull request to the merge queue Nov 3, 2026
Merged via the queue into canary with commit 85da331 Nov 3, 2026
60 of 61 checks passed
@sxlijin
sxlijin deleted the sxlijin/fix-arm64-llvm-archiver-flags branch November 3, 2026 01:33

This branch was successfully deployed

1 active deployment
Preview – developer-docs — 0e9b2d61 Deployed Nov 3, 2026 by vercel[bot]
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