wasm: emit debugging symbol source-map by default

This commit is contained in:
Darryl L. Miles 2026-07-20 12:04:01 +01:00 committed by R. Timothy Edwards
parent 665f65d61f
commit adf5457eca
4 changed files with 32 additions and 5 deletions

View File

@ -60,9 +60,9 @@ ifneq (${TCL_LIB_DIR},)
# the stub-bootstrap archive (-ltclstub). Both are required: magic's objects # the stub-bootstrap archive (-ltclstub). Both are required: magic's objects
# use USE_TCL_STUBS macros (resolved by tclStubsPtr from libtclstub.a), and # use USE_TCL_STUBS macros (resolved by tclStubsPtr from libtclstub.a), and
# tclStubsPtr itself must point into the real TCL implementation (libtcl9.x.a). # tclStubsPtr itself must point into the real TCL implementation (libtcl9.x.a).
${CC} ${CFLAGS} ${CPPFLAGS} ${DFLAGS} lib${MODULE}.o ${EXTRA_LIBS} -o magic.js ${LIBS} ${LIB_SPECS_NOSTUB} -L${TCL_LIB_DIR} -ltclstub ${CC} ${CFLAGS} ${CPPFLAGS} ${DFLAGS} ${LDFLAGS} lib${MODULE}.o ${EXTRA_LIBS} -o magic.js ${LIBS} ${LIB_SPECS_NOSTUB} -L${TCL_LIB_DIR} -ltclstub
else else
${CC} ${CFLAGS} ${CPPFLAGS} ${DFLAGS} lib${MODULE}.o ${EXTRA_LIBS} -o magic.js ${LIBS} ${CC} ${CFLAGS} ${CPPFLAGS} ${DFLAGS} ${LDFLAGS} lib${MODULE}.o ${EXTRA_LIBS} -o magic.js ${LIBS}
endif endif
endif endif

View File

