Skip to content

Conversation

juj
Copy link
Collaborator

@juj juj commented Aug 26, 2025

This PR adds support for

./emsdk install node-nightly-64bit

which finds the latest nightly node.js version and installs that. It is a moving target, so the next day when a new nightly is produced, reissuing ./emsdk install node-nightly-64bit will install the newer published version.

Also, this PR adds a fixed 22.18.0 version for the cross compilation s390x Node.js target as well. On an x64 Linux system, this allows running

./emsdk install node-big-endian-crosscompile-22.16.0-64bit

to install the big endian Node.js. This greatly simplifies the steps at emscripten-core/emscripten@main...juj:emscripten:bigendian_test_suite#diff-c36b90121be240017fa490a1c00e63e47fa3235f5c1be0593e2b7502d017c778R9985-R10000 and enables a trivial way to switch between LE and BE Node.js versions for testing.

CC @slavek-kucera

emsdk.py Outdated
return None


def build_node_nightly(tool):
Copy link
Collaborator

Choose a reason for hiding this comment

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

Is this actually building node from source? It looks like its just download it, so maybe this should be called "download_...tofetch_...`?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

check

"linux_url": "https://nodejs.org/download/release/v22.16.0/node-v22.16.0-linux-s390x.tar.gz",
"activated_path": "%installation_dir%/bin",
"activated_path_skip": "node",
"activated_cfg": "NODE_JS=['qemu-s390x', '-L', '/usr/s390x-linux-gnu/', '%installation_dir%/bin/node']",
Copy link
Collaborator

Choose a reason for hiding this comment

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

NODE_JS_TEST can be used here if you want to only use it for running tests.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Oh that's fantastic.

@juj
Copy link
Collaborator Author

juj commented Aug 27, 2025

I'll land this to be able to continue working on top of this. If there are still more reviews, I can do a second PR.

@juj juj merged commit efd71e9 into main Aug 27, 2025
12 checks passed
@juj juj deleted the node_nightly_and_big_endian branch August 27, 2025 13:24
@kripken
Copy link
Member

kripken commented Aug 27, 2025

This seems to have caused regressions, see #1595 and also I just noticed this on Binaryen CI:

https://github.com/WebAssembly/binaryen/actions/runs/17269266536/job/49009222269

@juj
Copy link
Collaborator Author

juj commented Aug 27, 2025

Yeah sorry about that - I push-landed #1594 as soon as I noticed.

@kripken
Copy link
Member

kripken commented Aug 27, 2025

Thanks!

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

Successfully merging this pull request may close these issues.

3 participants