Skip to content

Apple silicon builds #2474

Closed
Closed

Description

@AshCripps

refs: nodejs/TSC#886 (comment)

We need to kickstart the discussion again on how we plan to support the new Mac hardware which is due to be announced on Nov 10th.

We last had the discussion in the build meeting in july where we had some discussion as to whether to do 2 binaries or to go for fat binaries.

We also need to discuss sourcing hardware - We currently have two DTKs kindly donated by macstadium but no release machine as of yet and these DTKs will go back to apple at some point.

To Do:

  • Add 11.0 to versionselector to ensure we build only on master
  • Enable the macos-arm job in normal test regressions
  • Get the DTKs back into CI for testing
  • Test compiling and running node natively on the mac arm hardware
  • Test if a current release runs on the new hardware through the translation layer
  • Figure out a source of hardware to add to our CI for when our DTKs go back to apple
  • Note down size difference in binaries between: intel, arm and fat.

Activity

  1. mhdawson commented on Nov 5, 2020

    @mhdawson
    Member

    I think we'd agree to do fat binaries as they seemed preferable for a number of reasons.

    In terms of hardware longer term, we should see if macstadium has a longer term answer for that now as having them provide the hardware is the easiest path for us.

  2. rvagg commented on Nov 5, 2020

    @rvagg
    Member

    +1 to fat (again, I think? I don't recall). We used to do fat for x86+x64 until we ripped that out for io.js (and then Node 4). There's still echoes of the code to do it in nodejs/node Makefile and tools/ and it's certainly in the git history.

    For hardware, we really should have redundancy here too. Same approach as we have for x64. Rely on macstadium (assuming they'll let us use official hardware for this) but get our own and ask nearForm if they'll kindly host them for us as backups.

  3. gengjiawen commented on Nov 6, 2020

    @gengjiawen
    Member

    We have PRs need to run on silicon too: nodejs/node#35986.

  4. mhdawson commented on Nov 9, 2020

    @mhdawson
    Member

    @rvagg redundancy makes sense. I don't think we can order ARM mac mini H/W yet, correct me if I'm wrong on that and I can start the discussion with the Foundation.

  5. rvagg commented on Nov 9, 2020

    @rvagg
    Member

    No, we're really just waiting to see Apple's announcement tomorrow. Rumours are suggesting laptops, which is probably not going to be helpful. But 🤞 we may get mini's out of this in which case we should jump straight on it.

  6. AshCripps commented on Nov 10, 2020

    @AshCripps
    MemberAuthor

    Yeah the event looks to be the announcement of just 2 laptops according to rumours at least - we might be another year or so away from iMacs and mac minis.

  7. AshCripps commented on Nov 10, 2020

    @AshCripps
    MemberAuthor

    Turns out they did announce new mac minis so it might be worth speaking with the guys at macstadium again to see their timeline.

  8. rvagg commented on Nov 10, 2020

    @rvagg
    Member

    @mhdawson can you start the discussion with the Foundation about getting a couple of minis? And we'll need to make sure we have somewhere to put them, I guess we need to probe nearForm on this unless we have other options.

  9. AshCripps commented on Nov 11, 2020

    @AshCripps
    MemberAuthor

    just as an FYI I am working to get the DTKs into our regular regression runs to get some testing at least on the platform - I managed to brick one updating to the latest big sur but macstadium have swapped it out for another one. Im waiting to hear back if its safe to update the second one before I carry on.

  10. mhdawson commented on Nov 11, 2020

    @mhdawson
    Member

    @rvagg last time we also asked for virtualization software so that we could have a 2 vms on each mac mini so that 1 for test and one for release would be good enough. Do you know if the same software will work on the arm machines?

    We'll also need to agree on the specs. From https://www.apple.com/ca/shop/buy-mac/mac-mini there only seem to be 2 choices, one with the only difference being the SSD size.

  11. AshCripps commented on Nov 11, 2020

    @AshCripps
    MemberAuthor

    Key difference this time is the minis are 8 core instead of 6 core so we may be able to get away with running 3 VMs on one mini, The next issue is VMware fusion which I cant seem to find any more mention besides "soon" or "we are working on it" for M1 support

  12. nschonni commented on Nov 11, 2020

    @nschonni
    Member

    I think there is also supposed to be support for 16GB or ram https://www.anandtech.com/show/16235/apple-intros-first-three-apple-silicon-macs-late-2020-macbook-air-13inch-macbook-pro-mac-mini but it doesn't look like it's on the shop either
    The memory option is there once you select the HDD model

  13. rvagg commented on Nov 12, 2020

    @rvagg
    Member

    Oh, right yeah, the VM problem. I bet VMWare aren't treating this as a top priority. I wonder if we need to shop around for that. Maybe Orka is the only game in town for now unless we're happy to go bare metal for these?

  14. 40 remaining items

  15. bdkjones commented on Mar 4, 2021

    @bdkjones

    @nschonni Thanks. From the perspective of an outsider, I don't think Node has really explained their timeline or their progress on this issue. As someone at nodejs/TSC#886 pointed out: there is no single source of truth for those of us trying to get Node running on arm64—you have to cobble together bits and pieces from several threads all over the place. The people with the expertise are in these threads, so it's natural to talk to them there.

    Also: These threads are the top results when Googling "Build Node on Apple Silicon" and similar. That's naturally going to funnel people here, unfortunately.

    If you want to avoid that in the future, when large-scale platform transitions occur, it would be a good idea to update the "releases" page at nodejs.org with a link that says something like, "Trying to build Node on that new M1 Mac? Here's what you need to know." Centralize the expertise and you won't be bothered by the unwashed idiot masses (me).

  16. AshCripps commented on Mar 4, 2021

    @AshCripps
    MemberAuthor

    There is a pinned issue on nodejs/node which is as up to date as to our progress - nodejs/node#37309

  17. kalwiggins commented on Mar 5, 2021

    @kalwiggins

    anyone get node 10 to work on apple silicon? I haven't been able too

  18. architchandra commented on Mar 17, 2021

    @architchandra

    Can't get Node 10.14 to install using nvm on an M1 Mac Air. Any workarounds?

  19. billinghamj commented on Mar 17, 2021

    @billinghamj

    I would say that is expected. Node 15 supports M1. For older versions, use Rosetta

    Edit:

    Keep in mind this note at the top of #37309:

    NOTE: Support is very unlikely to be back ported to 14.x or before due to requiring a SemVer Major V8 update

  20. arcreigh commented on Apr 15, 2021

    @arcreigh

    All my M1 mini is in route, while I am not a developer I want to assist in any way that I can. Even if it means picking up a new skill / helping test compilation or running various tests.

  21. AshCripps commented on Apr 15, 2021

    @AshCripps
    MemberAuthor

    Closing. Support for Apple silicon is 15.x and above, and the binaries will be released with the 16.x release next week

  22. marckohlbrugge commented on May 11, 2021

    @marckohlbrugge

    Are the Apple Silicon builds for 15.x still planned? I can see them for 16.x but not for 15.x

  23. targos commented on May 12, 2021

    @targos
    Member

    No, and there are no more releases planned for v15.x

  24. 7rulnik commented on May 12, 2021

    @7rulnik

    @targos what about 14.17+?

  25. AshCripps commented on May 12, 2021

    @AshCripps
    MemberAuthor

    @7rulnik 14.x releases of apple silicon are currently not planned but the support is in the code base if you wish to build from source.

  26. sudokoi commented on Aug 26, 2021

    @sudokoi

    Can't get Node 10.14 to install using nvm on an M1 Mac Air. Any workarounds?

    @architchandra did you find a solution?

  27. johanneswuerbach commented on Aug 26, 2021

    @johanneswuerbach

    @tsuki42 a workaround is documented here nvm-sh/nvm#2350 (comment)

  28. sudokoi commented on Aug 26, 2021

    @sudokoi

    @johanneswuerbach That seems to have worked. Thanks! 🙏

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions