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

Quick hack to treat macOS-arm64 as macOS-x86_64 #771

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions emsdk.py
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,9 @@ def errlog(msg):
ARCH = 'x86'
elif machine.startswith('aarch64') or machine.lower().startswith('arm64'):
ARCH = 'aarch64'
if MACOS:
# arm64 macOS runs x86_64 binaries and we don't have build bots yet for native
ARCH = 'x86_64'
Copy link
Collaborator

@sbc100 sbc100 Mar 22, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we instead have a command line option to opt into this? --arch=x86_64

Or an environment variable EMSDK_ARCH=x86_64?

With #753 we now support native python and node, although it only works in "build from source" mode. This change as it stand would render that path unavailable, no?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think we should use a command-line option; rather it should "just work". However using the Aarch64 node and python would be much preferable. What would you recommend for fetching the llvm & binaryen binaries for "x64" while fetching node and python from Aarch64?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(You are using binaries of python and node right? Or do I misunderstand and those are from source too?)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If it's possible to build the macOS binaries as universal binaries with the current SDK, that would be nice too -- then we wouldn't have to do any of this except fetching Aarch64-capable node and python.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does anyone know the exact build scripts used to produce the llvm/clang and binaryen binary artifacts? I would like to modify them to resolve this once and for all. ;)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(Note that Node builds as aarch64 on mac, but they're still working on official universal binaries...)

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Universal binaries also double the download side right... I'm not sure we need/want that. Why not just build twice and upload two different archives?

elif platform.machine().startswith('arm'):
ARCH = 'arm'
else:
Expand Down