2023-03-09 01:03:16 +00:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
#
|
|
|
|
# Copyright (C) 2023 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
|
|
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
|
|
#
|
|
|
|
|
2023-03-17 12:02:03 +00:00
|
|
|
set -eo pipefail
|
2023-03-09 01:03:16 +00:00
|
|
|
CC=${CC:=/opt/wasi-sdk/bin/clang}
|
|
|
|
WAMR_DIR=../../../../..
|
|
|
|
|
2023-08-15 02:36:10 +00:00
|
|
|
show_usage() {
|
|
|
|
echo "Usage: $0 [--sysroot PATH_TO_SYSROOT]"
|
|
|
|
echo "--sysroot PATH_TO_SYSROOT specify to build with custom sysroot for wasi-libc"
|
|
|
|
}
|
|
|
|
|
|
|
|
while [[ $# -gt 0 ]]; do
|
|
|
|
key="$1"
|
|
|
|
case $key in
|
|
|
|
--sysroot)
|
|
|
|
sysroot_path="$2"
|
|
|
|
shift
|
|
|
|
shift
|
|
|
|
;;
|
|
|
|
--help)
|
|
|
|
show_usage
|
|
|
|
exit
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
echo "Unknown option: $1"
|
|
|
|
exit 1
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
done
|
|
|
|
|
2023-08-01 09:38:37 +00:00
|
|
|
# Stress tests names
|
2023-08-30 11:01:44 +00:00
|
|
|
thread_start_file_exclusions=("linear_memory_size_update.wasm")
|
|
|
|
|
|
|
|
rm -rf *.wasm
|
|
|
|
rm -rf *.aot
|
2023-08-01 09:38:37 +00:00
|
|
|
|
2023-03-09 01:03:16 +00:00
|
|
|
for test_c in *.c; do
|
|
|
|
test_wasm="$(basename $test_c .c).wasm"
|
|
|
|
|
2023-08-01 09:38:37 +00:00
|
|
|
if [[ " ${thread_start_file_exclusions[@]} " =~ " ${test_wasm} " ]] ; then
|
2023-04-08 11:07:20 +00:00
|
|
|
thread_start_file=""
|
|
|
|
else
|
|
|
|
thread_start_file=$WAMR_DIR/samples/wasi-threads/wasm-apps/wasi_thread_start.S
|
|
|
|
fi
|
|
|
|
|
2023-08-15 02:36:10 +00:00
|
|
|
if [[ -n "$sysroot_path" ]]; then
|
|
|
|
if [ ! -d "$sysroot_path" ]; then
|
|
|
|
echo "Directory $sysroot_path doesn't exist. Aborting"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
sysroot_command="--sysroot $sysroot_path"
|
|
|
|
fi
|
|
|
|
|
2023-03-09 01:03:16 +00:00
|
|
|
echo "Compiling $test_c to $test_wasm"
|
|
|
|
$CC \
|
|
|
|
-target wasm32-wasi-threads \
|
2023-08-17 02:31:05 +00:00
|
|
|
-O2 \
|
2023-03-09 01:03:16 +00:00
|
|
|
-pthread -ftls-model=local-exec \
|
|
|
|
-z stack-size=32768 \
|
|
|
|
-Wl,--export=__heap_base \
|
|
|
|
-Wl,--export=__data_end \
|
|
|
|
-Wl,--shared-memory,--max-memory=1966080 \
|
|
|
|
-Wl,--export=wasi_thread_start \
|
|
|
|
-Wl,--export=malloc \
|
|
|
|
-Wl,--export=free \
|
|
|
|
-I $WAMR_DIR/samples/wasi-threads/wasm-apps \
|
2023-08-15 02:36:10 +00:00
|
|
|
$sysroot_command \
|
2023-04-08 11:07:20 +00:00
|
|
|
$thread_start_file \
|
2023-03-09 01:03:16 +00:00
|
|
|
$test_c -o $test_wasm
|
|
|
|
done
|