Skip to content

Commit b783b71

Browse files
committed
Simplify AOT feature argument handling
Signed-off-by: James Sturtevant <jsturtevant@gmail.com>
1 parent 0da621f commit b783b71

1 file changed

Lines changed: 20 additions & 28 deletions

File tree

src/hyperlight_wasm/scripts/build-wasm-examples.sh

Lines changed: 20 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -22,39 +22,31 @@ else
2222
OPT_FLAGS="-O3"
2323
fi
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=()
4027
for 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
5244
done
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[*]}")")
5648
else
57-
AOT_FEATURE_FLAGS=()
49+
AOT_CARGO_FLAGS=()
5850
fi
5951

6052
if [ -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

9284
else
@@ -115,7 +107,7 @@ else
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
@@ -155,7 +147,7 @@ else
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
160152
fi
161153

0 commit comments

Comments
 (0)