Skip to content

build: add rust target for macOS cross compiles#63015

Draft
richardlau wants to merge 1 commit intonodejs:mainfrom
richardlau:macosrust
Draft

build: add rust target for macOS cross compiles#63015
richardlau wants to merge 1 commit intonodejs:mainfrom
richardlau:macosrust

Conversation

@richardlau
Copy link
Copy Markdown
Member

When we build the macOS pkg, we build Node.js twice (on arm64):

  • Once for arm64 (native)
  • Once for x64, using a combination of Rosetta 2 and compiler flags

before combining both into a universal binary.

For the x64 case, pass target flag to rustc so that the binary is built for the correct target architecture.


This is a "blind" attempt to address pkg build failures in the Node.js release CI -- I'm not a macOS user, nor do I have access to a macOS environment outside of the Node.js CI, so opening as a draft to test out.

It's quite possible that even if this is the "correct" fix, we'll need x64 rustc libraries installed on the release macOS VMs (CI run will indicate).

@richardlau richardlau added the macos Issues and PRs related to the macOS platform / OSX. label Apr 28, 2026
@nodejs-github-bot nodejs-github-bot added build Issues and PRs related to build files or the CI. needs-ci PRs that need a full CI run. labels Apr 28, 2026
@richardlau
Copy link
Copy Markdown
Member Author

richardlau commented Apr 28, 2026

Tried a test build, but that failed due to the issue being addressed by #63006. I'll either need that to land and rebase this, or create another branch with that plus this to test.

@richardlau
Copy link
Copy Markdown
Member Author

Trying with another branch with this PR and #63006:
https://ci-release.nodejs.org/job/iojs+release/11723/nodes=macos15-release-pkg/console

When we build the macOS pkg, we build Node.js twice (on arm64):
- Once for arm64 (native)
- Once for x64, using a combination of Rosetta 2 and compiler flags

before combining both into a universal binary.

For the x64 case, pass target flag to `rustc` so that the binary is
built for the correct target architecture.

Signed-off-by: Richard Lau <[email protected]>
@richardlau
Copy link
Copy Markdown
Member Author

Didn't work.
Trying again with target set for the actual compilation and not configure step: https://ci-release.nodejs.org/job/iojs+release/11724/nodes=macos15-release-pkg/

@richardlau
Copy link
Copy Markdown
Member Author

Didn't work. Trying again with target set for the actual compilation and not configure step: https://ci-release.nodejs.org/job/iojs+release/11724/nodes=macos15-release-pkg/

21:12:48    Compiling stable_deref_trait v1.2.1
21:12:48 error[E0463]: can't find crate for `core`
21:12:48   |
21:12:48   = note: the `x86_64-apple-darwin` target may not be installed
21:12:48   = help: consider downloading the target with `rustup target add x86_64-apple-darwin`
21:12:48 
21:12:48 For more information about this error, try `rustc --explain E0463`.
21:12:48 error: could not compile `stable_deref_trait` (lib) due to 1 previous error
21:12:48 warning: build failed, waiting for other jobs to finish...

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

Labels

build Issues and PRs related to build files or the CI. macos Issues and PRs related to the macOS platform / OSX. needs-ci PRs that need a full CI run.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants