@@ -1091,6 +1091,12 @@ AC_ARG_WITH([emscripten-target],
1091
1091
AS_CASE ( [ $with_emscripten_target] ,
1092
1092
[ browser] , [ ac_sys_emscripten_target=browser] ,
1093
1093
[ node] , [ ac_sys_emscripten_target=node] ,
1094
+ dnl Debug builds with source map / dwarf symbols. Py_DEBUG builds easily
1095
+ dnl run out of stack space. Detached sybmols and map prohibit some
1096
+ dnl optimizations and increase file size. Options are undocumented so we
1097
+ dnl are free to remove them in the future.
1098
+ [ browser-debug] , [ ac_sys_emscripten_target=browser-debug] ,
1099
+ [ node-debug] , [ ac_sys_emscripten_target=node-debug] ,
1094
1100
[ AC_MSG_ERROR ( [ Invalid argument: --with-emscripten-target=browser|node] ) ]
1095
1101
)
1096
1102
] , [
@@ -1112,8 +1118,8 @@ AC_ARG_WITH([suffix],
1112
1118
)
1113
1119
] , [
1114
1120
AS_CASE ( [ $ac_sys_system/$ac_sys_emscripten_target] ,
1115
- [ Emscripten/browser] , [ EXEEXT=.html] ,
1116
- [ Emscripten/node] , [ EXEEXT=.js] ,
1121
+ [ Emscripten/browser* ] , [ EXEEXT=.html] ,
1122
+ [ Emscripten/node* ] , [ EXEEXT=.js] ,
1117
1123
[ WASI/*] , [ EXEEXT=.wasm] ,
1118
1124
[ EXEEXT=]
1119
1125
)
@@ -1376,7 +1382,7 @@ AC_MSG_RESULT($LDLIBRARY)
1376
1382
1377
1383
# LIBRARY_DEPS, LINK_PYTHON_OBJS and LINK_PYTHON_DEPS variable
1378
1384
AS_CASE ( [ $ac_sys_system/$ac_sys_emscripten_target] ,
1379
- [ Emscripten/browser] , [ LIBRARY_DEPS='$(PY3LIBRARY) $(WASM_STDLIB)'] ,
1385
+ [ Emscripten/browser* ] , [ LIBRARY_DEPS='$(PY3LIBRARY) $(WASM_STDLIB)'] ,
1380
1386
[ LIBRARY_DEPS='$(PY3LIBRARY) $(EXPORTSYMS)']
1381
1387
)
1382
1388
LINK_PYTHON_DEPS='$(LIBRARY_DEPS)'
@@ -1888,28 +1894,28 @@ fi
1888
1894
# The option disables code elimination, which increases code size of main
1889
1895
# binary. All objects must be built with -fPIC.
1890
1896
AS_CASE ( [ $ac_sys_system/$ac_sys_emscripten_target] ,
1891
- [ Emscripten/browser] , [
1897
+ [ Emscripten/browser* ] , [
1892
1898
LDFLAGS_NODIST="$LDFLAGS_NODIST -s ALLOW_MEMORY_GROWTH=1"
1893
1899
LINKFORSHARED="--preload-file \$(WASM_ASSETS_DIR)"
1894
1900
WASM_ASSETS_DIR=".\$(prefix)"
1895
1901
WASM_STDLIB="\$(WASM_ASSETS_DIR)/local/lib/python\$(VERSION)/os.py"
1896
1902
dnl separate-dwarf does not seem to work in Chrome DevTools Support.
1897
- if test "$Py_DEBUG" = 'true'; then
1903
+ if test "$Py_DEBUG" = 'true' -o "$ac_sys_emscripten_target" = "browser-debug" ; then
1898
1904
LDFLAGS_NODIST="$LDFLAGS_NODIST -s ASSERTIONS=1"
1899
1905
LINKFORSHARED="$LINKFORSHARED -gsource-map --emit-symbol-map"
1900
1906
else
1901
1907
LINKFORSHARED="$LINKFORSHARED -O2 -g0"
1902
1908
fi
1903
1909
] ,
1904
- [ Emscripten/node] , [
1910
+ [ Emscripten/node* ] , [
1905
1911
LDFLAGS_NODIST="$LDFLAGS_NODIST -s ALLOW_MEMORY_GROWTH=1 -s NODERAWFS=1 -s USE_PTHREADS=1"
1906
1912
LINKFORSHARED="-s PROXY_TO_PTHREAD=1 -s EXIT_RUNTIME=1"
1907
1913
CFLAGS_NODIST="$CFLAGS_NODIST -pthread"
1908
- if test "$Py_DEBUG" = 'true'; then
1914
+ if test "$Py_DEBUG" = 'true' -o "$ac_sys_emscripten_target" = "node-debug" ; then
1909
1915
LDFLAGS_NODIST="$LDFLAGS_NODIST -s ASSERTIONS=1"
1910
1916
LINKFORSHARED="$LINKFORSHARED -gseparate-dwarf --emit-symbol-map"
1911
1917
else
1912
- LINKFORSHARED="$LINKFORSHARED -O2 -gseparate-dwarf "
1918
+ LINKFORSHARED="$LINKFORSHARED -O2 -g0 "
1913
1919
fi
1914
1920
] ,
1915
1921
[ WASI/*] , [
@@ -6453,7 +6459,7 @@ if test "$enable_test_modules" = no; then
6453
6459
TEST_MODULES=no
6454
6460
else
6455
6461
AS_CASE ( [ $ac_sys_system/$ac_sys_emscripten_target] ,
6456
- [ Emscripten/browser] , [ TEST_MODULES=no] ,
6462
+ [ Emscripten/browser* ] , [ TEST_MODULES=no] ,
6457
6463
[ TEST_MODULES=yes]
6458
6464
)
6459
6465
fi
@@ -6478,7 +6484,7 @@ AS_CASE([$ac_sys_system/$ac_sys_emscripten_target],
6478
6484
[ CYGWIN*/*] , [ PY_STDLIB_MOD_SET_NA([ _scproxy] , [ nis] )] ,
6479
6485
[ QNX*/*] , [ PY_STDLIB_MOD_SET_NA([ _scproxy] , [ nis] )] ,
6480
6486
[ FreeBSD*/*] , [ PY_STDLIB_MOD_SET_NA([ _scproxy] , [ spwd] )] ,
6481
- [ Emscripten/browser] , [
6487
+ [ Emscripten/browser* ] , [
6482
6488
PY_STDLIB_MOD_SET_NA(
6483
6489
[ _ctypes] ,
6484
6490
[ _curses] ,
@@ -6505,7 +6511,7 @@ AS_CASE([$ac_sys_system/$ac_sys_emscripten_target],
6505
6511
] ,
6506
6512
dnl Some modules like _posixsubprocess do not work. We build them anyway
6507
6513
dnl so imports in tests do not fail.
6508
- [ Emscripten/node] , [
6514
+ [ Emscripten/node* ] , [
6509
6515
PY_STDLIB_MOD_SET_NA(
6510
6516
[ _ctypes] ,
6511
6517
[ _curses] ,
0 commit comments