@@ -1091,6 +1091,12 @@ AC_ARG_WITH([emscripten-target],
10911091 AS_CASE ( [ $with_emscripten_target] ,
10921092 [ browser] , [ ac_sys_emscripten_target=browser] ,
10931093 [ 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] ,
10941100 [ AC_MSG_ERROR ( [ Invalid argument: --with-emscripten-target=browser|node] ) ]
10951101 )
10961102 ] , [
@@ -1112,8 +1118,8 @@ AC_ARG_WITH([suffix],
11121118 )
11131119] , [
11141120 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] ,
11171123 [ WASI/*] , [ EXEEXT=.wasm] ,
11181124 [ EXEEXT=]
11191125 )
@@ -1376,7 +1382,7 @@ AC_MSG_RESULT($LDLIBRARY)
13761382
13771383# LIBRARY_DEPS, LINK_PYTHON_OBJS and LINK_PYTHON_DEPS variable
13781384AS_CASE ( [ $ac_sys_system/$ac_sys_emscripten_target] ,
1379- [ Emscripten/browser] , [ LIBRARY_DEPS='$(PY3LIBRARY) $(WASM_STDLIB)'] ,
1385+ [ Emscripten/browser* ] , [ LIBRARY_DEPS='$(PY3LIBRARY) $(WASM_STDLIB)'] ,
13801386 [ LIBRARY_DEPS='$(PY3LIBRARY) $(EXPORTSYMS)']
13811387)
13821388LINK_PYTHON_DEPS='$(LIBRARY_DEPS)'
@@ -1888,28 +1894,28 @@ fi
18881894# The option disables code elimination, which increases code size of main
18891895# binary. All objects must be built with -fPIC.
18901896AS_CASE ( [ $ac_sys_system/$ac_sys_emscripten_target] ,
1891- [ Emscripten/browser] , [
1897+ [ Emscripten/browser* ] , [
18921898 LDFLAGS_NODIST="$LDFLAGS_NODIST -s ALLOW_MEMORY_GROWTH=1"
18931899 LINKFORSHARED="--preload-file \$(WASM_ASSETS_DIR)"
18941900 WASM_ASSETS_DIR=".\$(prefix)"
18951901 WASM_STDLIB="\$(WASM_ASSETS_DIR)/local/lib/python\$(VERSION)/os.py"
18961902 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
18981904 LDFLAGS_NODIST="$LDFLAGS_NODIST -s ASSERTIONS=1"
18991905 LINKFORSHARED="$LINKFORSHARED -gsource-map --emit-symbol-map"
19001906 else
19011907 LINKFORSHARED="$LINKFORSHARED -O2 -g0"
19021908 fi
19031909 ] ,
1904- [ Emscripten/node] , [
1910+ [ Emscripten/node* ] , [
19051911 LDFLAGS_NODIST="$LDFLAGS_NODIST -s ALLOW_MEMORY_GROWTH=1 -s NODERAWFS=1 -s USE_PTHREADS=1"
19061912 LINKFORSHARED="-s PROXY_TO_PTHREAD=1 -s EXIT_RUNTIME=1"
19071913 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
19091915 LDFLAGS_NODIST="$LDFLAGS_NODIST -s ASSERTIONS=1"
19101916 LINKFORSHARED="$LINKFORSHARED -gseparate-dwarf --emit-symbol-map"
19111917 else
1912- LINKFORSHARED="$LINKFORSHARED -O2 -gseparate-dwarf "
1918+ LINKFORSHARED="$LINKFORSHARED -O2 -g0 "
19131919 fi
19141920 ] ,
19151921 [ WASI/*] , [
@@ -6453,7 +6459,7 @@ if test "$enable_test_modules" = no; then
64536459 TEST_MODULES=no
64546460else
64556461 AS_CASE ( [ $ac_sys_system/$ac_sys_emscripten_target] ,
6456- [ Emscripten/browser] , [ TEST_MODULES=no] ,
6462+ [ Emscripten/browser* ] , [ TEST_MODULES=no] ,
64576463 [ TEST_MODULES=yes]
64586464 )
64596465fi
@@ -6478,7 +6484,7 @@ AS_CASE([$ac_sys_system/$ac_sys_emscripten_target],
64786484 [ CYGWIN*/*] , [ PY_STDLIB_MOD_SET_NA([ _scproxy] , [ nis] )] ,
64796485 [ QNX*/*] , [ PY_STDLIB_MOD_SET_NA([ _scproxy] , [ nis] )] ,
64806486 [ FreeBSD*/*] , [ PY_STDLIB_MOD_SET_NA([ _scproxy] , [ spwd] )] ,
6481- [ Emscripten/browser] , [
6487+ [ Emscripten/browser* ] , [
64826488 PY_STDLIB_MOD_SET_NA(
64836489 [ _ctypes] ,
64846490 [ _curses] ,
@@ -6505,7 +6511,7 @@ AS_CASE([$ac_sys_system/$ac_sys_emscripten_target],
65056511 ] ,
65066512 dnl Some modules like _posixsubprocess do not work. We build them anyway
65076513 dnl so imports in tests do not fail.
6508- [ Emscripten/node] , [
6514+ [ Emscripten/node* ] , [
65096515 PY_STDLIB_MOD_SET_NA(
65106516 [ _ctypes] ,
65116517 [ _curses] ,
0 commit comments