Skip to content

Commit 7acedd7

Browse files
authored
gh-84461: Drop -sWASM, fix building tests for browser (GH-91530)
- drop unnecessary ``=1`` suffix from Emscripten flags - drop unnecessary ``-sWASM`` flag for side modules - rename ``build_platform`` to ``build_wasm``. I introduced the target for WASM builds a couple of months ago. - fix ``--enable-test-modules`` for browser builds
1 parent 1b035d9 commit 7acedd7

File tree

3 files changed

+53
-57
lines changed

3 files changed

+53
-57
lines changed

Makefile.pre.in

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -580,7 +580,7 @@ LIBEXPAT_HEADERS= \
580580
all: @DEF_MAKE_ALL_RULE@
581581
build_all: check-clean-src $(BUILDPYTHON) oldsharedmods sharedmods gdbhooks \
582582
Programs/_testembed python-config
583-
build_platform: check-clean-src $(BUILDPYTHON) platform
583+
build_wasm: check-clean-src $(BUILDPYTHON) platform oldsharedmods python-config
584584

585585
# Check that the source is clean when building out of source.
586586
check-clean-src:
@@ -2475,7 +2475,7 @@ update-config:
24752475
Python/thread.o: @THREADHEADERS@ $(srcdir)/Python/condvar.h
24762476

24772477
# Declare targets that aren't real files
2478-
.PHONY: all build_all sharedmods check-clean-src oldsharedmods test quicktest
2478+
.PHONY: all build_all build_wasm sharedmods check-clean-src oldsharedmods test quicktest
24792479
.PHONY: install altinstall oldsharedinstall bininstall altbininstall
24802480
.PHONY: maninstall libinstall inclinstall libainstall sharedinstall
24812481
.PHONY: frameworkinstall frameworkinstallframework frameworkinstallstructure

configure

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

configure.ac

