Skip to content

Commit 17245c8

Browse files
authored
bpo-40280: Add debug Emscripten flavors (GH-32233)
1 parent abdd69c commit 17245c8

File tree

2 files changed

+32
-22
lines changed

2 files changed

+32
-22
lines changed

configure

Lines changed: 15 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

configure.ac

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -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
13781384
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)'],
13801386
[LIBRARY_DEPS='$(PY3LIBRARY) $(EXPORTSYMS)']
13811387
)
13821388
LINK_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.
18901896
AS_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
64546460
else
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
)
64596465
fi
@@ -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

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy