diff --git a/doc/build_wasm_app.md b/doc/build_wasm_app.md index 4034b1f5e1..29cc911011 100644 --- a/doc/build_wasm_app.md +++ b/doc/build_wasm_app.md @@ -160,6 +160,11 @@ Firstly if libc-builtin (-nostdlib) mode meets the requirements, e.g. there are Most of the above methods are also available for libc-wasi mode, besides them, we can export malloc and free functions with `-Wl,--export=malloc -Wl,--export=free` option, so WAMR runtime will disable its app heap and call the malloc/free function exported to allocate/free the memory from/to the heap space managed by libc. +Note: wasm-ld from LLVM 13 and later automatically inserts dtor calls +for exported funtions. It breaks the malloc/free export mentioned above. +A workaround: Add `-Wl,--export=__wasm_call_ctors`, which happens to +prevent the automatic insertions for the current implementation. + ## 3. Build wasm app with pthread support Please ref to [pthread library](./pthread_library.md) for more details.