Mailing List Archive

gh-95853: Address wasm build and test issues (GH-95985)
https://github.com/python/cpython/commit/4a7f5a55dc88c14cef880ae38a96018514ca9d83
commit: 4a7f5a55dc88c14cef880ae38a96018514ca9d83
branch: main
author: Christian Heimes <christian@python.org>
committer: tiran <christian@python.org>
date: 2022-08-15T07:41:10+02:00
summary:

gh-95853: Address wasm build and test issues (GH-95985)

files:
M Lib/test/test_decimal.py
M Modules/pyexpat.c
M Tools/wasm/wasm_build.py

diff --git a/Lib/test/test_decimal.py b/Lib/test/test_decimal.py
index f7a47c86a3fe..7c5964e3d553 100644
--- a/Lib/test/test_decimal.py
+++ b/Lib/test/test_decimal.py
@@ -37,7 +37,7 @@
requires_legacy_unicode_capi, check_sanitizer)
from test.support import (TestFailed,
run_with_locale, cpython_only,
- darwin_malloc_err_warning)
+ darwin_malloc_err_warning, is_emscripten)
from test.support.import_helper import import_fresh_module
from test.support import threading_helper
from test.support import warnings_helper
@@ -5605,6 +5605,7 @@ def __abs__(self):
# Issue 41540:
@unittest.skipIf(sys.platform.startswith("aix"),
"AIX: default ulimit: test is flaky because of extreme over-allocation")
+ @unittest.skipIf(is_emscripten, "Test is unstable on Emscripten")
@unittest.skipIf(check_sanitizer(address=True, memory=True),
"ASAN/MSAN sanitizer defaults to crashing "
"instead of returning NULL for malloc failure.")
diff --git a/Modules/pyexpat.c b/Modules/pyexpat.c
index 678347331ef4..165cb0effae2 100644
--- a/Modules/pyexpat.c
+++ b/Modules/pyexpat.c
@@ -775,7 +775,7 @@ readinst(char *buf, int buf_size, PyObject *meth)
Py_ssize_t len;
const char *ptr;

- str = PyObject_CallFunction(meth, "n", buf_size);
+ str = PyObject_CallFunction(meth, "i", buf_size);
if (str == NULL)
goto error;

diff --git a/Tools/wasm/wasm_build.py b/Tools/wasm/wasm_build.py
index e7a1f4a60071..df90f01a27b6 100755
--- a/Tools/wasm/wasm_build.py
+++ b/Tools/wasm/wasm_build.py
@@ -191,7 +191,11 @@ def _check_emscripten():
config_site=WASMTOOLS / "config.site-wasm32-emscripten",
configure_wrapper=EMSCRIPTEN_ROOT / "emconfigure",
make_wrapper=EMSCRIPTEN_ROOT / "emmake",
- environ={"EM_COMPILER_WRAPPER": "ccache"} if HAS_CCACHE else {},
+ environ={
+ # workaround for https://github.com/emscripten-core/emscripten/issues/17635
+ "TZ": "UTC",
+ "EM_COMPILER_WRAPPER": "ccache" if HAS_CCACHE else None,
+ },
check=_check_emscripten,
)

@@ -352,12 +356,15 @@ def getenv(self) -> dict:
env.setdefault("MAKEFLAGS", f"-j{os.cpu_count()}")
platenv = self.host.platform.getenv(self)
for key, value in platenv.items():
- if isinstance(value, str):
- value = value.format(
+ if value is None:
+ env.pop(key, None)
+ elif isinstance(value, str):
+ env[key] = value.format(
relbuilddir=self.builddir.relative_to(SRCDIR),
srcdir=SRCDIR,
)
- env[key] = value
+ else:
+ env[key] = value
return env

def _run_cmd(self, cmd: Iterable[str], args: Iterable[str]):

_______________________________________________
Python-checkins mailing list
Python-checkins@python.org
https://mail.python.org/mailman/listinfo/python-checkins