2222 OPT_FLAGS=" -O3"
2323fi
2424
25- # Set AOT debug flags if gdb feature is enabled
26- if [[ " $FEATURES " == * " gdb" * ]]; then
27- AOT_DEBUG_FLAGS=" --debug"
28- else
29- AOT_DEBUG_FLAGS=" "
30- fi
31-
32- # Set AOT latest flag if wasmtime_latest feature is enabled
33- if [[ " $FEATURES " == * " wasmtime_latest" * ]]; then
34- AOT_VERSION_FLAGS=" --wasmtime-version latest"
35- else
36- AOT_VERSION_FLAGS=" "
37- fi
38-
39- AOT_FEATURES=" "
25+ AOT_COMPILE_FLAGS=()
26+ AOT_FEATURES=()
4027for FEATURE in ${FEATURES// ,/ } ; do
4128 case " $FEATURE " in
42- " " |wasmtime_latest|wasmtime_lts)
29+ " " )
30+ ;;
31+ gdb)
32+ AOT_COMPILE_FLAGS+=(--debug)
33+ AOT_FEATURES+=(" $FEATURE " )
34+ ;;
35+ wasmtime_latest)
36+ AOT_COMPILE_FLAGS+=(--wasmtime-version latest)
37+ ;;
38+ wasmtime_lts)
4339 ;;
4440 * )
45- if [ -z " $AOT_FEATURES " ]; then
46- AOT_FEATURES=" $FEATURE "
47- else
48- AOT_FEATURES=" ${AOT_FEATURES} ,${FEATURE} "
49- fi
41+ AOT_FEATURES+=(" $FEATURE " )
5042 ;;
5143 esac
5244done
5345
54- if [ -n " $ AOT_FEATURES" ]; then
55- AOT_FEATURE_FLAGS =(--features " $AOT_FEATURES " )
46+ if [ " ${ # AOT_FEATURES[@]} " -gt 0 ]; then
47+ AOT_CARGO_FLAGS =(--features " $( IFS=, ; echo " ${ AOT_FEATURES[*]} " ) " )
5648else
57- AOT_FEATURE_FLAGS =()
49+ AOT_CARGO_FLAGS =()
5850fi
5951
6052if [ -f " /.dockerenv" ] || grep -q docker /proc/1/cgroup; then
@@ -65,7 +57,7 @@ if [ -f "/.dockerenv" ] || grep -q docker /proc/1/cgroup; then
6557 # Build the wasm file with wasi-libc for wasmtime
6658 /opt/wasi-sdk/bin/clang ${DEBUG_FLAGS} -flto -ffunction-sections -mexec-model=reactor ${OPT_FLAGS} -z stack-size=4096 -Wl,--initial-memory=65536 -Wl,--export=__data_end -Wl,--export=__heap_base,--export=malloc,--export=free,--export=__wasm_call_ctors ${STRIP_FLAGS} -Wl,--no-entry -Wl,--allow-undefined -Wl,--gc-sections -o ${OUTPUT_DIR} /${FILENAME% .* } -wasi-libc.wasm ${FILENAME}
6759
68- cargo run -p hyperlight-wasm-aot " ${AOT_FEATURE_FLAGS [@]} " compile ${AOT_DEBUG_FLAGS} ${AOT_VERSION_FLAGS} ${OUTPUT_DIR} /${FILENAME% .* } -wasi-libc.wasm ${OUTPUT_DIR} /${FILENAME% .* } .aot
60+ cargo run -p hyperlight-wasm-aot " ${AOT_CARGO_FLAGS [@]} " compile " ${AOT_COMPILE_FLAGS[@]} " ${OUTPUT_DIR} /${FILENAME% .* } -wasi-libc.wasm ${OUTPUT_DIR} /${FILENAME% .* } .aot
6961 done
7062
7163 for WIT_FILE in ${PWD} /components/* .wit; do
@@ -86,7 +78,7 @@ if [ -f "/.dockerenv" ] || grep -q docker /proc/1/cgroup; then
8678 ${PWD} /components/bindings/${COMPONENT_NAME} _component_type.o
8779
8880 # Build AOT for Wasmtime
89- cargo run -p hyperlight-wasm-aot " ${AOT_FEATURE_FLAGS [@]} " compile ${AOT_DEBUG_FLAGS} ${AOT_VERSION_FLAGS} --component ${OUTPUT_DIR} /${COMPONENT_NAME} -p2.wasm ${OUTPUT_DIR} /${COMPONENT_NAME} .aot
81+ cargo run -p hyperlight-wasm-aot " ${AOT_CARGO_FLAGS [@]} " compile " ${AOT_COMPILE_FLAGS[@]} " --component ${OUTPUT_DIR} /${COMPONENT_NAME} -p2.wasm ${OUTPUT_DIR} /${COMPONENT_NAME} .aot
9082 done
9183
9284else
115107 -v " ${OUTPUT_DIR_REAL} :${OUTPUT_DIR_REAL} " \
116108 wasm-clang-builder:latest /bin/bash -c " /opt/wasi-sdk/bin/clang ${DEBUG_FLAGS} -flto -ffunction-sections -mexec-model=reactor ${OPT_FLAGS} -z stack-size=4096 -Wl,--initial-memory=65536 -Wl,--export=__data_end -Wl,--export=__heap_base,--export=malloc,--export=free,--export=__wasm_call_ctors ${STRIP_FLAGS} -Wl,--no-entry -Wl,--allow-undefined -Wl,--gc-sections -o ${ABS_OUTPUT} ${ABS_INPUT} "
117109
118- cargo run -p hyperlight-wasm-aot " ${AOT_FEATURE_FLAGS [@]} " compile ${AOT_DEBUG_FLAGS} ${AOT_VERSION_FLAGS} ${OUTPUT_WASM} ${OUTPUT_DIR} /${FILENAME% .* } .aot
110+ cargo run -p hyperlight-wasm-aot " ${AOT_CARGO_FLAGS [@]} " compile " ${AOT_COMPILE_FLAGS[@]} " ${OUTPUT_WASM} ${OUTPUT_DIR} /${FILENAME% .* } .aot
119111 done
120112
121113 echo Building components
155147 ${ABS_BINDINGS_TYPE_O} "
156148
157149 # Build AOT for Wasmtime
158- cargo run -p hyperlight-wasm-aot " ${AOT_FEATURE_FLAGS [@]} " compile ${AOT_DEBUG_FLAGS} ${AOT_VERSION_FLAGS} --component ${OUTPUT_WASM} ${OUTPUT_DIR} /${COMPONENT_NAME} .aot
150+ cargo run -p hyperlight-wasm-aot " ${AOT_CARGO_FLAGS [@]} " compile " ${AOT_COMPILE_FLAGS[@]} " --component ${OUTPUT_WASM} ${OUTPUT_DIR} /${COMPONENT_NAME} .aot
159151 done
160152fi
161153
0 commit comments