Fix missing stack frame alloc/free in AOT multi-module invoke (#3562)

Fix #3545 and update the build configuration for multi-module sample:
- pass debug to AOT-compiled modules
- support optional DUMP_CALL_STACK 
- support optional GC
This commit is contained in:
Xenia Lu
2024-06-24 13:56:11 +08:00
committed by GitHub
parent d36160b294
commit 54b87cb097
3 changed files with 32 additions and 3 deletions

View File

@ -49,6 +49,12 @@ endif ()
if (NOT DEFINED WAMR_BUILD_JIT)
set(WAMR_BUILD_JIT 0)
endif ()
if (NOT DEFINED WAMR_BUILD_DUMP_CALL_STACK)
set(WAMR_BUILD_DUMP_CALL_STACK 0)
endif ()
if (NOT DEFINED WAMR_BUILD_GC)
set(WAMR_BUILD_GC 0)
endif ()
set(WAMR_BUILD_SIMD 1)
set(WAMR_BUILD_REF_TYPES 1)
set(WAMR_BUILD_LIBC_BUILTIN 1)
@ -141,6 +147,7 @@ ExternalProject_Add(WASM_MODULE
-DWASI_SDK_PREFIX=${WASI_SDK_DIR}
-DCMAKE_TOOLCHAIN_FILE=${WASI_TOOLCHAIN_FILE}
-DCMAKE_SYSROOT=${WASI_SYS_ROOT}
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-S ${CMAKE_CURRENT_SOURCE_DIR}/wasm-apps
BUILD_COMMAND ${CMAKE_COMMAND} --build .
INSTALL_COMMAND ${CMAKE_COMMAND} -E copy
@ -172,17 +179,24 @@ if (WAMR_BUILD_AOT EQUAL 1)
message(STATUS "WAMR_COMPILER is ${WAMR_COMPILER}")
endif()
if (WAMR_BUILD_DUMP_CALL_STACK EQUAL 1)
list(APPEND WAMR_AOT_COMPILE_OPTIONS "--enable-dump-call-stack")
endif ()
if (WAMR_BUILD_GC EQUAL 1)
list(APPEND WAMR_AOT_COMPILE_OPTIONS "--enable-gc")
endif ()
add_custom_target(
wasm_to_aot
ALL
DEPENDS
WASM_MODULE ${WAMR_COMPILER}
COMMAND
${WAMR_COMPILER} -o mA.aot ./mA.wasm
${WAMR_COMPILER} ${WAMR_AOT_COMPILE_OPTIONS} -o mA.aot ./mA.wasm
COMMAND
${WAMR_COMPILER} -o mB.aot ./mB.wasm
${WAMR_COMPILER} ${WAMR_AOT_COMPILE_OPTIONS} -o mB.aot ./mB.wasm
COMMAND
${WAMR_COMPILER} -o mC.aot ./mC.wasm
${WAMR_COMPILER} ${WAMR_AOT_COMPILE_OPTIONS} -o mC.aot ./mC.wasm
WORKING_DIRECTORY
${CMAKE_BINARY_DIR}
)

View File

@ -57,6 +57,7 @@ function(COMPILE_WITH_CLANG SOURCE_FILE COMMAND)
add_executable(${MAIN_TARGET_NAME} ${SOURCE_FILE})
set_target_properties(${MAIN_TARGET_NAME} PROPERTIES OUTPUT_NAME ${WASM_MODULE})
target_compile_options (${MAIN_TARGET_NAME} PRIVATE -fno-exceptions)
if(${COMMAND})
message(STATUS "Generating ${WASM_MODULE} as COMMAND...")