From a150fe81be41a57f22f00600a7a8098d051f1c4a Mon Sep 17 00:00:00 2001 From: YAMAMOTO Takashi Date: Mon, 16 Jan 2023 15:09:33 +0900 Subject: [PATCH] Relax wasi memory export check when wasi-threads is enabled https://github.com/WebAssembly/wasi-threads/issues/22 https://github.com/WebAssembly/WASI/issues/502 --- core/iwasm/interpreter/wasm_loader.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/core/iwasm/interpreter/wasm_loader.c b/core/iwasm/interpreter/wasm_loader.c index d0a10b86e6..753f837dae 100644 --- a/core/iwasm/interpreter/wasm_loader.c +++ b/core/iwasm/interpreter/wasm_loader.c @@ -4185,7 +4185,20 @@ check_wasi_abi_compatibility(const WASMModule *module, memory = wasm_loader_find_export(module, "", "memory", EXPORT_KIND_MEMORY, error_buf, error_buf_size); - if (!memory) { + if (!memory +#if WASM_ENABLE_LIB_WASI_THREADS != 0 + /* + * with wasi-threads, it's still an open question if a memory + * should be exported. + * + * https://github.com/WebAssembly/wasi-threads/issues/22 + * https://github.com/WebAssembly/WASI/issues/502 + * + * Note: this code assumes the number of memories is at most 1. + */ + && module->import_memory_count == 0 +#endif + ) { set_error_buf(error_buf, error_buf_size, "a module with WASI apis must export memory by default"); return false;