mirror of
https://github.com/bytecodealliance/wasm-micro-runtime.git
synced 2025-05-09 05:06:17 +00:00
Fix wasm-c-api JIT mode issue and enable set LLVM_DIR in cmd line (#624)
This commit is contained in:
parent
fa5f4fe940
commit
9710d9325f
|
@ -80,15 +80,17 @@ endif ()
|
||||||
if (WAMR_BUILD_JIT EQUAL 1)
|
if (WAMR_BUILD_JIT EQUAL 1)
|
||||||
if (WAMR_BUILD_AOT EQUAL 1)
|
if (WAMR_BUILD_AOT EQUAL 1)
|
||||||
add_definitions("-DWASM_ENABLE_JIT=1")
|
add_definitions("-DWASM_ENABLE_JIT=1")
|
||||||
set (LLVM_SRC_ROOT "${WAMR_ROOT_DIR}/core/deps/llvm")
|
if (NOT DEFINED LLVM_DIR)
|
||||||
set (LLVM_BUILD_ROOT "${LLVM_SRC_ROOT}/build")
|
set (LLVM_SRC_ROOT "${WAMR_ROOT_DIR}/core/deps/llvm")
|
||||||
if (WAMR_BUILD_PLATFORM STREQUAL "windows")
|
set (LLVM_BUILD_ROOT "${LLVM_SRC_ROOT}/build")
|
||||||
|
if (WAMR_BUILD_PLATFORM STREQUAL "windows")
|
||||||
set (LLVM_BUILD_ROOT "${LLVM_SRC_ROOT}/win32build")
|
set (LLVM_BUILD_ROOT "${LLVM_SRC_ROOT}/win32build")
|
||||||
|
endif ()
|
||||||
|
if (NOT EXISTS "${LLVM_BUILD_ROOT}")
|
||||||
|
message (FATAL_ERROR "Cannot find LLVM dir: ${LLVM_BUILD_ROOT}")
|
||||||
|
endif ()
|
||||||
|
set (CMAKE_PREFIX_PATH "${LLVM_BUILD_ROOT};${CMAKE_PREFIX_PATH}")
|
||||||
endif ()
|
endif ()
|
||||||
if (NOT EXISTS "${LLVM_BUILD_ROOT}")
|
|
||||||
message (FATAL_ERROR "Cannot find LLVM dir: ${LLVM_BUILD_ROOT}")
|
|
||||||
endif ()
|
|
||||||
set (CMAKE_PREFIX_PATH "${LLVM_BUILD_ROOT};${CMAKE_PREFIX_PATH}")
|
|
||||||
find_package(LLVM REQUIRED CONFIG)
|
find_package(LLVM REQUIRED CONFIG)
|
||||||
include_directories(${LLVM_INCLUDE_DIRS})
|
include_directories(${LLVM_INCLUDE_DIRS})
|
||||||
add_definitions(${LLVM_DEFINITIONS})
|
add_definitions(${LLVM_DEFINITIONS})
|
||||||
|
|
|
@ -1203,7 +1203,7 @@ wasm_trap_new_internal(const char *string)
|
||||||
goto failed;
|
goto failed;
|
||||||
}
|
}
|
||||||
|
|
||||||
wasm_name_new_from_string_nt(trap->message, string);
|
wasm_name_new_from_string(trap->message, string);
|
||||||
if (strlen(string) && !trap->message->data) {
|
if (strlen(string) && !trap->message->data) {
|
||||||
goto failed;
|
goto failed;
|
||||||
}
|
}
|
||||||
|
@ -1409,12 +1409,12 @@ wasm_module_imports(const wasm_module_t *module,
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
wasm_name_new_from_string_nt(&module_name, module_name_rt);
|
wasm_name_new_from_string(&module_name, module_name_rt);
|
||||||
if (strlen(module_name_rt) && !module_name.data) {
|
if (strlen(module_name_rt) && !module_name.data) {
|
||||||
goto failed;
|
goto failed;
|
||||||
}
|
}
|
||||||
|
|
||||||
wasm_name_new_from_string_nt(&name, field_name_rt);
|
wasm_name_new_from_string(&name, field_name_rt);
|
||||||
if (strlen(field_name_rt) && !name.data) {
|
if (strlen(field_name_rt) && !name.data) {
|
||||||
goto failed;
|
goto failed;
|
||||||
}
|
}
|
||||||
|
@ -1494,12 +1494,12 @@ wasm_module_imports(const wasm_module_t *module,
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
wasm_name_new_from_string_nt(&module_name, module_name_rt);
|
wasm_name_new_from_string(&module_name, module_name_rt);
|
||||||
if (strlen(module_name_rt) && !module_name.data) {
|
if (strlen(module_name_rt) && !module_name.data) {
|
||||||
goto failed;
|
goto failed;
|
||||||
}
|
}
|
||||||
|
|
||||||
wasm_name_new_from_string_nt(&name, field_name_rt);
|
wasm_name_new_from_string(&name, field_name_rt);
|
||||||
if (strlen(field_name_rt) && !name.data) {
|
if (strlen(field_name_rt) && !name.data) {
|
||||||
goto failed;
|
goto failed;
|
||||||
}
|
}
|
||||||
|
@ -1623,7 +1623,7 @@ wasm_module_exports(const wasm_module_t *module, wasm_exporttype_vec_t *out)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* byte* -> wasm_byte_vec_t */
|
/* byte* -> wasm_byte_vec_t */
|
||||||
wasm_name_new_from_string_nt(&name, export->name);
|
wasm_name_new_from_string(&name, export->name);
|
||||||
if (strlen(export->name) && !name.data) {
|
if (strlen(export->name) && !name.data) {
|
||||||
goto failed;
|
goto failed;
|
||||||
}
|
}
|
||||||
|
@ -3221,6 +3221,11 @@ aot_link_func(const wasm_instance_t *inst,
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!bh_vector_append((Vector *)inst->imports, &cloned)) {
|
||||||
|
wasm_func_delete(cloned);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
import_aot_func->call_conv_raw = true;
|
import_aot_func->call_conv_raw = true;
|
||||||
import_aot_func->attachment = cloned;
|
import_aot_func->attachment = cloned;
|
||||||
import_aot_func->func_ptr_linked = native_func_trampoline;
|
import_aot_func->func_ptr_linked = native_func_trampoline;
|
||||||
|
@ -3243,7 +3248,7 @@ aot_link_global(const AOTModule *module_aot,
|
||||||
bh_assert(import_aot_global);
|
bh_assert(import_aot_global);
|
||||||
|
|
||||||
//TODO: import->type ?
|
//TODO: import->type ?
|
||||||
val_type = wasm_globaltype_content(wasm_global_type(import));
|
val_type = wasm_globaltype_content(import->type);
|
||||||
bh_assert(val_type);
|
bh_assert(val_type);
|
||||||
|
|
||||||
switch (wasm_valtype_kind(val_type)) {
|
switch (wasm_valtype_kind(val_type)) {
|
||||||
|
|
|
@ -130,10 +130,10 @@ if (CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||||
if(VALGRIND)
|
if(VALGRIND)
|
||||||
foreach(EX ${EXAMPLES})
|
foreach(EX ${EXAMPLES})
|
||||||
add_custom_target(${EX}_LEAK_TEST
|
add_custom_target(${EX}_LEAK_TEST
|
||||||
COMMAND ${VALGRIND} --tool=memcheck --leak-check=yes --show-reachable=yes ./${EX}
|
COMMAND ${VALGRIND} --tool=memcheck --leak-check=yes ./${EX}
|
||||||
DEPENDS ${EX} ${EX}_WASM
|
DEPENDS ${EX} ${EX}_WASM
|
||||||
VERBATIM
|
VERBATIM
|
||||||
SOURCES ${EX}
|
COMMENT "run a leak check on ${EX}"
|
||||||
)
|
)
|
||||||
endforeach()
|
endforeach()
|
||||||
endif (VALGRIND)
|
endif (VALGRIND)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user