1{ newScope, stdenv, wrapCC, wrapCCWith, symlinkJoin }:
2let
3 callPackage = newScope (self // {inherit stdenv;});
4
5 self = {
6 emscriptenfastcomp-unwrapped = callPackage ./emscripten-fastcomp.nix {};
7 emscriptenfastcomp-wrapped = wrapCCWith stdenv.cc.libc ''
8 # hardening flags break WASM support
9 cat > $out/nix-support/add-hardening.sh
10 '' self.emscriptenfastcomp-unwrapped;
11 emscriptenfastcomp = symlinkJoin {
12 name = "emscriptenfastcomp";
13 paths = [ self.emscriptenfastcomp-wrapped self.emscriptenfastcomp-unwrapped ];
14 preferLocalBuild = false;
15 allowSubstitutes = true;
16 postBuild = ''
17 # replace unwrapped clang-3.9 binary by wrapper
18 ln -sf $out/bin/clang $out/bin/clang-[0-9]*
19 '';
20 };
21 };
22in self