[Python-checkins] gh-95174: Move WASIX logic into wasi-env (GH-95320)

tiran webhook-mailer at python.org
Wed Jul 27 09:30:45 EDT 2022


https://github.com/python/cpython/commit/2833f3798dc3647e850b303a4d0fa00609a0ae9b
commit: 2833f3798dc3647e850b303a4d0fa00609a0ae9b
branch: main
author: Christian Heimes <christian at python.org>
committer: tiran <christian at python.org>
date: 2022-07-27T15:30:36+02:00
summary:

gh-95174: Move WASIX logic into wasi-env (GH-95320)

wasi-env now sets WASIX flags. This allows us to control all build
parameter for wasm32-wasi buildbot from CPython repository.

Also export and improve SYSROOT parameter.

files:
M Tools/wasm/README.md
M Tools/wasm/wasi-env

diff --git a/Tools/wasm/README.md b/Tools/wasm/README.md
index 37bd395baff6d..d08e807f565b2 100644
--- a/Tools/wasm/README.md
+++ b/Tools/wasm/README.md
@@ -234,15 +234,14 @@ compatibility stubs.
 
 The script ``wasi-env`` sets necessary compiler and linker flags as well as
 ``pkg-config`` overrides. The script assumes that WASI-SDK is installed in
-``/opt/wasi-sdk`` or ``$WASI_SDK_PATH``.
+``/opt/wasi-sdk`` or ``$WASI_SDK_PATH`` and WASIX is installed in
+``/opt/wasix`` or ``$WASIX_PATH``.
 
 ```shell
 mkdir -p builddir/wasi
 pushd builddir/wasi
 
 CONFIG_SITE=../../Tools/wasm/config.site-wasm32-wasi \
-  CFLAGS="-isystem /opt/wasix/include" \
-  LDFLAGS="-L/opt/wasix/lib -lwasix" \
   ../../Tools/wasm/wasi-env ../../configure -C \
     --host=wasm32-unknown-wasi \
     --build=$(../../config.guess) \
diff --git a/Tools/wasm/wasi-env b/Tools/wasm/wasi-env
index 600072b02fb8a..06c54e6823d41 100755
--- a/Tools/wasm/wasi-env
+++ b/Tools/wasm/wasi-env
@@ -30,17 +30,24 @@ if test -z "$1"; then
 fi
 
 WASI_SDK_PATH="${WASI_SDK_PATH:-/opt/wasi-sdk}"
+WASI_SYSROOT="${WASI_SDK_PATH}/share/wasi-sysroot"
+WASIX_PATH="${WASIX_PATH:-/opt/wasix}"
 
 if ! test -x "${WASI_SDK_PATH}/bin/clang"; then
     echo "Error: ${WASI_SDK_PATH}/bin/clang does not exist." >&2
     exit 2
 fi
 
+CC="${WASI_SDK_PATH}/bin/clang"
+CPP="${WASI_SDK_PATH}/bin/clang-cpp"
+CXX="${WASI_SDK_PATH}/bin/clang++"
+
 # --sysroot is required if WASI-SDK is not installed in /opt/wasi-sdk.
-WASI_SYSROOT="${WASI_SDK_PATH}/share/wasi-sysroot"
-CC="${WASI_SDK_PATH}/bin/clang --sysroot=${WASI_SYSROOT}"
-CPP="${WASI_SDK_PATH}/bin/clang-cpp --sysroot=${WASI_SYSROOT}"
-CXX="${WASI_SDK_PATH}/bin/clang++ --sysroot=${WASI_SYSROOT}"
+if test "${WASI_SDK_PATH}" != "/opt/wasi-sdk"; then
+    CC="${CC} --sysroot=${WASI_SYSROOT}"
+    CPP="${CPP} --sysroot=${WASI_SYSROOT}"
+    CXX="${CXX} --sysroot=${WASI_SYSROOT}"
+fi
 
 # use ccache if available
 if command -v ccache >/dev/null 2>&1; then
@@ -58,10 +65,17 @@ PKG_CONFIG_PATH=""
 PKG_CONFIG_LIBDIR="${WASI_SYSROOT}/lib/pkgconfig:${WASI_SYSROOT}/share/pkgconfig"
 PKG_CONFIG_SYSROOT_DIR="${WASI_SYSROOT}"
 
-PATH="${WASI_SDK_PATH}/bin:$PATH"
+# add WASIX (POSIX stubs for WASI) if WASIX is installed
+if test -f "${WASIX_PATH}/lib/libwasix.a"; then
+    CFLAGS="${CFLAGS} -isystem ${WASIX_PATH}/include"
+    LDFLAGS="${LDFLAGS} -L${WASIX_PATH}/lib -lwasix"
+fi
+
+PATH="${WASI_SDK_PATH}/bin:${PATH}"
 
-export WASI_SDK_PATH
+export WASI_SDK_PATH WASI_SYSROOT
 export CC CPP CXX LDSHARED AR RANLIB
+export CFLAGS LDFLAGS
 export PKG_CONFIG_PATH PKG_CONFIG_LIBDIR PKG_CONFIG_SYSROOT_DIR
 export PATH
 



More information about the Python-checkins mailing list