Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)

emscripten: 3.1.24 -> 3.1.41

+22 -35
+7 -7
pkgs/development/compilers/emscripten/0001-emulate-clang-sysroot-include-logic.patch
··· 1 - From 67f54fde2b1683aae3800f7a86a4e507c1125be8 Mon Sep 17 00:00:00 2001 2 From: Yureka <yuka@yuka.dev> 3 Date: Sat, 7 Aug 2021 09:16:46 +0200 4 Subject: [PATCH] emulate clang 'sysroot + /include' logic ··· 20 1 file changed, 6 insertions(+), 1 deletion(-) 21 22 diff --git a/emcc.py b/emcc.py 23 - index 999314afc..0e23c066c 100755 24 --- a/emcc.py 25 +++ b/emcc.py 26 - @@ -759,7 +759,12 @@ def emsdk_ldflags(user_args): 27 28 29 def emsdk_cflags(user_args): 30 - - cflags = ['--sysroot=' + shared.Cache.get_sysroot(absolute=True)] 31 + cflags = [ 32 - + '--sysroot=' + shared.Cache.get_sysroot(absolute=True), 33 + '-resource-dir=@resourceDir@', 34 - + '-idirafter' + shared.Cache.get_sysroot(absolute=True) + os.path.join('/include'), 35 + '-iwithsysroot' + os.path.join('/include','c++','v1') 36 + ] 37 38 def array_contains_any_of(hay, needles): 39 for n in needles: 40 -- 41 - 2.32.0 42
··· 1 + From 4bbbb640934aa653bcfec0335798b77a8935b815 Mon Sep 17 00:00:00 2001 2 From: Yureka <yuka@yuka.dev> 3 Date: Sat, 7 Aug 2021 09:16:46 +0200 4 Subject: [PATCH] emulate clang 'sysroot + /include' logic ··· 20 1 file changed, 6 insertions(+), 1 deletion(-) 21 22 diff --git a/emcc.py b/emcc.py 23 + index ba8d1b556..7d89644c5 100755 24 --- a/emcc.py 25 +++ b/emcc.py 26 + @@ -883,7 +883,12 @@ def parse_s_args(args): 27 28 29 def emsdk_cflags(user_args): 30 + - cflags = ['--sysroot=' + cache.get_sysroot(absolute=True)] 31 + cflags = [ 32 + + '--sysroot=' + cache.get_sysroot(absolute=True), 33 + '-resource-dir=@resourceDir@', 34 + + '-idirafter' + cache.get_sysroot(absolute=True) + os.path.join('/include'), 35 + '-iwithsysroot' + os.path.join('/include','c++','v1') 36 + ] 37 38 def array_contains_any_of(hay, needles): 39 for n in needles: 40 -- 41 + 2.40.0 42
+14 -27
pkgs/development/compilers/emscripten/default.nix
··· 1 { lib, stdenv, fetchFromGitHub, python3, nodejs, closurecompiler 2 , jre, binaryen 3 , llvmPackages 4 - , symlinkJoin, makeWrapper, substituteAll, fetchpatch 5 , buildNpmPackage 6 , emscripten 7 }: 8 9 stdenv.mkDerivation rec { 10 pname = "emscripten"; 11 - version = "3.1.24"; 12 13 llvmEnv = symlinkJoin { 14 name = "emscripten-llvm-${version}"; ··· 19 name = "emscripten-node-modules-${version}"; 20 inherit pname version src; 21 22 - npmDepsHash = "sha256-ejuHR2BpAUStWjuvQuGE6ko4byF4GBl6FJBshxlknQk="; 23 24 dontBuild = true; 25 ··· 32 src = fetchFromGitHub { 33 owner = "emscripten-core"; 34 repo = "emscripten"; 35 - sha256 = "sha256-1jW6ThxK6dThOO90l4Mc5yehVF3tI4HWipBWZAOztrk="; 36 rev = version; 37 }; 38 ··· 42 patches = [ 43 (substituteAll { 44 src = ./0001-emulate-clang-sysroot-include-logic.patch; 45 - resourceDir = "${llvmEnv}/lib/clang/${llvmPackages.release_version}/"; 46 - }) 47 - # https://github.com/emscripten-core/emscripten/pull/18219 48 - (fetchpatch { 49 - url = "https://github.com/emscripten-core/emscripten/commit/afbc14950f021513c59cbeaced8807ef8253530a.patch"; 50 - sha256 = "sha256-+gJNTQJng9rWcGN3GAcMBB0YopKPnRp/r8CN9RSTClU="; 51 - }) 52 - # https://github.com/emscripten-core/emscripten/pull/18220 53 - (fetchpatch { 54 - url = "https://github.com/emscripten-core/emscripten/commit/852982318f9fb692ba1dd1173f62e1eb21ae61ca.patch"; 55 - sha256 = "sha256-hmIOtpRx3PD3sDAahUcreSydydqcdSqArYvyLGgUgd8="; 56 }) 57 ]; 58 ··· 68 sed -i '/^def/!s/root_is_writable()/True/' tools/config.py 69 sed -i "/^def check_sanity/a\\ return" tools/shared.py 70 71 - # required for wasm2c 72 - ln -s ${nodeModules} node_modules 73 - 74 echo "EMSCRIPTEN_ROOT = '$out/share/emscripten'" > .emscripten 75 echo "LLVM_ROOT = '${llvmEnv}/bin'" >> .emscripten 76 echo "NODE_JS = '${nodejs}/bin/node'" >> .emscripten ··· 108 109 # precompile libc (etc.) in all variants: 110 pushd $TMPDIR 111 - echo 'int __main_argc_argv() { return 42; }' >test.c 112 for LTO in -flto ""; do 113 - # wasm2c doesn't work with PIC 114 - $out/bin/emcc -s WASM2C -s STANDALONE_WASM $LTO test.c 115 - 116 for BIND in "" "--bind"; do 117 - for MT in "" "-s USE_PTHREADS"; do 118 - for RELOCATABLE in "" "-s RELOCATABLE"; do 119 - $out/bin/emcc $RELOCATABLE $BIND $MT $LTO test.c 120 - done 121 - done 122 done 123 done 124 popd
··· 1 { lib, stdenv, fetchFromGitHub, python3, nodejs, closurecompiler 2 , jre, binaryen 3 , llvmPackages 4 + , symlinkJoin, makeWrapper, substituteAll 5 , buildNpmPackage 6 , emscripten 7 }: 8 9 stdenv.mkDerivation rec { 10 pname = "emscripten"; 11 + version = "3.1.41"; 12 13 llvmEnv = symlinkJoin { 14 name = "emscripten-llvm-${version}"; ··· 19 name = "emscripten-node-modules-${version}"; 20 inherit pname version src; 21 22 + npmDepsHash = "sha256-QlKm6UvPUa7+VJ9ZvXdxYZzK+U96Ju/oAHPhZ/hyv/I="; 23 24 dontBuild = true; 25 ··· 32 src = fetchFromGitHub { 33 owner = "emscripten-core"; 34 repo = "emscripten"; 35 + sha256 = "sha256-yQZrAQfNZZd65a14AFObrLrBzePBDnK0J87oTEB1Dcw="; 36 rev = version; 37 }; 38 ··· 42 patches = [ 43 (substituteAll { 44 src = ./0001-emulate-clang-sysroot-include-logic.patch; 45 + resourceDir = "${llvmEnv}/lib/clang/16/"; 46 }) 47 ]; 48 ··· 58 sed -i '/^def/!s/root_is_writable()/True/' tools/config.py 59 sed -i "/^def check_sanity/a\\ return" tools/shared.py 60 61 echo "EMSCRIPTEN_ROOT = '$out/share/emscripten'" > .emscripten 62 echo "LLVM_ROOT = '${llvmEnv}/bin'" >> .emscripten 63 echo "NODE_JS = '${nodejs}/bin/node'" >> .emscripten ··· 95 96 # precompile libc (etc.) in all variants: 97 pushd $TMPDIR 98 + echo 'int __main_argc_argv( int a, int b ) { return 42; }' >test.c 99 for LTO in -flto ""; do 100 for BIND in "" "--bind"; do 101 + # starting with emscripten 3.1.32+, 102 + # if pthreads and relocatable are both used, 103 + # _emscripten_thread_exit_joinable must be exported 104 + # (see https://github.com/emscripten-core/emscripten/pull/18376) 105 + # TODO: get library cache to build with both enabled and function exported 106 + $out/bin/emcc $LTO $BIND test.c 107 + $out/bin/emcc $LTO $BIND -s RELOCATABLE test.c 108 + $out/bin/emcc $LTO $BIND -s USE_PTHREADS test.c 109 done 110 done 111 popd
+1 -1
pkgs/top-level/all-packages.nix
··· 7385 easeprobe = callPackage ../tools/misc/easeprobe { }; 7386 7387 emscripten = callPackage ../development/compilers/emscripten { 7388 - llvmPackages = llvmPackages_14; 7389 }; 7390 7391 emscriptenPackages = recurseIntoAttrs (callPackage ./emscripten-packages.nix { });
··· 7385 easeprobe = callPackage ../tools/misc/easeprobe { }; 7386 7387 emscripten = callPackage ../development/compilers/emscripten { 7388 + llvmPackages = llvmPackages_16; 7389 }; 7390 7391 emscriptenPackages = recurseIntoAttrs (callPackage ./emscripten-packages.nix { });