@ai-ecoverse/wasm-emscripten 6.0.9-4 → 6.0.9-6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +17 -3
- package/bin/em++ +25 -7
- package/bin/em-config +25 -7
- package/bin/emar +25 -7
- package/bin/embuilder +25 -7
- package/bin/emcc +25 -7
- package/bin/emcmake +25 -7
- package/bin/emconfigure +25 -7
- package/bin/emmake +25 -7
- package/bin/emranlib +25 -7
- package/bin/emscan-deps +25 -7
- package/emscripten-config +3 -2
- package/lib/slicc/slicc_exec.o +0 -0
- package/lib/slicc/slicc_fork.o +0 -0
- package/lib/slicc/slicc_jobs.o +0 -0
- package/lib/slicc/slicc_libc_gaps.o +0 -0
- package/lib/slicc/slicc_main_envp.o +0 -0
- package/lib/slicc/slicc_select.o +0 -0
- package/lib/slicc/slicc_signals.o +0 -0
- package/lib/slicc/slicc_spawn.o +0 -0
- package/package.json +8 -4
- package/tools/link.py +28 -8
- package/tools/utils.py +3 -1
package/README.md
CHANGED
|
@@ -12,6 +12,19 @@ pointing at this package's config.
|
|
|
12
12
|
| `@ai-ecoverse/wasm-clang` | `LLVM_ROOT` (clang / wasm-ld) |
|
|
13
13
|
| `@ai-ecoverse/wasm-binaryen` | `BINARYEN_ROOT` (wasm-opt, …) |
|
|
14
14
|
| `@ai-ecoverse/emscripten-cache` | Read-only prebuilt `sysroot/` |
|
|
15
|
+
| `esbuild-wasm@0.28.2` | SLICC `node` ESM/TLA transpile (`compiler.mjs`, …) |
|
|
16
|
+
| `typescript@6.0.3` | Fallback transpile path when esbuild is unavailable |
|
|
17
|
+
| `acorn` / `acorn-import-phases` | JS optimizer (`acorn-optimizer.mjs`) |
|
|
18
|
+
|
|
19
|
+
## Default link (wasm realm)
|
|
20
|
+
|
|
21
|
+
Executable links (not `-c` / `-r` / `-shared`) inject `homescoop_em_cli_ldflags`
|
|
22
|
+
(`-sENVIRONMENT=web,worker,node -sEXIT_RUNTIME=1 -sALLOW_MEMORY_GROWTH=1`) and
|
|
23
|
+
`lib/slicc/{slicc_spawn,slicc_exec,slicc_signals,slicc_select,slicc_libc_gaps,slicc_jobs}.o`.
|
|
24
|
+
Opt out with **`SLICC_EMCC_PLAIN=1`** for plain web glue.
|
|
25
|
+
`lib/slicc/slicc_main_envp.o` (make: `-Dmain=slicc_tool_main`) and
|
|
26
|
+
`lib/slicc/slicc_fork.o` (needs ASYNCIFY) are shipped but not auto-linked.
|
|
27
|
+
Root `$PKG/emcc` (cmake toolchain) and `$PKG/bin/emcc` are the same self-sufficient launcher.
|
|
15
28
|
|
|
16
29
|
## CACHE model
|
|
17
30
|
|
|
@@ -24,18 +37,19 @@ pointing at this package's config.
|
|
|
24
37
|
|
|
25
38
|
## SLICC patches (September + homescoop)
|
|
26
39
|
|
|
27
|
-
1.
|
|
28
|
-
2. **Configure patch** — autoconf/conftest skips `NODERAWFS`
|
|
40
|
+
1. **Wasm-realm CLI link defaults** — see above; optional `SLICC_VFS_PRE_JS` only when set (node-realm)
|
|
41
|
+
2. **Configure patch** — autoconf/conftest skips `NODERAWFS` under CLI defaults
|
|
29
42
|
3. **`ac_cv_build` seeding** — `emconfigure` sets `ac_cv_build=x86_64-pc-linux-gnu` (and host/target) so `config.guess` is not required in-realm
|
|
30
43
|
4. **Closure unsupported** — `-sCLOSURE=1` / `--closure` fail with: *Closure Compiler is not available in SLICC's Emscripten package*
|
|
31
44
|
5. **Cache erase** — will not delete a symlinked `sysroot`
|
|
45
|
+
6. **`execvpe`** — `tools/utils.py` passes `os.environ` so emconfigure/`emmake` keep `CC=emcc`
|
|
32
46
|
|
|
33
47
|
## Commands
|
|
34
48
|
|
|
35
49
|
`emcc`, `em++`, `emar`, `emranlib`, `emcmake`, `emconfigure`, `emmake`, `embuilder`, `em-config`, `emscan-deps`
|
|
36
50
|
|
|
37
51
|
```bash
|
|
38
|
-
emcc hello.c -o hello.js
|
|
52
|
+
emcc hello.c -o hello.js # runnable in the wasm realm
|
|
39
53
|
emcmake cmake -S . -B build
|
|
40
54
|
emconfigure ./configure --host=wasm32-unknown-emscripten
|
|
41
55
|
```
|
package/bin/em++
CHANGED
|
@@ -1,11 +1,25 @@
|
|
|
1
1
|
#!/bin/sh
|
|
2
2
|
# Shared launcher for emcc/em++/emar/… — runs em*.py on wasix-python (-S).
|
|
3
|
+
# Self-sufficient when invoked by path (emcmake toolchain uses $PKG/emcc).
|
|
3
4
|
set -eu
|
|
4
5
|
|
|
5
6
|
TOOL=$(basename "$0")
|
|
6
7
|
BINDIR=$(CDPATH= cd -- "$(dirname "$0")" && pwd)
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
|
|
9
|
+
# $PKG/emcc (cmake / path_from_root) → package root is BINDIR.
|
|
10
|
+
# $PKG/bin/emcc (slicc.commands) → package root is parent.
|
|
11
|
+
if [ -f "$BINDIR/emcc.py" ]; then
|
|
12
|
+
PKG_ROOT=$BINDIR
|
|
13
|
+
ENSURE_CACHE=$BINDIR/bin/em-ensure-cache
|
|
14
|
+
elif [ -f "$BINDIR/../emcc.py" ]; then
|
|
15
|
+
PKG_ROOT=$(CDPATH= cd -- "$BINDIR/.." && pwd)
|
|
16
|
+
ENSURE_CACHE=$BINDIR/em-ensure-cache
|
|
17
|
+
else
|
|
18
|
+
PKG_ROOT=${EM_PACKAGE_ROOT:-$BINDIR}
|
|
19
|
+
ENSURE_CACHE=$BINDIR/em-ensure-cache
|
|
20
|
+
fi
|
|
21
|
+
|
|
22
|
+
export EM_PACKAGE_ROOT=${EM_PACKAGE_ROOT:-$PKG_ROOT}
|
|
9
23
|
export EM_CONFIG=${EM_CONFIG:-$PKG_ROOT/emscripten-config}
|
|
10
24
|
|
|
11
25
|
# Resolve companion packages when slicc.env did not set them.
|
|
@@ -15,12 +29,17 @@ export EM_CONFIG=${EM_CONFIG:-$PKG_ROOT/emscripten-config}
|
|
|
15
29
|
export EM_CACHE_PACKAGE EM_LLVM_PACKAGE EM_BINARYEN_PACKAGE
|
|
16
30
|
|
|
17
31
|
# Writable user CACHE + sysroot symlink into emscripten-cache.
|
|
18
|
-
|
|
32
|
+
if [ ! -x "$ENSURE_CACHE" ]; then
|
|
33
|
+
echo "em-launcher: missing $ENSURE_CACHE" >&2
|
|
34
|
+
exit 1
|
|
35
|
+
fi
|
|
36
|
+
CACHE=$("$ENSURE_CACHE")
|
|
19
37
|
export EM_CACHE=$CACHE
|
|
20
38
|
|
|
21
|
-
#
|
|
22
|
-
|
|
23
|
-
export SLICC_VFS_PRE_JS
|
|
39
|
+
# libslicc objects for default executable links (link.py); not the node-realm VFS pre-js.
|
|
40
|
+
export SLICC_EM_LIBDIR=${SLICC_EM_LIBDIR:-$PKG_ROOT/lib/slicc}
|
|
41
|
+
# Do NOT default-export SLICC_VFS_PRE_JS — that pre-js reads process.env.SLICC_LIVE_FS
|
|
42
|
+
# (node-realm only) and breaks wasm-realm runnables. Opt in explicitly if needed.
|
|
24
43
|
|
|
25
44
|
PY=${EMSDK_PYTHON:-}
|
|
26
45
|
if [ -z "$PY" ]; then
|
|
@@ -36,7 +55,6 @@ fi
|
|
|
36
55
|
|
|
37
56
|
SCRIPT=$PKG_ROOT/${TOOL}.py
|
|
38
57
|
if [ ! -f "$SCRIPT" ]; then
|
|
39
|
-
# emranlib → emranlib.py; emcmake → emcmake.py; etc.
|
|
40
58
|
case $TOOL in
|
|
41
59
|
em++) SCRIPT=$PKG_ROOT/em++.py ;;
|
|
42
60
|
esac
|
package/bin/em-config
CHANGED
|
@@ -1,11 +1,25 @@
|
|
|
1
1
|
#!/bin/sh
|
|
2
2
|
# Shared launcher for emcc/em++/emar/… — runs em*.py on wasix-python (-S).
|
|
3
|
+
# Self-sufficient when invoked by path (emcmake toolchain uses $PKG/emcc).
|
|
3
4
|
set -eu
|
|
4
5
|
|
|
5
6
|
TOOL=$(basename "$0")
|
|
6
7
|
BINDIR=$(CDPATH= cd -- "$(dirname "$0")" && pwd)
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
|
|
9
|
+
# $PKG/emcc (cmake / path_from_root) → package root is BINDIR.
|
|
10
|
+
# $PKG/bin/emcc (slicc.commands) → package root is parent.
|
|
11
|
+
if [ -f "$BINDIR/emcc.py" ]; then
|
|
12
|
+
PKG_ROOT=$BINDIR
|
|
13
|
+
ENSURE_CACHE=$BINDIR/bin/em-ensure-cache
|
|
14
|
+
elif [ -f "$BINDIR/../emcc.py" ]; then
|
|
15
|
+
PKG_ROOT=$(CDPATH= cd -- "$BINDIR/.." && pwd)
|
|
16
|
+
ENSURE_CACHE=$BINDIR/em-ensure-cache
|
|
17
|
+
else
|
|
18
|
+
PKG_ROOT=${EM_PACKAGE_ROOT:-$BINDIR}
|
|
19
|
+
ENSURE_CACHE=$BINDIR/em-ensure-cache
|
|
20
|
+
fi
|
|
21
|
+
|
|
22
|
+
export EM_PACKAGE_ROOT=${EM_PACKAGE_ROOT:-$PKG_ROOT}
|
|
9
23
|
export EM_CONFIG=${EM_CONFIG:-$PKG_ROOT/emscripten-config}
|
|
10
24
|
|
|
11
25
|
# Resolve companion packages when slicc.env did not set them.
|
|
@@ -15,12 +29,17 @@ export EM_CONFIG=${EM_CONFIG:-$PKG_ROOT/emscripten-config}
|
|
|
15
29
|
export EM_CACHE_PACKAGE EM_LLVM_PACKAGE EM_BINARYEN_PACKAGE
|
|
16
30
|
|
|
17
31
|
# Writable user CACHE + sysroot symlink into emscripten-cache.
|
|
18
|
-
|
|
32
|
+
if [ ! -x "$ENSURE_CACHE" ]; then
|
|
33
|
+
echo "em-launcher: missing $ENSURE_CACHE" >&2
|
|
34
|
+
exit 1
|
|
35
|
+
fi
|
|
36
|
+
CACHE=$("$ENSURE_CACHE")
|
|
19
37
|
export EM_CACHE=$CACHE
|
|
20
38
|
|
|
21
|
-
#
|
|
22
|
-
|
|
23
|
-
export SLICC_VFS_PRE_JS
|
|
39
|
+
# libslicc objects for default executable links (link.py); not the node-realm VFS pre-js.
|
|
40
|
+
export SLICC_EM_LIBDIR=${SLICC_EM_LIBDIR:-$PKG_ROOT/lib/slicc}
|
|
41
|
+
# Do NOT default-export SLICC_VFS_PRE_JS — that pre-js reads process.env.SLICC_LIVE_FS
|
|
42
|
+
# (node-realm only) and breaks wasm-realm runnables. Opt in explicitly if needed.
|
|
24
43
|
|
|
25
44
|
PY=${EMSDK_PYTHON:-}
|
|
26
45
|
if [ -z "$PY" ]; then
|
|
@@ -36,7 +55,6 @@ fi
|
|
|
36
55
|
|
|
37
56
|
SCRIPT=$PKG_ROOT/${TOOL}.py
|
|
38
57
|
if [ ! -f "$SCRIPT" ]; then
|
|
39
|
-
# emranlib → emranlib.py; emcmake → emcmake.py; etc.
|
|
40
58
|
case $TOOL in
|
|
41
59
|
em++) SCRIPT=$PKG_ROOT/em++.py ;;
|
|
42
60
|
esac
|
package/bin/emar
CHANGED
|
@@ -1,11 +1,25 @@
|
|
|
1
1
|
#!/bin/sh
|
|
2
2
|
# Shared launcher for emcc/em++/emar/… — runs em*.py on wasix-python (-S).
|
|
3
|
+
# Self-sufficient when invoked by path (emcmake toolchain uses $PKG/emcc).
|
|
3
4
|
set -eu
|
|
4
5
|
|
|
5
6
|
TOOL=$(basename "$0")
|
|
6
7
|
BINDIR=$(CDPATH= cd -- "$(dirname "$0")" && pwd)
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
|
|
9
|
+
# $PKG/emcc (cmake / path_from_root) → package root is BINDIR.
|
|
10
|
+
# $PKG/bin/emcc (slicc.commands) → package root is parent.
|
|
11
|
+
if [ -f "$BINDIR/emcc.py" ]; then
|
|
12
|
+
PKG_ROOT=$BINDIR
|
|
13
|
+
ENSURE_CACHE=$BINDIR/bin/em-ensure-cache
|
|
14
|
+
elif [ -f "$BINDIR/../emcc.py" ]; then
|
|
15
|
+
PKG_ROOT=$(CDPATH= cd -- "$BINDIR/.." && pwd)
|
|
16
|
+
ENSURE_CACHE=$BINDIR/em-ensure-cache
|
|
17
|
+
else
|
|
18
|
+
PKG_ROOT=${EM_PACKAGE_ROOT:-$BINDIR}
|
|
19
|
+
ENSURE_CACHE=$BINDIR/em-ensure-cache
|
|
20
|
+
fi
|
|
21
|
+
|
|
22
|
+
export EM_PACKAGE_ROOT=${EM_PACKAGE_ROOT:-$PKG_ROOT}
|
|
9
23
|
export EM_CONFIG=${EM_CONFIG:-$PKG_ROOT/emscripten-config}
|
|
10
24
|
|
|
11
25
|
# Resolve companion packages when slicc.env did not set them.
|
|
@@ -15,12 +29,17 @@ export EM_CONFIG=${EM_CONFIG:-$PKG_ROOT/emscripten-config}
|
|
|
15
29
|
export EM_CACHE_PACKAGE EM_LLVM_PACKAGE EM_BINARYEN_PACKAGE
|
|
16
30
|
|
|
17
31
|
# Writable user CACHE + sysroot symlink into emscripten-cache.
|
|
18
|
-
|
|
32
|
+
if [ ! -x "$ENSURE_CACHE" ]; then
|
|
33
|
+
echo "em-launcher: missing $ENSURE_CACHE" >&2
|
|
34
|
+
exit 1
|
|
35
|
+
fi
|
|
36
|
+
CACHE=$("$ENSURE_CACHE")
|
|
19
37
|
export EM_CACHE=$CACHE
|
|
20
38
|
|
|
21
|
-
#
|
|
22
|
-
|
|
23
|
-
export SLICC_VFS_PRE_JS
|
|
39
|
+
# libslicc objects for default executable links (link.py); not the node-realm VFS pre-js.
|
|
40
|
+
export SLICC_EM_LIBDIR=${SLICC_EM_LIBDIR:-$PKG_ROOT/lib/slicc}
|
|
41
|
+
# Do NOT default-export SLICC_VFS_PRE_JS — that pre-js reads process.env.SLICC_LIVE_FS
|
|
42
|
+
# (node-realm only) and breaks wasm-realm runnables. Opt in explicitly if needed.
|
|
24
43
|
|
|
25
44
|
PY=${EMSDK_PYTHON:-}
|
|
26
45
|
if [ -z "$PY" ]; then
|
|
@@ -36,7 +55,6 @@ fi
|
|
|
36
55
|
|
|
37
56
|
SCRIPT=$PKG_ROOT/${TOOL}.py
|
|
38
57
|
if [ ! -f "$SCRIPT" ]; then
|
|
39
|
-
# emranlib → emranlib.py; emcmake → emcmake.py; etc.
|
|
40
58
|
case $TOOL in
|
|
41
59
|
em++) SCRIPT=$PKG_ROOT/em++.py ;;
|
|
42
60
|
esac
|
package/bin/embuilder
CHANGED
|
@@ -1,11 +1,25 @@
|
|
|
1
1
|
#!/bin/sh
|
|
2
2
|
# Shared launcher for emcc/em++/emar/… — runs em*.py on wasix-python (-S).
|
|
3
|
+
# Self-sufficient when invoked by path (emcmake toolchain uses $PKG/emcc).
|
|
3
4
|
set -eu
|
|
4
5
|
|
|
5
6
|
TOOL=$(basename "$0")
|
|
6
7
|
BINDIR=$(CDPATH= cd -- "$(dirname "$0")" && pwd)
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
|
|
9
|
+
# $PKG/emcc (cmake / path_from_root) → package root is BINDIR.
|
|
10
|
+
# $PKG/bin/emcc (slicc.commands) → package root is parent.
|
|
11
|
+
if [ -f "$BINDIR/emcc.py" ]; then
|
|
12
|
+
PKG_ROOT=$BINDIR
|
|
13
|
+
ENSURE_CACHE=$BINDIR/bin/em-ensure-cache
|
|
14
|
+
elif [ -f "$BINDIR/../emcc.py" ]; then
|
|
15
|
+
PKG_ROOT=$(CDPATH= cd -- "$BINDIR/.." && pwd)
|
|
16
|
+
ENSURE_CACHE=$BINDIR/em-ensure-cache
|
|
17
|
+
else
|
|
18
|
+
PKG_ROOT=${EM_PACKAGE_ROOT:-$BINDIR}
|
|
19
|
+
ENSURE_CACHE=$BINDIR/em-ensure-cache
|
|
20
|
+
fi
|
|
21
|
+
|
|
22
|
+
export EM_PACKAGE_ROOT=${EM_PACKAGE_ROOT:-$PKG_ROOT}
|
|
9
23
|
export EM_CONFIG=${EM_CONFIG:-$PKG_ROOT/emscripten-config}
|
|
10
24
|
|
|
11
25
|
# Resolve companion packages when slicc.env did not set them.
|
|
@@ -15,12 +29,17 @@ export EM_CONFIG=${EM_CONFIG:-$PKG_ROOT/emscripten-config}
|
|
|
15
29
|
export EM_CACHE_PACKAGE EM_LLVM_PACKAGE EM_BINARYEN_PACKAGE
|
|
16
30
|
|
|
17
31
|
# Writable user CACHE + sysroot symlink into emscripten-cache.
|
|
18
|
-
|
|
32
|
+
if [ ! -x "$ENSURE_CACHE" ]; then
|
|
33
|
+
echo "em-launcher: missing $ENSURE_CACHE" >&2
|
|
34
|
+
exit 1
|
|
35
|
+
fi
|
|
36
|
+
CACHE=$("$ENSURE_CACHE")
|
|
19
37
|
export EM_CACHE=$CACHE
|
|
20
38
|
|
|
21
|
-
#
|
|
22
|
-
|
|
23
|
-
export SLICC_VFS_PRE_JS
|
|
39
|
+
# libslicc objects for default executable links (link.py); not the node-realm VFS pre-js.
|
|
40
|
+
export SLICC_EM_LIBDIR=${SLICC_EM_LIBDIR:-$PKG_ROOT/lib/slicc}
|
|
41
|
+
# Do NOT default-export SLICC_VFS_PRE_JS — that pre-js reads process.env.SLICC_LIVE_FS
|
|
42
|
+
# (node-realm only) and breaks wasm-realm runnables. Opt in explicitly if needed.
|
|
24
43
|
|
|
25
44
|
PY=${EMSDK_PYTHON:-}
|
|
26
45
|
if [ -z "$PY" ]; then
|
|
@@ -36,7 +55,6 @@ fi
|
|
|
36
55
|
|
|
37
56
|
SCRIPT=$PKG_ROOT/${TOOL}.py
|
|
38
57
|
if [ ! -f "$SCRIPT" ]; then
|
|
39
|
-
# emranlib → emranlib.py; emcmake → emcmake.py; etc.
|
|
40
58
|
case $TOOL in
|
|
41
59
|
em++) SCRIPT=$PKG_ROOT/em++.py ;;
|
|
42
60
|
esac
|
package/bin/emcc
CHANGED
|
@@ -1,11 +1,25 @@
|
|
|
1
1
|
#!/bin/sh
|
|
2
2
|
# Shared launcher for emcc/em++/emar/… — runs em*.py on wasix-python (-S).
|
|
3
|
+
# Self-sufficient when invoked by path (emcmake toolchain uses $PKG/emcc).
|
|
3
4
|
set -eu
|
|
4
5
|
|
|
5
6
|
TOOL=$(basename "$0")
|
|
6
7
|
BINDIR=$(CDPATH= cd -- "$(dirname "$0")" && pwd)
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
|
|
9
|
+
# $PKG/emcc (cmake / path_from_root) → package root is BINDIR.
|
|
10
|
+
# $PKG/bin/emcc (slicc.commands) → package root is parent.
|
|
11
|
+
if [ -f "$BINDIR/emcc.py" ]; then
|
|
12
|
+
PKG_ROOT=$BINDIR
|
|
13
|
+
ENSURE_CACHE=$BINDIR/bin/em-ensure-cache
|
|
14
|
+
elif [ -f "$BINDIR/../emcc.py" ]; then
|
|
15
|
+
PKG_ROOT=$(CDPATH= cd -- "$BINDIR/.." && pwd)
|
|
16
|
+
ENSURE_CACHE=$BINDIR/em-ensure-cache
|
|
17
|
+
else
|
|
18
|
+
PKG_ROOT=${EM_PACKAGE_ROOT:-$BINDIR}
|
|
19
|
+
ENSURE_CACHE=$BINDIR/em-ensure-cache
|
|
20
|
+
fi
|
|
21
|
+
|
|
22
|
+
export EM_PACKAGE_ROOT=${EM_PACKAGE_ROOT:-$PKG_ROOT}
|
|
9
23
|
export EM_CONFIG=${EM_CONFIG:-$PKG_ROOT/emscripten-config}
|
|
10
24
|
|
|
11
25
|
# Resolve companion packages when slicc.env did not set them.
|
|
@@ -15,12 +29,17 @@ export EM_CONFIG=${EM_CONFIG:-$PKG_ROOT/emscripten-config}
|
|
|
15
29
|
export EM_CACHE_PACKAGE EM_LLVM_PACKAGE EM_BINARYEN_PACKAGE
|
|
16
30
|
|
|
17
31
|
# Writable user CACHE + sysroot symlink into emscripten-cache.
|
|
18
|
-
|
|
32
|
+
if [ ! -x "$ENSURE_CACHE" ]; then
|
|
33
|
+
echo "em-launcher: missing $ENSURE_CACHE" >&2
|
|
34
|
+
exit 1
|
|
35
|
+
fi
|
|
36
|
+
CACHE=$("$ENSURE_CACHE")
|
|
19
37
|
export EM_CACHE=$CACHE
|
|
20
38
|
|
|
21
|
-
#
|
|
22
|
-
|
|
23
|
-
export SLICC_VFS_PRE_JS
|
|
39
|
+
# libslicc objects for default executable links (link.py); not the node-realm VFS pre-js.
|
|
40
|
+
export SLICC_EM_LIBDIR=${SLICC_EM_LIBDIR:-$PKG_ROOT/lib/slicc}
|
|
41
|
+
# Do NOT default-export SLICC_VFS_PRE_JS — that pre-js reads process.env.SLICC_LIVE_FS
|
|
42
|
+
# (node-realm only) and breaks wasm-realm runnables. Opt in explicitly if needed.
|
|
24
43
|
|
|
25
44
|
PY=${EMSDK_PYTHON:-}
|
|
26
45
|
if [ -z "$PY" ]; then
|
|
@@ -36,7 +55,6 @@ fi
|
|
|
36
55
|
|
|
37
56
|
SCRIPT=$PKG_ROOT/${TOOL}.py
|
|
38
57
|
if [ ! -f "$SCRIPT" ]; then
|
|
39
|
-
# emranlib → emranlib.py; emcmake → emcmake.py; etc.
|
|
40
58
|
case $TOOL in
|
|
41
59
|
em++) SCRIPT=$PKG_ROOT/em++.py ;;
|
|
42
60
|
esac
|
package/bin/emcmake
CHANGED
|
@@ -1,11 +1,25 @@
|
|
|
1
1
|
#!/bin/sh
|
|
2
2
|
# Shared launcher for emcc/em++/emar/… — runs em*.py on wasix-python (-S).
|
|
3
|
+
# Self-sufficient when invoked by path (emcmake toolchain uses $PKG/emcc).
|
|
3
4
|
set -eu
|
|
4
5
|
|
|
5
6
|
TOOL=$(basename "$0")
|
|
6
7
|
BINDIR=$(CDPATH= cd -- "$(dirname "$0")" && pwd)
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
|
|
9
|
+
# $PKG/emcc (cmake / path_from_root) → package root is BINDIR.
|
|
10
|
+
# $PKG/bin/emcc (slicc.commands) → package root is parent.
|
|
11
|
+
if [ -f "$BINDIR/emcc.py" ]; then
|
|
12
|
+
PKG_ROOT=$BINDIR
|
|
13
|
+
ENSURE_CACHE=$BINDIR/bin/em-ensure-cache
|
|
14
|
+
elif [ -f "$BINDIR/../emcc.py" ]; then
|
|
15
|
+
PKG_ROOT=$(CDPATH= cd -- "$BINDIR/.." && pwd)
|
|
16
|
+
ENSURE_CACHE=$BINDIR/em-ensure-cache
|
|
17
|
+
else
|
|
18
|
+
PKG_ROOT=${EM_PACKAGE_ROOT:-$BINDIR}
|
|
19
|
+
ENSURE_CACHE=$BINDIR/em-ensure-cache
|
|
20
|
+
fi
|
|
21
|
+
|
|
22
|
+
export EM_PACKAGE_ROOT=${EM_PACKAGE_ROOT:-$PKG_ROOT}
|
|
9
23
|
export EM_CONFIG=${EM_CONFIG:-$PKG_ROOT/emscripten-config}
|
|
10
24
|
|
|
11
25
|
# Resolve companion packages when slicc.env did not set them.
|
|
@@ -15,12 +29,17 @@ export EM_CONFIG=${EM_CONFIG:-$PKG_ROOT/emscripten-config}
|
|
|
15
29
|
export EM_CACHE_PACKAGE EM_LLVM_PACKAGE EM_BINARYEN_PACKAGE
|
|
16
30
|
|
|
17
31
|
# Writable user CACHE + sysroot symlink into emscripten-cache.
|
|
18
|
-
|
|
32
|
+
if [ ! -x "$ENSURE_CACHE" ]; then
|
|
33
|
+
echo "em-launcher: missing $ENSURE_CACHE" >&2
|
|
34
|
+
exit 1
|
|
35
|
+
fi
|
|
36
|
+
CACHE=$("$ENSURE_CACHE")
|
|
19
37
|
export EM_CACHE=$CACHE
|
|
20
38
|
|
|
21
|
-
#
|
|
22
|
-
|
|
23
|
-
export SLICC_VFS_PRE_JS
|
|
39
|
+
# libslicc objects for default executable links (link.py); not the node-realm VFS pre-js.
|
|
40
|
+
export SLICC_EM_LIBDIR=${SLICC_EM_LIBDIR:-$PKG_ROOT/lib/slicc}
|
|
41
|
+
# Do NOT default-export SLICC_VFS_PRE_JS — that pre-js reads process.env.SLICC_LIVE_FS
|
|
42
|
+
# (node-realm only) and breaks wasm-realm runnables. Opt in explicitly if needed.
|
|
24
43
|
|
|
25
44
|
PY=${EMSDK_PYTHON:-}
|
|
26
45
|
if [ -z "$PY" ]; then
|
|
@@ -36,7 +55,6 @@ fi
|
|
|
36
55
|
|
|
37
56
|
SCRIPT=$PKG_ROOT/${TOOL}.py
|
|
38
57
|
if [ ! -f "$SCRIPT" ]; then
|
|
39
|
-
# emranlib → emranlib.py; emcmake → emcmake.py; etc.
|
|
40
58
|
case $TOOL in
|
|
41
59
|
em++) SCRIPT=$PKG_ROOT/em++.py ;;
|
|
42
60
|
esac
|
package/bin/emconfigure
CHANGED
|
@@ -1,11 +1,25 @@
|
|
|
1
1
|
#!/bin/sh
|
|
2
2
|
# Shared launcher for emcc/em++/emar/… — runs em*.py on wasix-python (-S).
|
|
3
|
+
# Self-sufficient when invoked by path (emcmake toolchain uses $PKG/emcc).
|
|
3
4
|
set -eu
|
|
4
5
|
|
|
5
6
|
TOOL=$(basename "$0")
|
|
6
7
|
BINDIR=$(CDPATH= cd -- "$(dirname "$0")" && pwd)
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
|
|
9
|
+
# $PKG/emcc (cmake / path_from_root) → package root is BINDIR.
|
|
10
|
+
# $PKG/bin/emcc (slicc.commands) → package root is parent.
|
|
11
|
+
if [ -f "$BINDIR/emcc.py" ]; then
|
|
12
|
+
PKG_ROOT=$BINDIR
|
|
13
|
+
ENSURE_CACHE=$BINDIR/bin/em-ensure-cache
|
|
14
|
+
elif [ -f "$BINDIR/../emcc.py" ]; then
|
|
15
|
+
PKG_ROOT=$(CDPATH= cd -- "$BINDIR/.." && pwd)
|
|
16
|
+
ENSURE_CACHE=$BINDIR/em-ensure-cache
|
|
17
|
+
else
|
|
18
|
+
PKG_ROOT=${EM_PACKAGE_ROOT:-$BINDIR}
|
|
19
|
+
ENSURE_CACHE=$BINDIR/em-ensure-cache
|
|
20
|
+
fi
|
|
21
|
+
|
|
22
|
+
export EM_PACKAGE_ROOT=${EM_PACKAGE_ROOT:-$PKG_ROOT}
|
|
9
23
|
export EM_CONFIG=${EM_CONFIG:-$PKG_ROOT/emscripten-config}
|
|
10
24
|
|
|
11
25
|
# Resolve companion packages when slicc.env did not set them.
|
|
@@ -15,12 +29,17 @@ export EM_CONFIG=${EM_CONFIG:-$PKG_ROOT/emscripten-config}
|
|
|
15
29
|
export EM_CACHE_PACKAGE EM_LLVM_PACKAGE EM_BINARYEN_PACKAGE
|
|
16
30
|
|
|
17
31
|
# Writable user CACHE + sysroot symlink into emscripten-cache.
|
|
18
|
-
|
|
32
|
+
if [ ! -x "$ENSURE_CACHE" ]; then
|
|
33
|
+
echo "em-launcher: missing $ENSURE_CACHE" >&2
|
|
34
|
+
exit 1
|
|
35
|
+
fi
|
|
36
|
+
CACHE=$("$ENSURE_CACHE")
|
|
19
37
|
export EM_CACHE=$CACHE
|
|
20
38
|
|
|
21
|
-
#
|
|
22
|
-
|
|
23
|
-
export SLICC_VFS_PRE_JS
|
|
39
|
+
# libslicc objects for default executable links (link.py); not the node-realm VFS pre-js.
|
|
40
|
+
export SLICC_EM_LIBDIR=${SLICC_EM_LIBDIR:-$PKG_ROOT/lib/slicc}
|
|
41
|
+
# Do NOT default-export SLICC_VFS_PRE_JS — that pre-js reads process.env.SLICC_LIVE_FS
|
|
42
|
+
# (node-realm only) and breaks wasm-realm runnables. Opt in explicitly if needed.
|
|
24
43
|
|
|
25
44
|
PY=${EMSDK_PYTHON:-}
|
|
26
45
|
if [ -z "$PY" ]; then
|
|
@@ -36,7 +55,6 @@ fi
|
|
|
36
55
|
|
|
37
56
|
SCRIPT=$PKG_ROOT/${TOOL}.py
|
|
38
57
|
if [ ! -f "$SCRIPT" ]; then
|
|
39
|
-
# emranlib → emranlib.py; emcmake → emcmake.py; etc.
|
|
40
58
|
case $TOOL in
|
|
41
59
|
em++) SCRIPT=$PKG_ROOT/em++.py ;;
|
|
42
60
|
esac
|
package/bin/emmake
CHANGED
|
@@ -1,11 +1,25 @@
|
|
|
1
1
|
#!/bin/sh
|
|
2
2
|
# Shared launcher for emcc/em++/emar/… — runs em*.py on wasix-python (-S).
|
|
3
|
+
# Self-sufficient when invoked by path (emcmake toolchain uses $PKG/emcc).
|
|
3
4
|
set -eu
|
|
4
5
|
|
|
5
6
|
TOOL=$(basename "$0")
|
|
6
7
|
BINDIR=$(CDPATH= cd -- "$(dirname "$0")" && pwd)
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
|
|
9
|
+
# $PKG/emcc (cmake / path_from_root) → package root is BINDIR.
|
|
10
|
+
# $PKG/bin/emcc (slicc.commands) → package root is parent.
|
|
11
|
+
if [ -f "$BINDIR/emcc.py" ]; then
|
|
12
|
+
PKG_ROOT=$BINDIR
|
|
13
|
+
ENSURE_CACHE=$BINDIR/bin/em-ensure-cache
|
|
14
|
+
elif [ -f "$BINDIR/../emcc.py" ]; then
|
|
15
|
+
PKG_ROOT=$(CDPATH= cd -- "$BINDIR/.." && pwd)
|
|
16
|
+
ENSURE_CACHE=$BINDIR/em-ensure-cache
|
|
17
|
+
else
|
|
18
|
+
PKG_ROOT=${EM_PACKAGE_ROOT:-$BINDIR}
|
|
19
|
+
ENSURE_CACHE=$BINDIR/em-ensure-cache
|
|
20
|
+
fi
|
|
21
|
+
|
|
22
|
+
export EM_PACKAGE_ROOT=${EM_PACKAGE_ROOT:-$PKG_ROOT}
|
|
9
23
|
export EM_CONFIG=${EM_CONFIG:-$PKG_ROOT/emscripten-config}
|
|
10
24
|
|
|
11
25
|
# Resolve companion packages when slicc.env did not set them.
|
|
@@ -15,12 +29,17 @@ export EM_CONFIG=${EM_CONFIG:-$PKG_ROOT/emscripten-config}
|
|
|
15
29
|
export EM_CACHE_PACKAGE EM_LLVM_PACKAGE EM_BINARYEN_PACKAGE
|
|
16
30
|
|
|
17
31
|
# Writable user CACHE + sysroot symlink into emscripten-cache.
|
|
18
|
-
|
|
32
|
+
if [ ! -x "$ENSURE_CACHE" ]; then
|
|
33
|
+
echo "em-launcher: missing $ENSURE_CACHE" >&2
|
|
34
|
+
exit 1
|
|
35
|
+
fi
|
|
36
|
+
CACHE=$("$ENSURE_CACHE")
|
|
19
37
|
export EM_CACHE=$CACHE
|
|
20
38
|
|
|
21
|
-
#
|
|
22
|
-
|
|
23
|
-
export SLICC_VFS_PRE_JS
|
|
39
|
+
# libslicc objects for default executable links (link.py); not the node-realm VFS pre-js.
|
|
40
|
+
export SLICC_EM_LIBDIR=${SLICC_EM_LIBDIR:-$PKG_ROOT/lib/slicc}
|
|
41
|
+
# Do NOT default-export SLICC_VFS_PRE_JS — that pre-js reads process.env.SLICC_LIVE_FS
|
|
42
|
+
# (node-realm only) and breaks wasm-realm runnables. Opt in explicitly if needed.
|
|
24
43
|
|
|
25
44
|
PY=${EMSDK_PYTHON:-}
|
|
26
45
|
if [ -z "$PY" ]; then
|
|
@@ -36,7 +55,6 @@ fi
|
|
|
36
55
|
|
|
37
56
|
SCRIPT=$PKG_ROOT/${TOOL}.py
|
|
38
57
|
if [ ! -f "$SCRIPT" ]; then
|
|
39
|
-
# emranlib → emranlib.py; emcmake → emcmake.py; etc.
|
|
40
58
|
case $TOOL in
|
|
41
59
|
em++) SCRIPT=$PKG_ROOT/em++.py ;;
|
|
42
60
|
esac
|
package/bin/emranlib
CHANGED
|
@@ -1,11 +1,25 @@
|
|
|
1
1
|
#!/bin/sh
|
|
2
2
|
# Shared launcher for emcc/em++/emar/… — runs em*.py on wasix-python (-S).
|
|
3
|
+
# Self-sufficient when invoked by path (emcmake toolchain uses $PKG/emcc).
|
|
3
4
|
set -eu
|
|
4
5
|
|
|
5
6
|
TOOL=$(basename "$0")
|
|
6
7
|
BINDIR=$(CDPATH= cd -- "$(dirname "$0")" && pwd)
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
|
|
9
|
+
# $PKG/emcc (cmake / path_from_root) → package root is BINDIR.
|
|
10
|
+
# $PKG/bin/emcc (slicc.commands) → package root is parent.
|
|
11
|
+
if [ -f "$BINDIR/emcc.py" ]; then
|
|
12
|
+
PKG_ROOT=$BINDIR
|
|
13
|
+
ENSURE_CACHE=$BINDIR/bin/em-ensure-cache
|
|
14
|
+
elif [ -f "$BINDIR/../emcc.py" ]; then
|
|
15
|
+
PKG_ROOT=$(CDPATH= cd -- "$BINDIR/.." && pwd)
|
|
16
|
+
ENSURE_CACHE=$BINDIR/em-ensure-cache
|
|
17
|
+
else
|
|
18
|
+
PKG_ROOT=${EM_PACKAGE_ROOT:-$BINDIR}
|
|
19
|
+
ENSURE_CACHE=$BINDIR/em-ensure-cache
|
|
20
|
+
fi
|
|
21
|
+
|
|
22
|
+
export EM_PACKAGE_ROOT=${EM_PACKAGE_ROOT:-$PKG_ROOT}
|
|
9
23
|
export EM_CONFIG=${EM_CONFIG:-$PKG_ROOT/emscripten-config}
|
|
10
24
|
|
|
11
25
|
# Resolve companion packages when slicc.env did not set them.
|
|
@@ -15,12 +29,17 @@ export EM_CONFIG=${EM_CONFIG:-$PKG_ROOT/emscripten-config}
|
|
|
15
29
|
export EM_CACHE_PACKAGE EM_LLVM_PACKAGE EM_BINARYEN_PACKAGE
|
|
16
30
|
|
|
17
31
|
# Writable user CACHE + sysroot symlink into emscripten-cache.
|
|
18
|
-
|
|
32
|
+
if [ ! -x "$ENSURE_CACHE" ]; then
|
|
33
|
+
echo "em-launcher: missing $ENSURE_CACHE" >&2
|
|
34
|
+
exit 1
|
|
35
|
+
fi
|
|
36
|
+
CACHE=$("$ENSURE_CACHE")
|
|
19
37
|
export EM_CACHE=$CACHE
|
|
20
38
|
|
|
21
|
-
#
|
|
22
|
-
|
|
23
|
-
export SLICC_VFS_PRE_JS
|
|
39
|
+
# libslicc objects for default executable links (link.py); not the node-realm VFS pre-js.
|
|
40
|
+
export SLICC_EM_LIBDIR=${SLICC_EM_LIBDIR:-$PKG_ROOT/lib/slicc}
|
|
41
|
+
# Do NOT default-export SLICC_VFS_PRE_JS — that pre-js reads process.env.SLICC_LIVE_FS
|
|
42
|
+
# (node-realm only) and breaks wasm-realm runnables. Opt in explicitly if needed.
|
|
24
43
|
|
|
25
44
|
PY=${EMSDK_PYTHON:-}
|
|
26
45
|
if [ -z "$PY" ]; then
|
|
@@ -36,7 +55,6 @@ fi
|
|
|
36
55
|
|
|
37
56
|
SCRIPT=$PKG_ROOT/${TOOL}.py
|
|
38
57
|
if [ ! -f "$SCRIPT" ]; then
|
|
39
|
-
# emranlib → emranlib.py; emcmake → emcmake.py; etc.
|
|
40
58
|
case $TOOL in
|
|
41
59
|
em++) SCRIPT=$PKG_ROOT/em++.py ;;
|
|
42
60
|
esac
|
package/bin/emscan-deps
CHANGED
|
@@ -1,11 +1,25 @@
|
|
|
1
1
|
#!/bin/sh
|
|
2
2
|
# Shared launcher for emcc/em++/emar/… — runs em*.py on wasix-python (-S).
|
|
3
|
+
# Self-sufficient when invoked by path (emcmake toolchain uses $PKG/emcc).
|
|
3
4
|
set -eu
|
|
4
5
|
|
|
5
6
|
TOOL=$(basename "$0")
|
|
6
7
|
BINDIR=$(CDPATH= cd -- "$(dirname "$0")" && pwd)
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
|
|
9
|
+
# $PKG/emcc (cmake / path_from_root) → package root is BINDIR.
|
|
10
|
+
# $PKG/bin/emcc (slicc.commands) → package root is parent.
|
|
11
|
+
if [ -f "$BINDIR/emcc.py" ]; then
|
|
12
|
+
PKG_ROOT=$BINDIR
|
|
13
|
+
ENSURE_CACHE=$BINDIR/bin/em-ensure-cache
|
|
14
|
+
elif [ -f "$BINDIR/../emcc.py" ]; then
|
|
15
|
+
PKG_ROOT=$(CDPATH= cd -- "$BINDIR/.." && pwd)
|
|
16
|
+
ENSURE_CACHE=$BINDIR/em-ensure-cache
|
|
17
|
+
else
|
|
18
|
+
PKG_ROOT=${EM_PACKAGE_ROOT:-$BINDIR}
|
|
19
|
+
ENSURE_CACHE=$BINDIR/em-ensure-cache
|
|
20
|
+
fi
|
|
21
|
+
|
|
22
|
+
export EM_PACKAGE_ROOT=${EM_PACKAGE_ROOT:-$PKG_ROOT}
|
|
9
23
|
export EM_CONFIG=${EM_CONFIG:-$PKG_ROOT/emscripten-config}
|
|
10
24
|
|
|
11
25
|
# Resolve companion packages when slicc.env did not set them.
|
|
@@ -15,12 +29,17 @@ export EM_CONFIG=${EM_CONFIG:-$PKG_ROOT/emscripten-config}
|
|
|
15
29
|
export EM_CACHE_PACKAGE EM_LLVM_PACKAGE EM_BINARYEN_PACKAGE
|
|
16
30
|
|
|
17
31
|
# Writable user CACHE + sysroot symlink into emscripten-cache.
|
|
18
|
-
|
|
32
|
+
if [ ! -x "$ENSURE_CACHE" ]; then
|
|
33
|
+
echo "em-launcher: missing $ENSURE_CACHE" >&2
|
|
34
|
+
exit 1
|
|
35
|
+
fi
|
|
36
|
+
CACHE=$("$ENSURE_CACHE")
|
|
19
37
|
export EM_CACHE=$CACHE
|
|
20
38
|
|
|
21
|
-
#
|
|
22
|
-
|
|
23
|
-
export SLICC_VFS_PRE_JS
|
|
39
|
+
# libslicc objects for default executable links (link.py); not the node-realm VFS pre-js.
|
|
40
|
+
export SLICC_EM_LIBDIR=${SLICC_EM_LIBDIR:-$PKG_ROOT/lib/slicc}
|
|
41
|
+
# Do NOT default-export SLICC_VFS_PRE_JS — that pre-js reads process.env.SLICC_LIVE_FS
|
|
42
|
+
# (node-realm only) and breaks wasm-realm runnables. Opt in explicitly if needed.
|
|
24
43
|
|
|
25
44
|
PY=${EMSDK_PYTHON:-}
|
|
26
45
|
if [ -z "$PY" ]; then
|
|
@@ -36,7 +55,6 @@ fi
|
|
|
36
55
|
|
|
37
56
|
SCRIPT=$PKG_ROOT/${TOOL}.py
|
|
38
57
|
if [ ! -f "$SCRIPT" ]; then
|
|
39
|
-
# emranlib → emranlib.py; emcmake → emcmake.py; etc.
|
|
40
58
|
case $TOOL in
|
|
41
59
|
em++) SCRIPT=$PKG_ROOT/em++.py ;;
|
|
42
60
|
esac
|
package/emscripten-config
CHANGED
|
@@ -29,8 +29,9 @@ FROZEN_CACHE = False
|
|
|
29
29
|
# cannot reach Java.
|
|
30
30
|
# CLOSURE_COMPILER = None
|
|
31
31
|
|
|
32
|
-
#
|
|
33
|
-
|
|
32
|
+
# Default links inject homescoop_em_cli_ldflags + lib/slicc/*.o (see link.py).
|
|
33
|
+
# Do not set SLICC_VFS_PRE_JS here — that pre-js is node-realm only.
|
|
34
|
+
os.environ.setdefault('SLICC_EM_LIBDIR', str(_pkg / 'lib' / 'slicc'))
|
|
34
35
|
|
|
35
36
|
# Silence unused-import lint in some editors; keep roots discoverable.
|
|
36
37
|
_HOMESCOOP_CACHE_PKG = str(_cache_pkg)
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai-ecoverse/wasm-emscripten",
|
|
3
|
-
"version": "6.0.9-
|
|
3
|
+
"version": "6.0.9-6",
|
|
4
4
|
"description": "Emscripten 6.0.9 for slicc (emcc via wasix-python)",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -41,9 +41,13 @@
|
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
43
|
"@ai-ecoverse/wasix-python": "^3.14.2-7",
|
|
44
|
-
"@ai-ecoverse/wasm-clang": "24.0.0-
|
|
44
|
+
"@ai-ecoverse/wasm-clang": "24.0.0-9",
|
|
45
45
|
"@ai-ecoverse/wasm-binaryen": "132.0.0-1",
|
|
46
|
-
"@ai-ecoverse/emscripten-cache": "6.0.9-2"
|
|
46
|
+
"@ai-ecoverse/emscripten-cache": "6.0.9-2",
|
|
47
|
+
"esbuild-wasm": "0.28.2",
|
|
48
|
+
"typescript": "6.0.3",
|
|
49
|
+
"acorn": "^8.18.0",
|
|
50
|
+
"acorn-import-phases": "^1.0.4"
|
|
47
51
|
},
|
|
48
52
|
"slicc": {
|
|
49
53
|
"abi": "emscripten",
|
|
@@ -53,7 +57,7 @@
|
|
|
53
57
|
"EM_CACHE_PACKAGE": "/shared/lib/node_modules/@ai-ecoverse/emscripten-cache",
|
|
54
58
|
"EM_LLVM_PACKAGE": "/shared/lib/node_modules/@ai-ecoverse/wasm-clang",
|
|
55
59
|
"EM_BINARYEN_PACKAGE": "/shared/lib/node_modules/@ai-ecoverse/wasm-binaryen",
|
|
56
|
-
"
|
|
60
|
+
"SLICC_EM_LIBDIR": "${package}/lib/slicc"
|
|
57
61
|
},
|
|
58
62
|
"commands": {
|
|
59
63
|
"emcc": {
|
package/tools/link.py
CHANGED
|
@@ -848,23 +848,43 @@ def phase_linker_setup(linker_args): # ruff: ignore[complex-structure, too-many
|
|
|
848
848
|
if not shared.SKIP_SUBPROCS:
|
|
849
849
|
shared.check_llvm_version()
|
|
850
850
|
|
|
851
|
-
#
|
|
852
|
-
#
|
|
853
|
-
# whose fs has no file descriptors. The pre-js mounts slicc's live VFS into
|
|
854
|
-
# the program's FS; it does nothing outside slicc.
|
|
851
|
+
# Optional node-realm VFS pre-js (explicit SLICC_VFS_PRE_JS only — do not
|
|
852
|
+
# default this; wasm-realm programs crash on process.env.SLICC_LIVE_FS).
|
|
855
853
|
slicc_pre_js = os.environ.get('SLICC_VFS_PRE_JS')
|
|
856
854
|
if slicc_pre_js and slicc_pre_js not in options.pre_js:
|
|
857
855
|
options.pre_js.append(slicc_pre_js)
|
|
858
|
-
# The pre-js holds main until the async VFS mount is done.
|
|
859
856
|
settings.DEFAULT_LIBRARY_FUNCS_TO_INCLUDE += ['$addRunDependency', '$removeRunDependency']
|
|
860
857
|
|
|
858
|
+
# Default: homescoop_em_cli_ldflags + libslicc objects so linked programs run
|
|
859
|
+
# in the wasm realm. Opt out with SLICC_EMCC_PLAIN=1 (plain web glue).
|
|
860
|
+
# Skip for -c (never reaches here), -r, -shared / SIDE_MODULE.
|
|
861
|
+
plain = os.environ.get('SLICC_EMCC_PLAIN', '').lower() in ('1', 'true', 'yes')
|
|
862
|
+
if (not plain and not options.shared and not options.relocatable
|
|
863
|
+
and not settings.SIDE_MODULE):
|
|
864
|
+
default_setting('ENVIRONMENT', ['web', 'worker', 'node'])
|
|
865
|
+
default_setting('EXIT_RUNTIME', 1)
|
|
866
|
+
default_setting('ALLOW_MEMORY_GROWTH', 1)
|
|
867
|
+
slicc_lib = os.environ.get('SLICC_EM_LIBDIR') or utils.path_from_root('lib', 'slicc')
|
|
868
|
+
# cli profile (not main_envp — that renames main→slicc_tool_main for make).
|
|
869
|
+
# slicc_main_envp.o / slicc_fork.o are shipped under lib/slicc/ for opt-in.
|
|
870
|
+
for obj in (
|
|
871
|
+
'slicc_spawn.o',
|
|
872
|
+
'slicc_exec.o',
|
|
873
|
+
'slicc_signals.o',
|
|
874
|
+
'slicc_select.o',
|
|
875
|
+
'slicc_libc_gaps.o',
|
|
876
|
+
'slicc_jobs.o',
|
|
877
|
+
):
|
|
878
|
+
path = os.path.join(slicc_lib, obj)
|
|
879
|
+
if os.path.isfile(path) and path not in linker_args:
|
|
880
|
+
linker_args.append(path)
|
|
881
|
+
|
|
861
882
|
autoconf = os.environ.get('EMMAKEN_JUST_CONFIGURE') or 'conftest.c' in options.input_files or 'conftest.cpp' in options.input_files
|
|
862
883
|
if autoconf:
|
|
863
884
|
# configure tests want a more shell-like style, where we emit return codes on exit()
|
|
864
885
|
settings.EXIT_RUNTIME = 1
|
|
865
|
-
#
|
|
866
|
-
|
|
867
|
-
if not slicc_pre_js:
|
|
886
|
+
# Host/plain node: NODERAWFS. Wasm-realm CLI defaults use the normal FS.
|
|
887
|
+
if not slicc_pre_js and plain:
|
|
868
888
|
settings.NODERAWFS = 1
|
|
869
889
|
# Add `#!` line to output JS and make it executable.
|
|
870
890
|
settings.EXECUTABLE = config.NODE_JS[0]
|
package/tools/utils.py
CHANGED
|
@@ -67,7 +67,9 @@ def exec(cmd):
|
|
|
67
67
|
else:
|
|
68
68
|
sys.stdout.flush()
|
|
69
69
|
sys.stderr.flush()
|
|
70
|
-
|
|
70
|
+
# wasix-python: execvp keeps the process's *initial* environ; execvpe with
|
|
71
|
+
# an explicit mapping passes updates from os.environ (emconfigure CC=…).
|
|
72
|
+
os.execvpe(cmd[0], cmd, os.environ)
|
|
71
73
|
|
|
72
74
|
|
|
73
75
|
def exit_with_error(msg, *args):
|