Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Properly support Apple Silicon (M1) devices #41

Closed
2 tasks
DeMoorJasper opened this issue Nov 25, 2020 · 7 comments
Closed
2 tasks

Properly support Apple Silicon (M1) devices #41

DeMoorJasper opened this issue Nov 25, 2020 · 7 comments

Comments

@DeMoorJasper
Copy link
Member

DeMoorJasper commented Nov 25, 2020

Ensure this package also runs on M1 Macs, besides this also build binaries for these devices and publish them in a new release.

This is also affecting M1 Macs running node 15.3.0 or possibly linked to parcel-bundler/parcel#5046

Originally posted by @WA9ACE in #33 (comment)

TODO:

  • Fix any issues with compatibility
  • Setup CI Pipeline for automatically building universal mac binaries
@DeMoorJasper
Copy link
Member Author

DeMoorJasper commented Nov 25, 2020

@WA9ACE that's not good, unfortunately nobody on the Parcel core team currently has an M1 mac and Azure doesn't support it yet either... so we can't really test this at the moment. Also you should probably open a new issue for Apple-M1 support as it's not really the same as linux arm

I do have one on order but it won't be delivered until somewhere mid-december, so until than I can't really debug and fix this.

Either way Azure needs to start supporting Apple-M1 based CI pipelines before we can release any binaries.

Originally posted by @DeMoorJasper in #33

Just to clarify: you're not using rosetta (but an actual ARM Node binary)?

Originally posted by @mischnic in #33

@DeMoorJasper DeMoorJasper changed the title Support Apple M1 devices Support and build binaries for Apple M1 devices Nov 25, 2020
@DeMoorJasper DeMoorJasper changed the title Support and build binaries for Apple M1 devices Properly support Apple M1 devices Nov 25, 2020
@devongovett
Copy link
Member

I think node still doesn't have official Apple Silicon builds?

@DeMoorJasper
Copy link
Member Author

DeMoorJasper commented Nov 25, 2020

@devongovett I don't think so, it's probably related to this issue parcel-bundler/parcel#5046 instead as Apple keeps "improving" their security

@DeMoorJasper DeMoorJasper changed the title Properly support Apple M1 devices Properly support Apple Silicon (M1) devices Nov 25, 2020
@WA9ACE
Copy link

WA9ACE commented Nov 25, 2020

Correct, this is an arm node built from 15.3.0 which includes a patch from upstream V8 solving a previously blocking issue

Node Merged V8 apple arm macro: https://chromium-review.googlesource.com/c/v8/v8/+/2517689
Node M1 Support tracking issue: nodejs/build#2474

Node does not, as of the time of this writing, provide officially supported builds of Node for M1 Macs.

Also just to clarify I don't want to sound like I'm demanding an open source project support brand new hardware immediately. I know things take time and effort, both of which have a corresponding monetary value and that it is completely unreasonable of anyone to ask an OSS project to support 2 week old hardware immediately.

To give some context on things I've tried, I have gatekeeper disabled, and signed the binary by hand myself with codesign. I can verify the artifact is arm with lipo -info sourcemap.node returning.

Non-fat file: sourcemap.node is architecture: arm64

@mischnic
Copy link
Member

mischnic commented Nov 25, 2020

@WA9ACE Are you sure this is related to parcel-bundler/parcel#5046 and therefore the codesign situation? If you get the error described in #33, then it's probably related to ARM itself.

@DeMoorJasper
Copy link
Member Author

DeMoorJasper commented Dec 7, 2020

Just tried on my M1 Macbook I just got and it works fine when using Rosetta, which is probably still the recommended way of running NodeJS at this point?

@DeMoorJasper
Copy link
Member Author

Resolved by #52

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

No branches or pull requests

4 participants