Lines changed: 27 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1574,10 +1574,10 @@ if test "$Py_OPT" = 'true' ; then
15741574
])
15751575
;;
15761576
esac
1577-
elif test "$ac_sys_system" = "Emscripten"; then
1577+
elif test "$ac_sys_system" = "Emscripten" -o "$ac_sys_system" = "WASI"; then
15781578
dnl Emscripten does not support shared extensions yet. Build
1579-
dnl "python.[js,html,wasm]", "pybuilddir.txt", and "platform" files.
1580-
DEF_MAKE_ALL_RULE="build_platform"
1579+
dnl "python.[js,wasm]", "pybuilddir.txt", and "platform" files.
1580+
DEF_MAKE_ALL_RULE="build_wasm"
15811581
REQUIRE_PGO="no"
15821582
DEF_MAKE_RULE="all"
15831583
else
@@ -1911,30 +1911,30 @@ fi
19111911
# WASM flags
19121912
AS_CASE([$ac_sys_system/$ac_sys_emscripten_target],
19131913
[Emscripten/browser*], [
1914-
LDFLAGS_NODIST="$LDFLAGS_NODIST -sALLOW_MEMORY_GROWTH=1"
1914+
LDFLAGS_NODIST="$LDFLAGS_NODIST -sALLOW_MEMORY_GROWTH"
19151915
LINKFORSHARED="--preload-file=\$(WASM_ASSETS_DIR)"
19161916
AS_VAR_IF([enable_wasm_dynamic_linking], [yes], [
1917-
AS_VAR_APPEND([LINKFORSHARED], [" -sMAIN_MODULE=1"])
1917+
AS_VAR_APPEND([LINKFORSHARED], [" -sMAIN_MODULE"])
19181918
])
19191919
WASM_ASSETS_DIR=".\$(prefix)"
19201920
WASM_STDLIB="\$(WASM_ASSETS_DIR)/local/lib/python\$(VERSION)/os.py"
19211921
dnl separate-dwarf does not seem to work in Chrome DevTools Support.
19221922
if test "$Py_DEBUG" = 'true' -o "$ac_sys_emscripten_target" = "browser-debug"; then
1923-
LDFLAGS_NODIST="$LDFLAGS_NODIST -sASSERTIONS=1"
1923+
LDFLAGS_NODIST="$LDFLAGS_NODIST -sASSERTIONS"
19241924
LINKFORSHARED="$LINKFORSHARED -gsource-map --emit-symbol-map"
19251925
else
19261926
LINKFORSHARED="$LINKFORSHARED -O2 -g0"
19271927
fi
19281928
],
19291929
[Emscripten/node*], [
1930-
LDFLAGS_NODIST="$LDFLAGS_NODIST -sALLOW_MEMORY_GROWTH=1 -sNODERAWFS=1 -sUSE_PTHREADS=1"
1931-
LINKFORSHARED="-sPROXY_TO_PTHREAD=1 -sEXIT_RUNTIME=1"
1930+
LDFLAGS_NODIST="$LDFLAGS_NODIST -sALLOW_MEMORY_GROWTH -sNODERAWFS -sUSE_PTHREADS"
1931+
LINKFORSHARED="-sPROXY_TO_PTHREAD -sEXIT_RUNTIME"
19321932
AS_VAR_IF([enable_wasm_dynamic_linking], [yes], [
1933-
AS_VAR_APPEND([LINKFORSHARED], [" -sMAIN_MODULE=1"])
1933+
AS_VAR_APPEND([LINKFORSHARED], [" -sMAIN_MODULE"])
19341934
])
19351935
CFLAGS_NODIST="$CFLAGS_NODIST -pthread"
19361936
if test "$Py_DEBUG" = 'true' -o "$ac_sys_emscripten_target" = "node-debug"; then
1937-
LDFLAGS_NODIST="$LDFLAGS_NODIST -sASSERTIONS=1"
1937+
LDFLAGS_NODIST="$LDFLAGS_NODIST -sASSERTIONS"
19381938
LINKFORSHARED="$LINKFORSHARED -gseparate-dwarf --emit-symbol-map"
19391939
else
19401940
LINKFORSHARED="$LINKFORSHARED -O2 -g0"
@@ -3009,7 +3009,7 @@ fi
30093009
dnl Emscripten's emconfigure sets LDSHARED. Set BLDSHARED outside the
30103010
dnl test -z $LDSHARED block to configure BLDSHARED for side module support.
30113011
if test "$enable_wasm_dynamic_linking" = "yes" -a "$ac_sys_system" = "Emscripten"; then
3012-
BLDSHARED='$(CC) -shared -sSIDE_MODULE=1 -sWASM=1'
3012+
BLDSHARED='$(CC) -shared -sSIDE_MODULE=1'
30133013
fi
30143014

30153015
AC_MSG_RESULT($LDSHARED)
@@ -4549,8 +4549,8 @@ PKG_CHECK_MODULES([ZLIB], [zlib >= 1.2.0], [
45494549
])
45504550

45514551
if test "$have_zlib" = "yes" -a "$ac_sys_system" = "Emscripten" -a "$ZLIB_LIBS" = "-lz"; then
4552-
ZLIB_CFLAGS="-sUSE_ZLIB=1"
4553-
ZLIB_LIBS="-sUSE_ZLIB=1"
4552+
ZLIB_CFLAGS="-sUSE_ZLIB"
4553+
ZLIB_LIBS="-sUSE_ZLIB"
45544554
fi
45554555

45564556
dnl binascii can use zlib for optimized crc32.
@@ -4572,8 +4572,8 @@ PKG_CHECK_MODULES([BZIP2], [bzip2], [have_bzip2=yes], [
45724572
])
45734573

45744574
if test "$have_bzip2" = "yes" -a "$ac_sys_system" = "Emscripten" -a "$BZIP2_LIBS" = "-lbz2"; then
4575-
BZIP2_CFLAGS="-sUSE_BZIP2=1"
4576-
BZIP2_LIBS="-sUSE_BZIP2=1"
4575+
BZIP2_CFLAGS="-sUSE_BZIP2"
4576+
BZIP2_LIBS="-sUSE_BZIP2"
45774577
fi
45784578

45794579

@@ -6557,21 +6557,18 @@ fi],
65576557

65586558
# Check whether to disable test modules. Once set, setup.py will not build
65596559
# test extension modules and "make install" will not install test suites.
6560-
AC_MSG_CHECKING(for --disable-test-modules)
6561-
AC_ARG_ENABLE(test-modules,
6562-
AS_HELP_STRING([--disable-test-modules], [don't build nor install test modules]))
6563-
if test "$enable_test_modules" = no; then
6564-
TEST_MODULES=no
6565-
else
6566-
AS_CASE([$ac_sys_system/$ac_sys_emscripten_target],
6567-
[Emscripten/browser*], [TEST_MODULES=no],
6568-
[TEST_MODULES=yes]
6569-
)
6570-
fi
6571-
AS_VAR_IF([TEST_MODULES], [yes],
6572-
[AC_MSG_RESULT(no)], [AC_MSG_RESULT(yes)]
6573-
)
6574-
AC_SUBST(TEST_MODULES)
6560+
AC_MSG_CHECKING([for --disable-test-modules])
6561+
AC_ARG_ENABLE([test-modules],
6562+
[AS_HELP_STRING([--disable-test-modules], [don't build nor install test modules])], [
6563+
AS_VAR_IF([enable_test_modules], [yes], [TEST_MODULES=yes], [TEST_MODULES=no])
6564+
], [
6565+
AS_CASE([$ac_sys_system/$ac_sys_emscripten_target],
6566+
[Emscripten/browser*], [TEST_MODULES=no],
6567+
[TEST_MODULES=yes]
6568+
)
6569+
])
6570+
AC_MSG_RESULT([$TEST_MODULES])
6571+
AC_SUBST([TEST_MODULES])
65756572

65766573
AC_DEFUN([PY_STDLIB_MOD_SET_NA], [
65776574
m4_foreach([mod], [$@], [

0 commit comments

Comments
 (0)