emscripten: 4.0.12 -> 4.0.21; binaryen: 124 -> 125 (#467871)

This commit is contained in:
Will Cohen
2025-12-06 18:01:54 +00:00
committed by GitHub
3 changed files with 29 additions and 28 deletions
@@ -14,19 +14,19 @@ let
testsuite = fetchFromGitHub {
owner = "WebAssembly";
repo = "testsuite";
rev = "e05365077e13a1d86ffe77acfb1a835b7aa78422";
hash = "sha256-yvZ5AZTPUA6nsD3xpFC0VLthiu2CxVto66RTXBXXeJM=";
rev = "4b24564c844e3d34bf46dfcb3c774ee5163e31cc";
hash = "sha256-8VirKLRro0iST58Rfg17u4tTO57KNC/7F/NB43dZ7w4=";
};
in
stdenv.mkDerivation rec {
pname = "binaryen";
version = "124";
version = "125";
src = fetchFromGitHub {
owner = "WebAssembly";
repo = "binaryen";
rev = "version_${version}";
hash = "sha256-tkvO0gNESliRV6FOpXDQd7ZKujGe6q1mGX5V+twcE1o=";
hash = "sha256-QG8ZhvjcTbhIfYkVfrjxd97v9KaG/A8jO69rPg99/ME=";
};
nativeBuildInputs = [
@@ -1,4 +1,4 @@
From 86fc9ce2b381748813b372f7e86909be6f955cbd Mon Sep 17 00:00:00 2001
From 0a1c3a87ff80f8295bc60624a4e354a9ee6c181d Mon Sep 17 00:00:00 2001
From: Yureka <yuka@yuka.dev>
Date: Sat, 7 Aug 2021 09:16:46 +0200
Subject: [PATCH] emulate clang 'sysroot + /include' logic
@@ -16,14 +16,14 @@ in the include search order, right after the resource root.
Hence usage of -idirafter. Clang also documents an -isystem-after flag
but it doesn't appear to work
---
emcc.py | 3 +++
tools/compile.py | 3 +++
1 file changed, 3 insertions(+)
diff --git a/emcc.py b/emcc.py
index 279f6d4d9..26e20e2cc 100644
--- a/emcc.py
+++ b/emcc.py
@@ -400,6 +400,9 @@ def get_cflags(user_args, is_cxx):
diff --git a/tools/compile.py b/tools/compile.py
index 0cc5d33e3..e2586db0e 100644
--- a/tools/compile.py
+++ b/tools/compile.py
@@ -86,6 +86,9 @@ def get_cflags(user_args):
# We add these to the user's flags (newargs), but not when building .s or .S assembly files
cflags = get_clang_flags(user_args)
cflags.append('--sysroot=' + cache.get_sysroot(absolute=True))
@@ -34,5 +34,5 @@ index 279f6d4d9..26e20e2cc 100644
if settings.EMSCRIPTEN_TRACING:
cflags.append('-D__EMSCRIPTEN_TRACING__=1')
--
2.42.0
2.51.0
@@ -15,9 +15,13 @@
emscripten,
}:
let
pythonWithPsutil = python3.withPackages (ps: [ ps.psutil ]);
in
stdenv.mkDerivation rec {
pname = "emscripten";
version = "4.0.12";
version = "4.0.21";
llvmEnv = symlinkJoin {
name = "emscripten-llvm-${version}";
@@ -33,7 +37,7 @@ stdenv.mkDerivation rec {
name = "emscripten-node-modules-${version}";
inherit pname version src;
npmDepsHash = "sha256-Pos7pSboTIpGKtlBm56hJPYb1lDydmUwW1urHetFfeQ=";
npmDepsHash = "sha256-IwiH+GELJzd4rDq31arhiF5miIRLDe7nrVsM7Yg9rTg=";
dontBuild = true;
@@ -46,7 +50,7 @@ stdenv.mkDerivation rec {
src = fetchFromGitHub {
owner = "emscripten-core";
repo = "emscripten";
hash = "sha256-MwCUilfyum1yJb6nHEViYiYWufXlz2+krHZmXw2NAck=";
hash = "sha256-8lh7ZpzVnoQXOGE/xJgHSWkYXUDOOprbSGaEkyU+vKE=";
rev = version;
};
@@ -116,31 +120,28 @@ stdenv.mkDerivation rec {
export EM_CACHE=$out/share/emscripten/cache
mkdir -p $out/bin
for b in em++ em-config emar embuilder.py emcc emcmake emconfigure emmake emranlib emrun emscons emsize; do
for b in em++ emcc; do
makeWrapper $appdir/$b $out/bin/$b \
--set NODE_PATH ${nodeModules} \
--set EM_EXCLUSIVE_CACHE_ACCESS 1 \
--set PYTHON ${python3}/bin/python \
--run "source $appdir/locate_cache.sh"
done
for b in em-config emar embuilder emcmake emconfigure emmake emranlib emrun emscons emsize; do
chmod +x $appdir/$b.py
makeWrapper $appdir/$b.py $out/bin/$b \
--set NODE_PATH ${nodeModules} \
--set EM_EXCLUSIVE_CACHE_ACCESS 1 \
--set PYTHON ${python3}/bin/python \
--run "source $appdir/locate_cache.sh"
done
# precompile libc (etc.) in all variants:
pushd $TMPDIR
echo 'int __main_argc_argv( int a, int b ) { return 42; }' >test.c
for LTO in -flto ""; do
for BIND in "" "--bind"; do
# starting with emscripten 3.1.32+,
# if pthreads and relocatable are both used,
# _emscripten_thread_exit_joinable must be exported
# (see https://github.com/emscripten-core/emscripten/pull/18376)
# TODO: get library cache to build with both enabled and function exported
$out/bin/emcc $LTO $BIND test.c
$out/bin/emcc $LTO $BIND -s RELOCATABLE test.c
# starting with emscripten 3.1.48+,
# to use pthreads, _emscripten_check_mailbox must be exported
# (see https://github.com/emscripten-core/emscripten/pull/20604)
# TODO: get library cache to build with pthreads at all
# $out/bin/emcc $LTO $BIND -s USE_PTHREADS test.c
done
done
popd
@@ -148,7 +149,7 @@ stdenv.mkDerivation rec {
export PYTHON=${python3}/bin/python
export NODE_PATH=${nodeModules}
pushd $appdir
python test/runner.py test_hello_world
${pythonWithPsutil}/bin/python test/runner.py test_hello_world
popd
runHook postInstall