build: add rust target for macOS cross compiles#63015
build: add rust target for macOS cross compiles#63015richardlau wants to merge 1 commit intonodejs:mainfrom
Conversation
|
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. |
|
Trying with another branch with this PR and #63006: |
161a312 to
ff3dccc
Compare
|
Didn't work. |
|
So this suggests we need to add the x64 macOS rust target to the VMs similar to the arm64 Windows targets for the Windows machines in nodejs/build#4285. Further test builds have also errored with and that appears to be because if a target is set it changes the directory that the compiled library is written to, which was accounted for in #61806. However this PR isn't adapting the Windows solution because the way the pkg is currently compiled, under Rosetta the |
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 <richard.lau@ibm.com>
|
Latest build from this branch with the addition of the x64 rust target succeeded at https://ci-release.nodejs.org/job/iojs+release/nodes=macos15-release-pkg/11740 and I've verified that temporal works in both architectures on the universal binary within the package :-) |
When we build the macOS pkg, we build Node.js twice (on arm64):
before combining both into a universal binary.
For the x64 case, pass target flag to
rustcso 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).