WASI: remove wasi-sdk dependency; build module with zig

This commit is contained in:
Frank Denis
2021-07-19 12:45:33 +02:00
parent 07c2f6c053
commit c2d66aaec9
3 changed files with 24 additions and 33 deletions
+6 -6
View File
@@ -7,19 +7,19 @@ pr: none
jobs:
- job: "wasi"
pool:
vmImage: "ubuntu-18.04"
vmImage: "ubuntu-20.04"
steps:
- script: |
sudo apt-get install build-essential curl cmake
sudo apt-get install build-essential curl cmake llvm lld
displayName: Install system packages
- script: |
curl https://get.wasmer.io -sSfL | sh
displayName: Install wasmer
- script: |
curl -sL -o - https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-12/wasi-sdk-12.0-linux.tar.gz | tar xz -f - -C /opt/
sudo mv /opt/wasi-sdk-* /opt/wasi-sdk
sudo ln -s /opt/wasi-sdk/share/*sysroot* /opt/wasi-sysroot
displayName: Install the WASI SDK
curl -sL -o - https://ziglang.org/download/0.8.0/zig-linux-x86_64-0.8.0.tar.xz | tar xJ -f - -C /opt/
sudo mv /opt/zig-* /opt/zig
env PATH=/opt/zig/bin:/opt/zig:$PATH
displayName: Install the Zig SDK
- script: |
env WASMER_DIR=${HOME}/.wasmer PATH=${HOME}/.wasmer/bin:/opt/wasi-sdk/bin:${HOME}/.cargo/bin:$PATH dist-build/wasm32-wasi.sh
displayName: Compile libsodium
+7 -2
View File
@@ -818,7 +818,9 @@ dnl Checks for functions and headers
AC_FUNC_ALLOCA
AS_IF([test "x$EMSCRIPTEN" = "x"],[
AC_CHECK_FUNCS([arc4random arc4random_buf])
AC_CHECK_FUNCS([mmap mlock madvise mprotect])
AS_IF([test "x$WASI" = "x"],[
AC_CHECK_FUNCS([mmap mlock madvise mprotect])
])
AC_MSG_CHECKING(for getrandom with a standard API)
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
@@ -867,7 +869,10 @@ AS_IF([test "x$WASI" = "x"],[
])
AC_CHECK_FUNCS([posix_memalign nanosleep])
AC_CHECK_FUNCS([memset_s explicit_bzero explicit_memset])
AS_IF([test "x$WASI" = "x"],[
AC_CHECK_FUNCS([memset_s explicit_bzero explicit_memset])
])
AC_SUBST([LIBTOOL_EXTRA_FLAGS])
+11 -25
View File
@@ -1,37 +1,20 @@
#! /bin/sh
if [ -z "$WASI_LIBC" ]; then
for path in /opt/wasi-libc /opt/wasi-sysroot; do
if [ -d "$path" ]; then
export WASI_LIBC="$path"
break
fi
done
fi
if [ -z "$WASI_LIBC" ]; then
echo "Set WASI_LIBC to the path to the WASI libc sysroot" >&2
exit 1
fi
export PATH="/usr/local/opt/llvm/bin:$PATH"
export PATH="/opt/zig/bin:/opt/zig:/usr/local/opt/llvm/bin:$PATH"
export PREFIX="$(pwd)/libsodium-wasm32-wasi"
mkdir -p $PREFIX || exit 1
export CC="clang"
export CFLAGS="-DED25519_NONDETERMINISTIC=1 --target=wasm32-wasi --sysroot=${WASI_LIBC} -O2"
export CC="zig cc"
export CFLAGS="-DED25519_NONDETERMINISTIC=1 --target=wasm32-wasi -O2"
export LDFLAGS="-s -Wl,--stack-first"
export NM="llvm-nm"
export AR="llvm-ar"
export RANLIB="llvm-ranlib"
export AR="zig ar"
export RANLIB="zig ranlib"
export STRIP="llvm-strip"
make distclean >/dev/null
grep -q -F -- 'wasi' build-aux/config.sub ||
sed -i -e 's/-nacl\*)/-nacl*|-wasi)/' build-aux/config.sub
if [ "x$1" = "x--bench" ]; then
export BENCHMARKS=1
export CPPFLAGS="-DBENCHMARKS -DITERATIONS=100"
@@ -43,10 +26,13 @@ else
export LIBSODIUM_ENABLE_MINIMAL_FLAG=""
fi
./configure ${LIBSODIUM_ENABLE_MINIMAL_FLAG} \
--prefix="$PREFIX" --with-sysroot="$WASI_LIBC" \
if ! ./configure ${LIBSODIUM_ENABLE_MINIMAL_FLAG} \
--prefix="$PREFIX" \
--host=wasm32-wasi \
--disable-ssp --disable-shared || exit 1
--disable-ssp --disable-shared --without-pthreads; then
cat config.log
exit 1
fi
NPROCESSORS=$(getconf NPROCESSORS_ONLN 2>/dev/null || getconf _NPROCESSORS_ONLN 2>/dev/null)
PROCESSORS=${NPROCESSORS:-3}