about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development
diff options
context:
space:
mode:
authorGabriel Ebner <gebner@gebner.org>2020-08-29 12:51:38 +0200
committerAlyssa Ross <hi@alyssa.is>2020-11-27 13:28:07 +0000
commit8f196b9f9e0ed36cce7923b8096f645930f4ea92 (patch)
treeeecf5b8ea42d0e2b97f49294cec708a5096d99b0 /nixpkgs/pkgs/development
parent93bcf7234f4886961afe7333949db2b01c1aa749 (diff)
downloadnixlib-8f196b9f9e0ed36cce7923b8096f645930f4ea92.tar
nixlib-8f196b9f9e0ed36cce7923b8096f645930f4ea92.tar.gz
nixlib-8f196b9f9e0ed36cce7923b8096f645930f4ea92.tar.bz2
nixlib-8f196b9f9e0ed36cce7923b8096f645930f4ea92.tar.lz
nixlib-8f196b9f9e0ed36cce7923b8096f645930f4ea92.tar.xz
nixlib-8f196b9f9e0ed36cce7923b8096f645930f4ea92.tar.zst
nixlib-8f196b9f9e0ed36cce7923b8096f645930f4ea92.zip
emscripten: precompile libc, etc.
(cherry picked from commit bc9760b842abdb4aac17543a3ae8decae5e6530e)
Diffstat (limited to 'nixpkgs/pkgs/development')
-rw-r--r--nixpkgs/pkgs/development/compilers/emscripten/default.nix30
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/default.nix1
2 files changed, 21 insertions, 10 deletions
diff --git a/nixpkgs/pkgs/development/compilers/emscripten/default.nix b/nixpkgs/pkgs/development/compilers/emscripten/default.nix
index dacf09371544..ca355ce4fe65 100644
--- a/nixpkgs/pkgs/development/compilers/emscripten/default.nix
+++ b/nixpkgs/pkgs/development/compilers/emscripten/default.nix
@@ -37,18 +37,25 @@ stdenv.mkDerivation rec {
 
   buildPhase = ''
     patchShebangs .
+
     # fixes cmake support
     sed -i -e "s/print \('emcc (Emscript.*\)/sys.stderr.write(\1); sys.stderr.flush()/g" emcc.py
 
+    # disables cache in user home, use installation directory instead
+    sed -i '/^def/!s/root_is_writable()/True/' tools/shared.py
+    sed -i "/^def check_sanity/a\\  return" tools/shared.py
+
+    # required for wasm2c
+    ln -s ${nodeModules}/node_modules .
+
     echo "EMSCRIPTEN_ROOT = '$appdir'" > .emscripten
     echo "LLVM_ROOT = '${llvmEnv}/bin'" >> .emscripten
     echo "NODE_JS = '${nodejs}/bin/node'" >> .emscripten
     echo "JS_ENGINES = [NODE_JS]" >> .emscripten
-    echo "COMPILER_ENGINE = NODE_JS" >> .emscripten
-    echo "CLOSURE_COMPILER = '${closurecompiler}/share/java/closure-compiler-v${closurecompiler.version}.jar'" >> .emscripten
+    echo "CLOSURE_COMPILER = ['${closurecompiler}/bin/closure-compiler']" >> .emscripten
     echo "JAVA = '${jre}/bin/java'" >> .emscripten
     # to make the test(s) below work
-    echo "SPIDERMONKEY_ENGINE = []" >> .emscripten
+    # echo "SPIDERMONKEY_ENGINE = []" >> .emscripten
     echo "BINARYEN_ROOT = '${binaryen}'" >> .emscripten
   '';
 
@@ -61,16 +68,21 @@ stdenv.mkDerivation rec {
     for b in em++ em-config emar embuilder.py emcc emcmake emconfigure emlink.py emmake emranlib emrun emscons; do
       makeWrapper $appdir/$b $out/bin/$b \
         --set NODE_PATH ${nodeModules}/node_modules \
+        --set EM_EXCLUSIVE_CACHE_ACCESS 1 \
         --set PYTHON ${python3}/bin/python
     done
-  '';
 
-  doCheck = true;
-  checkPhase = ''
-    #export EMCC_DEBUG=2
+    # precompile libc in all four variants:
+    # wasm, wasm-pic, wasm-lto, wasm-lto-pic
     export PYTHON=${python3}/bin/python
-    export HOME=$TMPDIR
-    python tests/runner.py test_hello_world
+    export NODE_PATH=${nodeModules}/node_modules
+    pushd $appdir
+    for lto in wasm2 wasmlto2; do
+      for pic in test_hello_world test_relocatable_void_function; do
+        python tests/runner.py $lto.$pic
+      done
+    done
+    popd
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/default.nix b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/default.nix
index e77b338a20a5..3e09afd54bf8 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/default.nix
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/default.nix
@@ -61,7 +61,6 @@ in rustPlatform.buildRustPackage {
   # minifying the JavaScript; passing it allows us to side-step more Node
   # JS dependencies for installation.
   preBuild = ''
-    HOME=/tmp
     bash ./script/build-wasm --debug
   '';