@ -95,8 +95,21 @@ sed_strip_cr() {
if [ $OPT_RELEASE -eq 1 ]; then if [ $OPT_RELEASE -eq 1 ]; then
EXTRA_CFLAGS="-O2" EXTRA_CFLAGS="-O2"
EXTRA_LDFLAGS=""
else else
EXTRA_CFLAGS="-g" EXTRA_CFLAGS="-g"
EXTRA_LDFLAGS="-gsource-map"
# Exists to document some options maybe placement sensitive on linker command
# line and need to appear first.
# See toolchains/emscripten/defs.mak this is just picked up from the environment during make
#export TOP_FIRST_LIBS_WASM="-g3 -fsanitize=address"
# Exists to document maybe you need both these to get the intended effect
# but expect the performance hit / larger codegen at runtime when you do.
# See toolchains/emscripten/defs.mak this is just picked up from the environment during make
#EXTRA_CONFIGURE_ARGS="--enable-assertions"
#export TOP_EXTRA_LIBS_WASM="-sASSERTIONS=1" # emscripten default value: 1
fi fi
# --- TCL fork: clone and prebuild (TCL variant only) ------------------------ # --- TCL fork: clone and prebuild (TCL variant only) ------------------------
@ -163,6 +176,7 @@ build_variant() {
if [ "$variant" = "tcl" ]; then if [ "$variant" = "tcl" ]; then
ensure_tcl_built ensure_tcl_built
CFLAGS="--std=c17 -D_DEFAULT_SOURCE=1 -DEMSCRIPTEN=1 ${EXTRA_CFLAGS}" \ CFLAGS="--std=c17 -D_DEFAULT_SOURCE=1 -DEMSCRIPTEN=1 ${EXTRA_CFLAGS}" \
LDFLAGS="${EXTRA_LDFLAGS}" \
emconfigure ./configure \ emconfigure ./configure \
--without-cairo --without-opengl --without-x --without-tk \ --without-cairo --without-opengl --without-x --without-tk \
--with-tcl="$TCL_WASM_PREFIX/lib" \ --with-tcl="$TCL_WASM_PREFIX/lib" \
@ -170,19 +184,27 @@ build_variant() {
--with-tcllibs="$TCL_WASM_PREFIX/lib" \ --with-tcllibs="$TCL_WASM_PREFIX/lib" \
--disable-readline --disable-compression \ --disable-readline --disable-compression \
--host=asmjs-unknown-emscripten \ --host=asmjs-unknown-emscripten \
--target=asmjs-unknown-emscripten --target=asmjs-unknown-emscripten \
${EXTRA_CONFIGURE_ARGS:-}
else else
CFLAGS="--std=c17 -D_DEFAULT_SOURCE=1 -DEMSCRIPTEN=1 ${EXTRA_CFLAGS}" \ CFLAGS="--std=c17 -D_DEFAULT_SOURCE=1 -DEMSCRIPTEN=1 ${EXTRA_CFLAGS}" \
LDFLAGS="${EXTRA_LDFLAGS}" \
emconfigure ./configure \ emconfigure ./configure \
--without-cairo --without-opengl --without-x \ --without-cairo --without-opengl --without-x \
--without-tk --without-tcl \ --without-tk --without-tcl \
--disable-readline --disable-compression \ --disable-readline --disable-compression \
--host=asmjs-unknown-emscripten \ --host=asmjs-unknown-emscripten \
--target=asmjs-unknown-emscripten --target=asmjs-unknown-emscripten \
${EXTRA_CONFIGURE_ARGS:-}
fi fi
cat toolchains/emscripten/defs.mak >> defs.mak cat toolchains/emscripten/defs.mak >> defs.mak
#
echo "===== defs.mak ====="
cat defs.mak
echo "===== defs.mak ====="
emmake make depend emmake make depend
emmake make -j"$(ncpu)" modules libs emmake make -j"$(ncpu)" modules libs
emmake make techs emmake make techs
@ -191,6 +213,7 @@ build_variant() {
mkdir -p "$out_dir" mkdir -p "$out_dir"
cp magic/magic.js "$out_dir/" cp magic/magic.js "$out_dir/"
cp magic/magic.wasm "$out_dir/" cp magic/magic.wasm "$out_dir/"
test -f magic/magic.wasm.map && cp magic/magic.wasm.map "$out_dir/"
echo "Copied magic.js + magic.wasm into npm/$variant/" echo "Copied magic.js + magic.wasm into npm/$variant/"
} }

View File

@ -17,8 +17,10 @@
"notcl.js", "notcl.js",
"tcl/magic.js", "tcl/magic.js",
"tcl/magic.wasm", "tcl/magic.wasm",
"tcl/magic.wasm.map",
"notcl/magic.js", "notcl/magic.js",
"notcl/magic.wasm", "notcl/magic.wasm",
"notcl/magic.wasm.map",
"examples/", "examples/",
"LICENSE", "LICENSE",
"README.md" "README.md"

View File

@ -4,6 +4,7 @@
# #
# source <emsdk>/emsdk_env.sh # source <emsdk>/emsdk_env.sh
# CFLAGS="--std=c17 -D_DEFAULT_SOURCE=1 -DEMSCRIPTEN=1 -g" \ # CFLAGS="--std=c17 -D_DEFAULT_SOURCE=1 -DEMSCRIPTEN=1 -g" \
# LDFLAGS="-gsource-maps" \
# emconfigure ./configure --without-cairo --without-opengl --without-x \ # emconfigure ./configure --without-cairo --without-opengl --without-x \
# --without-tk --without-tcl \ # --without-tk --without-tcl \
# --disable-readline --disable-compression \ # --disable-readline --disable-compression \
@ -30,6 +31,7 @@ MAKE_WASM = 1
# consumers passing locateFile/arguments/etc. keep working) and re-add # consumers passing locateFile/arguments/etc. keep working) and re-add
# wasmBinary. Keep this in sync with emscripten's default if it grows. # wasmBinary. Keep this in sync with emscripten's default if it grows.
TOP_EXTRA_LIBS += \ TOP_EXTRA_LIBS += \
${TOP_FIRST_LIBS_WASM} \
-sWASM=1 \ -sWASM=1 \
-sMODULARIZE=1 \ -sMODULARIZE=1 \
-sEXPORT_ES6=1 \ -sEXPORT_ES6=1 \
@ -40,9 +42,9 @@ TOP_EXTRA_LIBS += \
-sALLOW_MEMORY_GROWTH=1 \ -sALLOW_MEMORY_GROWTH=1 \
-sINITIAL_MEMORY=67108864 \ -sINITIAL_MEMORY=67108864 \
-Wl,-z,stack-size=10485760 \ -Wl,-z,stack-size=10485760 \
-sASSERTIONS=1 \
-sENVIRONMENT=node,web,worker \ -sENVIRONMENT=node,web,worker \
-sFORCE_FILESYSTEM=1 \ -sFORCE_FILESYSTEM=1 \
${TOP_EXTRA_LIBS_WASM} \
--embed-file ../scmos@/magic/sys/current \ --embed-file ../scmos@/magic/sys/current \
--embed-file ../windows/windows7.glyphs@/magic/sys/windows7.glyphs \ --embed-file ../windows/windows7.glyphs@/magic/sys/windows7.glyphs \
--embed-file ../windows/windows7.glyphs@/magic/sys/bw.glyphs --embed-file ../windows/windows7.glyphs@/magic/sys/bw.glyphs