Allow not copying the wasm binary in wasm-c-api and not referring to the binary in wasm/aot loader (#3389)

Add flag `LoadArgs.clone_wasm_binary` to control whether to clone the wasm/aot
binary in wasm-c-api module. If false, API `wasm_module_new_ex` won't clone the
binary, which may reduce the footprint.

Add flag `LoadArgs.wasm_binary_freeable` to control whether the wasm/aot binary
may be freed after instantiation for wamr API `wasm_runtime_load_ex`, if yes, then
for some running modes, the wasm/aot module doesn't refer to the input binary
again so developer can free it after instantiation to reduce the footprint.

And add API `wasm_module_is_underlying_binary_freeable` and
`wasm_runtime_is_underlying_binary_freeable` to check whether the input binary
can be freed after instantiation for wasm-c-api and wamr api.

And add sample to illustrate it.
This commit is contained in:
Enrico Loparco
2024-05-17 03:00:08 +02:00
committed by GitHub
parent 51ecfd6673
commit 6b1d81650d
14 changed files with 276 additions and 28 deletions

View File

@ -50,6 +50,7 @@ OUT_FILE=${i%.*}.wasm
-Wl,--export=generate_float \
-Wl,--export=float_to_string \
-Wl,--export=calculate\
-Wl,--export=mul7\
-Wl,--allow-undefined \
-o ${OUT_DIR}/wasm-apps/${OUT_FILE} ${APP_SRC}