mirror of
https://github.com/bytecodealliance/wasm-micro-runtime.git
synced 2025-06-18 02:59:21 +00:00
Merge pull request #4356 from lum1n0us/fix/merge_into_dev_shared_heap_from_main
Some checks failed
compilation on android, ubuntu-22.04 / check_version_h (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_llvm_libraries_on_ubuntu_2204 (push) Has been cancelled
compilation on macos / build_llvm_libraries_on_intel_macos (push) Has been cancelled
compilation on macos / build_llvm_libraries_on_arm_macos (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/arm/rp2040/raspberrypi-pico/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_CLASSIC CONFIG_INTERPRETERS_WAMR_LIBC_WASI) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/arm/rp2040/raspberrypi-pico/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_CLASSIC) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/arm/rp2040/raspberrypi-pico/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_FAST CONFIG_INTERPRETERS_WAMR_LIBC_BUILTIN) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/arm/rp2040/raspberrypi-pico/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_FAST CONFIG_INTERPRETERS_WAMR_LIBC_WASI) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/arm/rp2040/raspberrypi-pico/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_FAST) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/arm/rp2040/raspberrypi-pico/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/arm/rp2040/raspberrypi-pico/configs/nsh, CONFIG_INTERPRETERS_WAMR_CLASSIC) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/arm/rp2040/raspberrypi-pico/configs/nsh, CONFIG_INTERPRETERS_WAMR_FAST) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/arm/stm32h7/nucleo-h743zi/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_CLASSIC CONFIG_INTERPRETERS_WAMR_LIBC_WASI) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/arm/stm32h7/nucleo-h743zi/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_CLASSIC) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/arm/stm32h7/nucleo-h743zi/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_FAST CONFIG_INTERPRETERS_WAMR_LIBC_BUILTIN) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/arm/stm32h7/nucleo-h743zi/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_FAST CONFIG_INTERPRETERS_WAMR_LIBC_WASI) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/arm/stm32h7/nucleo-h743zi/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_FAST) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/arm/stm32h7/nucleo-h743zi/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/arm/stm32h7/nucleo-h743zi/configs/nsh, CONFIG_INTERPRETERS_WAMR_CLASSIC) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/arm/stm32h7/nucleo-h743zi/configs/nsh, CONFIG_INTERPRETERS_WAMR_FAST) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/arm64/qemu/qemu-armv8a/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_CLASSIC CONFIG_INTERPRETERS_WAMR_LIBC_WASI) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/arm64/qemu/qemu-armv8a/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_CLASSIC) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/arm64/qemu/qemu-armv8a/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_FAST CONFIG_INTERPRETERS_WAMR_LIBC_BUILTIN) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/arm64/qemu/qemu-armv8a/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_FAST CONFIG_INTERPRETERS_WAMR_LIBC_WASI) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/arm64/qemu/qemu-armv8a/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_FAST) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/arm64/qemu/qemu-armv8a/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/arm64/qemu/qemu-armv8a/configs/nsh, CONFIG_INTERPRETERS_WAMR_CLASSIC) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/arm64/qemu/qemu-armv8a/configs/nsh, CONFIG_INTERPRETERS_WAMR_FAST) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/risc-v/qemu-rv/rv-virt/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_CLASSIC CONFIG_INTERPRETERS_WAMR_LIBC_WASI) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/risc-v/qemu-rv/rv-virt/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_CLASSIC) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/risc-v/qemu-rv/rv-virt/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_FAST CONFIG_INTERPRETERS_WAMR_LIBC_BUILTIN) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/risc-v/qemu-rv/rv-virt/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_FAST CONFIG_INTERPRETERS_WAMR_LIBC_WASI) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/risc-v/qemu-rv/rv-virt/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_FAST) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/risc-v/qemu-rv/rv-virt/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/risc-v/qemu-rv/rv-virt/configs/nsh, CONFIG_INTERPRETERS_WAMR_CLASSIC) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/risc-v/qemu-rv/rv-virt/configs/nsh, CONFIG_INTERPRETERS_WAMR_FAST) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/risc-v/qemu-rv/rv-virt/configs/nsh64, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_CLASSIC CONFIG_INTERPRETERS_WAMR_LIBC_WASI) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/risc-v/qemu-rv/rv-virt/configs/nsh64, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_CLASSIC) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/risc-v/qemu-rv/rv-virt/configs/nsh64, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_FAST CONFIG_INTERPRETERS_WAMR_LIBC_BUILTIN) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/risc-v/qemu-rv/rv-virt/configs/nsh64, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_FAST CONFIG_INTERPRETERS_WAMR_LIBC_WASI) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/risc-v/qemu-rv/rv-virt/configs/nsh64, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_FAST) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/risc-v/qemu-rv/rv-virt/configs/nsh64, CONFIG_INTERPRETERS_WAMR_AOT) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/risc-v/qemu-rv/rv-virt/configs/nsh64, CONFIG_INTERPRETERS_WAMR_CLASSIC) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/risc-v/qemu-rv/rv-virt/configs/nsh64, CONFIG_INTERPRETERS_WAMR_FAST) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/sim/sim/sim/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_CLASSIC CONFIG_INTERPRETERS_WAMR_LIBC_WASI) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/sim/sim/sim/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_CLASSIC) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/sim/sim/sim/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_FAST CONFIG_INTERPRETERS_WAMR_LIBC_BUILTIN) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/sim/sim/sim/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_FAST CONFIG_INTERPRETERS_WAMR_LIBC_WASI) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/sim/sim/sim/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_FAST) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/sim/sim/sim/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/sim/sim/sim/configs/nsh, CONFIG_INTERPRETERS_WAMR_CLASSIC) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/sim/sim/sim/configs/nsh, CONFIG_INTERPRETERS_WAMR_FAST) (push) Has been cancelled
compilation on SGX / build_llvm_libraries (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_CUSTOM_NAME_SECTION=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_CUSTOM_NAME_SECTION=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_CUSTOM_NAME_SECTION=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_CUSTOM_NAME_SECTION=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_DUMP_CALL_STACK=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_DUMP_CALL_STACK=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_DUMP_CALL_STACK=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_DUMP_CALL_STACK=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_LIB_PTHREAD=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_LIB_PTHREAD=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_LIB_PTHREAD=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_LIB_PTHREAD=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_LIB_WASI_THREADS=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_LIB_WASI_THREADS=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_LIB_WASI_THREADS=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_LIB_WASI_THREADS=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_LOAD_CUSTOM_SECTION=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_LOAD_CUSTOM_SECTION=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_LOAD_CUSTOM_SECTION=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_LOAD_CUSTOM_SECTION=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_MEMORY_PROFILING=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_MEMORY_PROFILING=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_MEMORY_PROFILING=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_MEMORY_PROFILING=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_MINI_LOADER=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_MINI_LOADER=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_MINI_LOADER=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_MULTI_MODULE=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_MULTI_MODULE=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_MULTI_MODULE=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_MULTI_MODULE=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_PERF_PROFILING=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_PERF_PROFILING=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_PERF_PROFILING=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_PERF_PROFILING=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_REF_TYPES=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_REF_TYPES=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_REF_TYPES=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_REF_TYPES=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_SGX_IPFS=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_SGX_IPFS=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_SGX_IPFS=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_SGX_IPFS=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_SIMD=0, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_SIMD=0, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_SIMD=0, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_SIMD=0, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_TAIL_CALL=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_TAIL_CALL=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_TAIL_CALL=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_TAIL_CALL=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_DISABLE_HW_BOUND_CHECK=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_DISABLE_HW_BOUND_CHECK=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_DISABLE_HW_BOUND_CHECK=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_DISABLE_HW_BOUND_CHECK=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on windows-latest / build_llvm_libraries_on_windows (push) Has been cancelled
compilation on windows-latest / build_iwasm (-DWAMR_BUILD_AOT=0) (push) Has been cancelled
compilation on windows-latest / build_iwasm (-DWAMR_BUILD_AOT=1 -DWAMR_BUILD_INTERP=0) (push) Has been cancelled
compilation on windows-latest / build_iwasm (-DWAMR_BUILD_CUSTOM_NAME_SECTION=1) (push) Has been cancelled
compilation on windows-latest / build_iwasm (-DWAMR_BUILD_DEBUG_INTERP=1) (push) Has been cancelled
compilation on windows-latest / build_iwasm (-DWAMR_BUILD_LIBC_UVWASI=0 -DWAMR_BUILD_LIBC_WASI=1) (push) Has been cancelled
compilation on windows-latest / build_iwasm (-DWAMR_BUILD_LIB_PTHREAD=1) (push) Has been cancelled
compilation on windows-latest / build_iwasm (-DWAMR_BUILD_LIB_WASI_THREADS=1) (push) Has been cancelled
compilation on windows-latest / build_iwasm (-DWAMR_BUILD_REF_TYPES=1) (push) Has been cancelled
compilation on windows-latest / build_iwasm (-DWAMR_BUILD_SIMD=1) (push) Has been cancelled
compilation on windows-latest / build_iwasm (-DWAMR_BUILD_TAIL_CALL=1) (push) Has been cancelled
compilation on windows-latest / build_iwasm (-DWAMR_DISABLE_HW_BOUND_CHECK=1) (push) Has been cancelled
hadolint dockerfiles / run-hadolint-on-dockerfiles (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_wamrc (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_CUSTOM_NAME_SECTION=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_CUSTOM_NAME_SECTION=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_CUSTOM_NAME_SECTION=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_CUSTOM_NAME_SECTION=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_CUSTOM_NAME_SECTION=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_CUSTOM_NAME_SECTION=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_CUSTOM_NAME_SECTION=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_CUSTOM_NAME_SECTION=1, $LLVM_EAGER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_CUSTOM_NAME_SECTION=1, $LLVM_LAZY_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_CUSTOM_NAME_SECTION=1, $MULTI_TIER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_DEBUG_AOT=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_DEBUG_AOT=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_DEBUG_INTERP=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_DEBUG_INTERP=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_DUMP_CALL_STACK=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_DUMP_CALL_STACK=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_DUMP_CALL_STACK=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_DUMP_CALL_STACK=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_DUMP_CALL_STACK=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_DUMP_CALL_STACK=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_DUMP_CALL_STACK=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_DUMP_CALL_STACK=1, $LLVM_EAGER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_DUMP_CALL_STACK=1, $LLVM_LAZY_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_DUMP_CALL_STACK=1, $MULTI_TIER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_PTHREAD=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_PTHREAD=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_PTHREAD=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_PTHREAD=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_PTHREAD=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_PTHREAD=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_PTHREAD=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_PTHREAD=1, $LLVM_EAGER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_PTHREAD=1, $LLVM_LAZY_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_PTHREAD=1, $MULTI_TIER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_SIMDE=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_SIMDE=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_SIMDE=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_SIMDE=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_SIMDE=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_SIMDE=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_SIMDE=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_SIMDE=1, $LLVM_EAGER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_SIMDE=1, $LLVM_LAZY_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_SIMDE=1, $MULTI_TIER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_WASI_THREADS=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_WASI_THREADS=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_WASI_THREADS=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_WASI_THREADS=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_WASI_THREADS=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_WASI_THREADS=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_WASI_THREADS=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_WASI_THREADS=1, $LLVM_EAGER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_WASI_THREADS=1, $LLVM_LAZY_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_WASI_THREADS=1, $MULTI_TIER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LOAD_CUSTOM_SECTION=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LOAD_CUSTOM_SECTION=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LOAD_CUSTOM_SECTION=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LOAD_CUSTOM_SECTION=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LOAD_CUSTOM_SECTION=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LOAD_CUSTOM_SECTION=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LOAD_CUSTOM_SECTION=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LOAD_CUSTOM_SECTION=1, $LLVM_EAGER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LOAD_CUSTOM_SECTION=1, $LLVM_LAZY_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LOAD_CUSTOM_SECTION=1, $MULTI_TIER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_MEMORY64=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_MEMORY64=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_MEMORY_PROFILING=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_MEMORY_PROFILING=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_MEMORY_PROFILING=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_MEMORY_PROFILING=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_MEMORY_PROFILING=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_MEMORY_PROFILING=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_MEMORY_PROFILING=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_MEMORY_PROFILING=1, $LLVM_EAGER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_MEMORY_PROFILING=1, $LLVM_LAZY_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_MEMORY_PROFILING=1, $MULTI_TIER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_MINI_LOADER=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_MINI_LOADER=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_MINI_LOADER=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_MINI_LOADER=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_MULTI_MEMORY=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_MULTI_MEMORY=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_MULTI_MODULE=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_MULTI_MODULE=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_MULTI_MODULE=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_MULTI_MODULE=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_MULTI_MODULE=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_MULTI_MODULE=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_PERF_PROFILING=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_PERF_PROFILING=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_PERF_PROFILING=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_PERF_PROFILING=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_PERF_PROFILING=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_PERF_PROFILING=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_PERF_PROFILING=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_PERF_PROFILING=1, $LLVM_EAGER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_PERF_PROFILING=1, $LLVM_LAZY_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_PERF_PROFILING=1, $MULTI_TIER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_REF_TYPES=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_REF_TYPES=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_REF_TYPES=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_REF_TYPES=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_REF_TYPES=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_REF_TYPES=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_REF_TYPES=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_REF_TYPES=1, $LLVM_EAGER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_REF_TYPES=1, $LLVM_LAZY_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_REF_TYPES=1, $MULTI_TIER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_SHARED=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_SHARED=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_SHARED=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_SHARED=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_SHARED=1, $LLVM_EAGER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_SHARED=1, $LLVM_LAZY_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_SHARED=1, $MULTI_TIER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_SIMD=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_SIMD=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_SIMD=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_SIMD=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_SIMD=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_SIMD=1, $LLVM_EAGER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_SIMD=1, $LLVM_LAZY_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_SIMD=1, $MULTI_TIER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_TAIL_CALL=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_TAIL_CALL=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_TAIL_CALL=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_TAIL_CALL=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_TAIL_CALL=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_TAIL_CALL=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_TAIL_CALL=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_TAIL_CALL=1, $LLVM_EAGER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_TAIL_CALL=1, $LLVM_LAZY_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_TAIL_CALL=1, $MULTI_TIER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_DISABLE_HW_BOUND_CHECK=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_DISABLE_HW_BOUND_CHECK=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_DISABLE_HW_BOUND_CHECK=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_DISABLE_HW_BOUND_CHECK=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_DISABLE_HW_BOUND_CHECK=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_DISABLE_HW_BOUND_CHECK=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_DISABLE_HW_BOUND_CHECK=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_DISABLE_HW_BOUND_CHECK=1, $LLVM_EAGER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_DISABLE_HW_BOUND_CHECK=1, $LLVM_LAZY_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_DISABLE_HW_BOUND_CHECK=1, $MULTI_TIER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_unit_tests (X86_32, ${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_unit_tests (X86_64, ${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_samples_wasm_c_api (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, $AOT_BUILD_OPTIONS, ubuntu-22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_samples_wasm_c_api (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_samples_wasm_c_api (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_samples_wasm_c_api (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_samples_wasm_c_api (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, $LLVM_EAGER_JIT_BUILD_OPTIONS, ubuntu-22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_samples_wasm_c_api (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, $LLVM_LAZY_JIT_BUILD_OPTIONS, ubuntu-22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_samples_wasm_c_api (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, $MULTI_TIER_JIT_BUILD_OPTIONS, ubuntu-22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_samples_others (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, aot, $DEFAULT_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, aot, $GC_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, aot, $MEMORY64_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, aot, $MULTI_MODULES_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, aot, $SIMD_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, aot, $THREADS_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, aot, $WAMR_COMPILER_TEST_OPTIONS) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, aot, $WASI_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, classic-interp, $DEFAULT_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, classic-interp, $GC_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, classic-interp, $MEMORY64_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, classic-interp, $MULTI_MEMORY_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, classic-interp, $MULTI_MODULES_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, classic-interp, $THREADS_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, classic-interp, $WASI_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, fast-interp, $DEFAULT_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, fast-interp, $GC_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, fast-interp, $MULTI_MODULES_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, fast-interp, $SIMD_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, fast-interp, $THREADS_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, fast-interp, $WASI_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, fast-jit, $DEFAULT_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, fast-jit, $THREADS_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, fast-jit, $WASI_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, jit, $DEFAULT_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, jit, $GC_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, jit, $SIMD_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, jit, $THREADS_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, jit, $WASI_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, multi-tier-jit, $DEFAULT_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, multi-tier-jit, $THREADS_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, multi-tier-jit, $WASI_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test-wamr-ide (push) Has been cancelled
compilation on macos / build_wamrc (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, macos-13) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_CUSTOM_NAME_SECTION=1, $AOT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_CUSTOM_NAME_SECTION=1, $CLASSIC_INTERP_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_CUSTOM_NAME_SECTION=1, $FAST_INTERP_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_CUSTOM_NAME_SECTION=1, $LLVM_EAGER_JIT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_CUSTOM_NAME_SECTION=1, $LLVM_LAZY_JIT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_DEBUG_INTERP=1, $CLASSIC_INTERP_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_DUMP_CALL_STACK=1, $AOT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_DUMP_CALL_STACK=1, $CLASSIC_INTERP_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_DUMP_CALL_STACK=1, $FAST_INTERP_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_DUMP_CALL_STACK=1, $LLVM_EAGER_JIT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_DUMP_CALL_STACK=1, $LLVM_LAZY_JIT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_LIB_PTHREAD=1, $AOT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_LIB_PTHREAD=1, $CLASSIC_INTERP_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_LIB_PTHREAD=1, $FAST_INTERP_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_LIB_PTHREAD=1, $LLVM_EAGER_JIT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_LIB_PTHREAD=1, $LLVM_LAZY_JIT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_LIB_WASI_THREADS=1, $AOT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_LIB_WASI_THREADS=1, $CLASSIC_INTERP_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_LIB_WASI_THREADS=1, $FAST_INTERP_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_LIB_WASI_THREADS=1, $LLVM_EAGER_JIT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_LIB_WASI_THREADS=1, $LLVM_LAZY_JIT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_LOAD_CUSTOM_SECTION=1, $AOT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_LOAD_CUSTOM_SECTION=1, $CLASSIC_INTERP_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_LOAD_CUSTOM_SECTION=1, $FAST_INTERP_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_LOAD_CUSTOM_SECTION=1, $LLVM_EAGER_JIT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_LOAD_CUSTOM_SECTION=1, $LLVM_LAZY_JIT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_MEMORY_PROFILING=1, $AOT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_MEMORY_PROFILING=1, $CLASSIC_INTERP_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_MEMORY_PROFILING=1, $FAST_INTERP_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_MEMORY_PROFILING=1, $LLVM_EAGER_JIT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_MEMORY_PROFILING=1, $LLVM_LAZY_JIT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_MINI_LOADER=1, $CLASSIC_INTERP_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_MINI_LOADER=1, $FAST_INTERP_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_MULTI_MODULE=1, $AOT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_MULTI_MODULE=1, $CLASSIC_INTERP_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_MULTI_MODULE=1, $FAST_INTERP_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_PERF_PROFILING=1, $AOT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_PERF_PROFILING=1, $CLASSIC_INTERP_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_PERF_PROFILING=1, $FAST_INTERP_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_PERF_PROFILING=1, $LLVM_EAGER_JIT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_PERF_PROFILING=1, $LLVM_LAZY_JIT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_REF_TYPES=1, $AOT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_REF_TYPES=1, $CLASSIC_INTERP_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_REF_TYPES=1, $FAST_INTERP_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_REF_TYPES=1, $LLVM_EAGER_JIT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_REF_TYPES=1, $LLVM_LAZY_JIT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_SIMD=1, $AOT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_SIMD=1, $LLVM_EAGER_JIT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_SIMD=1, $LLVM_LAZY_JIT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_TAIL_CALL=1, $AOT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_TAIL_CALL=1, $CLASSIC_INTERP_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_TAIL_CALL=1, $FAST_INTERP_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_TAIL_CALL=1, $LLVM_EAGER_JIT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_TAIL_CALL=1, $LLVM_LAZY_JIT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_DISABLE_HW_BOUND_CHECK=1, $AOT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_DISABLE_HW_BOUND_CHECK=1, $CLASSIC_INTERP_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_DISABLE_HW_BOUND_CHECK=1, $FAST_INTERP_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_DISABLE_HW_BOUND_CHECK=1, $LLVM_EAGER_JIT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_DISABLE_HW_BOUND_CHECK=1, $LLVM_LAZY_JIT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_samples_wasm_c_api (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, $AOT_BUILD_OPTIONS, macos-13) (push) Has been cancelled
compilation on macos / build_samples_wasm_c_api (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, $CLASSIC_INTERP_BUILD_OPTIONS, macos-13) (push) Has been cancelled
compilation on macos / build_samples_wasm_c_api (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, $FAST_INTERP_BUILD_OPTIONS, macos-13) (push) Has been cancelled
compilation on macos / build_samples_wasm_c_api (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, $FAST_JIT_BUILD_OPTIONS, macos-13) (push) Has been cancelled
compilation on macos / build_samples_wasm_c_api (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, $LLVM_EAGER_JIT_BUILD_OPTIONS, macos-13) (push) Has been cancelled
compilation on macos / build_samples_wasm_c_api (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, $LLVM_LAZY_JIT_BUILD_OPTIONS, macos-13) (push) Has been cancelled
compilation on macos / build_samples_wasm_c_api (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, $MULTI_TIER_JIT_BUILD_OPTIONS, macos-13) (push) Has been cancelled
compilation on macos / build_samples_others (${{ needs.build_llvm_libraries_on_arm_macos.outputs.cache_key }}, macos-14) (push) Has been cancelled
compilation on macos / build_samples_others (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, macos-13) (push) Has been cancelled
compilation on SGX / run_samples_file (-DWAMR_BUILD_SGX_IPFS=1, $AOT_BUILD_OPTIONS, ${{ needs.build_llvm_libraries.outputs.cache_key }}, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / run_samples_file (-DWAMR_BUILD_SGX_IPFS=1, $CLASSIC_INTERP_BUILD_OPTIONS, ${{ needs.build_llvm_libraries.outputs.cache_key }}, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / run_samples_file (-DWAMR_BUILD_SGX_IPFS=1, $FAST_INTERP_BUILD_OPTIONS, ${{ needs.build_llvm_libraries.outputs.cache_key }}, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / run_samples_file (-DWAMR_BUILD_SGX_IPFS=1, $FAST_JIT_BUILD_OPTIONS, ${{ needs.build_llvm_libraries.outputs.cache_key }}, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / spec_test_default (${{ needs.build_llvm_libraries.outputs.cache_key }}, ubuntu-22.04, aot, $DEFAULT_TEST_OPTIONS) (push) Has been cancelled
compilation on SGX / spec_test_default (${{ needs.build_llvm_libraries.outputs.cache_key }}, ubuntu-22.04, aot, $SIMD_TEST_OPTIONS) (push) Has been cancelled
compilation on SGX / spec_test_default (${{ needs.build_llvm_libraries.outputs.cache_key }}, ubuntu-22.04, aot, $XIP_TEST_OPTIONS) (push) Has been cancelled
compilation on SGX / spec_test_default (${{ needs.build_llvm_libraries.outputs.cache_key }}, ubuntu-22.04, classic-interp, $DEFAULT_TEST_OPTIONS) (push) Has been cancelled
compilation on SGX / spec_test_default (${{ needs.build_llvm_libraries.outputs.cache_key }}, ubuntu-22.04, fast-jit, $DEFAULT_TEST_OPTIONS) (push) Has been cancelled
compilation on windows-latest / build_wamrc (${{ needs.build_llvm_libraries_on_windows.outputs.cache_key }}, windows-latest) (push) Has been cancelled
compilation on windows-latest / test (classic-interp, $DEFAULT_TEST_OPTIONS) (push) Has been cancelled
compilation on windows-latest / test (classic-interp, $MULTI_MODULES_TEST_OPTIONS) (push) Has been cancelled
compilation on windows-latest / test (classic-interp, $THREADS_TEST_OPTIONS) (push) Has been cancelled
compilation on windows-latest / test (classic-interp, $WASI_TEST_OPTIONS) (push) Has been cancelled
compilation on windows-latest / test (fast-interp, $DEFAULT_TEST_OPTIONS) (push) Has been cancelled
compilation on windows-latest / test (fast-interp, $MULTI_MODULES_TEST_OPTIONS) (push) Has been cancelled
compilation on windows-latest / test (fast-interp, $THREADS_TEST_OPTIONS) (push) Has been cancelled
compilation on windows-latest / test (fast-interp, $WASI_TEST_OPTIONS) (push) Has been cancelled
Some checks failed
compilation on android, ubuntu-22.04 / check_version_h (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_llvm_libraries_on_ubuntu_2204 (push) Has been cancelled
compilation on macos / build_llvm_libraries_on_intel_macos (push) Has been cancelled
compilation on macos / build_llvm_libraries_on_arm_macos (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/arm/rp2040/raspberrypi-pico/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_CLASSIC CONFIG_INTERPRETERS_WAMR_LIBC_WASI) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/arm/rp2040/raspberrypi-pico/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_CLASSIC) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/arm/rp2040/raspberrypi-pico/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_FAST CONFIG_INTERPRETERS_WAMR_LIBC_BUILTIN) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/arm/rp2040/raspberrypi-pico/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_FAST CONFIG_INTERPRETERS_WAMR_LIBC_WASI) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/arm/rp2040/raspberrypi-pico/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_FAST) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/arm/rp2040/raspberrypi-pico/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/arm/rp2040/raspberrypi-pico/configs/nsh, CONFIG_INTERPRETERS_WAMR_CLASSIC) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/arm/rp2040/raspberrypi-pico/configs/nsh, CONFIG_INTERPRETERS_WAMR_FAST) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/arm/stm32h7/nucleo-h743zi/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_CLASSIC CONFIG_INTERPRETERS_WAMR_LIBC_WASI) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/arm/stm32h7/nucleo-h743zi/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_CLASSIC) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/arm/stm32h7/nucleo-h743zi/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_FAST CONFIG_INTERPRETERS_WAMR_LIBC_BUILTIN) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/arm/stm32h7/nucleo-h743zi/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_FAST CONFIG_INTERPRETERS_WAMR_LIBC_WASI) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/arm/stm32h7/nucleo-h743zi/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_FAST) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/arm/stm32h7/nucleo-h743zi/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/arm/stm32h7/nucleo-h743zi/configs/nsh, CONFIG_INTERPRETERS_WAMR_CLASSIC) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/arm/stm32h7/nucleo-h743zi/configs/nsh, CONFIG_INTERPRETERS_WAMR_FAST) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/arm64/qemu/qemu-armv8a/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_CLASSIC CONFIG_INTERPRETERS_WAMR_LIBC_WASI) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/arm64/qemu/qemu-armv8a/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_CLASSIC) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/arm64/qemu/qemu-armv8a/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_FAST CONFIG_INTERPRETERS_WAMR_LIBC_BUILTIN) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/arm64/qemu/qemu-armv8a/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_FAST CONFIG_INTERPRETERS_WAMR_LIBC_WASI) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/arm64/qemu/qemu-armv8a/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_FAST) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/arm64/qemu/qemu-armv8a/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/arm64/qemu/qemu-armv8a/configs/nsh, CONFIG_INTERPRETERS_WAMR_CLASSIC) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/arm64/qemu/qemu-armv8a/configs/nsh, CONFIG_INTERPRETERS_WAMR_FAST) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/risc-v/qemu-rv/rv-virt/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_CLASSIC CONFIG_INTERPRETERS_WAMR_LIBC_WASI) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/risc-v/qemu-rv/rv-virt/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_CLASSIC) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/risc-v/qemu-rv/rv-virt/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_FAST CONFIG_INTERPRETERS_WAMR_LIBC_BUILTIN) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/risc-v/qemu-rv/rv-virt/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_FAST CONFIG_INTERPRETERS_WAMR_LIBC_WASI) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/risc-v/qemu-rv/rv-virt/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_FAST) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/risc-v/qemu-rv/rv-virt/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/risc-v/qemu-rv/rv-virt/configs/nsh, CONFIG_INTERPRETERS_WAMR_CLASSIC) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/risc-v/qemu-rv/rv-virt/configs/nsh, CONFIG_INTERPRETERS_WAMR_FAST) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/risc-v/qemu-rv/rv-virt/configs/nsh64, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_CLASSIC CONFIG_INTERPRETERS_WAMR_LIBC_WASI) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/risc-v/qemu-rv/rv-virt/configs/nsh64, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_CLASSIC) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/risc-v/qemu-rv/rv-virt/configs/nsh64, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_FAST CONFIG_INTERPRETERS_WAMR_LIBC_BUILTIN) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/risc-v/qemu-rv/rv-virt/configs/nsh64, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_FAST CONFIG_INTERPRETERS_WAMR_LIBC_WASI) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/risc-v/qemu-rv/rv-virt/configs/nsh64, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_FAST) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/risc-v/qemu-rv/rv-virt/configs/nsh64, CONFIG_INTERPRETERS_WAMR_AOT) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/risc-v/qemu-rv/rv-virt/configs/nsh64, CONFIG_INTERPRETERS_WAMR_CLASSIC) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/risc-v/qemu-rv/rv-virt/configs/nsh64, CONFIG_INTERPRETERS_WAMR_FAST) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/sim/sim/sim/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_CLASSIC CONFIG_INTERPRETERS_WAMR_LIBC_WASI) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/sim/sim/sim/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_CLASSIC) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/sim/sim/sim/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_FAST CONFIG_INTERPRETERS_WAMR_LIBC_BUILTIN) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/sim/sim/sim/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_FAST CONFIG_INTERPRETERS_WAMR_LIBC_WASI) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/sim/sim/sim/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT CONFIG_INTERPRETERS_WAMR_FAST) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/sim/sim/sim/configs/nsh, CONFIG_INTERPRETERS_WAMR_AOT) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/sim/sim/sim/configs/nsh, CONFIG_INTERPRETERS_WAMR_CLASSIC) (push) Has been cancelled
compilation on nuttx / build_iwasm_on_nuttx (boards/sim/sim/sim/configs/nsh, CONFIG_INTERPRETERS_WAMR_FAST) (push) Has been cancelled
compilation on SGX / build_llvm_libraries (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_CUSTOM_NAME_SECTION=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_CUSTOM_NAME_SECTION=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_CUSTOM_NAME_SECTION=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_CUSTOM_NAME_SECTION=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_DUMP_CALL_STACK=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_DUMP_CALL_STACK=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_DUMP_CALL_STACK=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_DUMP_CALL_STACK=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_LIB_PTHREAD=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_LIB_PTHREAD=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_LIB_PTHREAD=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_LIB_PTHREAD=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_LIB_WASI_THREADS=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_LIB_WASI_THREADS=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_LIB_WASI_THREADS=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_LIB_WASI_THREADS=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_LOAD_CUSTOM_SECTION=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_LOAD_CUSTOM_SECTION=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_LOAD_CUSTOM_SECTION=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_LOAD_CUSTOM_SECTION=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_MEMORY_PROFILING=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_MEMORY_PROFILING=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_MEMORY_PROFILING=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_MEMORY_PROFILING=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_MINI_LOADER=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_MINI_LOADER=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_MINI_LOADER=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_MULTI_MODULE=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_MULTI_MODULE=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_MULTI_MODULE=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_MULTI_MODULE=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_PERF_PROFILING=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_PERF_PROFILING=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_PERF_PROFILING=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_PERF_PROFILING=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_REF_TYPES=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_REF_TYPES=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_REF_TYPES=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_REF_TYPES=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_SGX_IPFS=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_SGX_IPFS=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_SGX_IPFS=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_SGX_IPFS=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_SIMD=0, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_SIMD=0, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_SIMD=0, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_SIMD=0, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_TAIL_CALL=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_TAIL_CALL=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_TAIL_CALL=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_BUILD_TAIL_CALL=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_DISABLE_HW_BOUND_CHECK=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_DISABLE_HW_BOUND_CHECK=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_DISABLE_HW_BOUND_CHECK=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / build_iwasm (-DWAMR_DISABLE_HW_BOUND_CHECK=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on windows-latest / build_llvm_libraries_on_windows (push) Has been cancelled
compilation on windows-latest / build_iwasm (-DWAMR_BUILD_AOT=0) (push) Has been cancelled
compilation on windows-latest / build_iwasm (-DWAMR_BUILD_AOT=1 -DWAMR_BUILD_INTERP=0) (push) Has been cancelled
compilation on windows-latest / build_iwasm (-DWAMR_BUILD_CUSTOM_NAME_SECTION=1) (push) Has been cancelled
compilation on windows-latest / build_iwasm (-DWAMR_BUILD_DEBUG_INTERP=1) (push) Has been cancelled
compilation on windows-latest / build_iwasm (-DWAMR_BUILD_LIBC_UVWASI=0 -DWAMR_BUILD_LIBC_WASI=1) (push) Has been cancelled
compilation on windows-latest / build_iwasm (-DWAMR_BUILD_LIB_PTHREAD=1) (push) Has been cancelled
compilation on windows-latest / build_iwasm (-DWAMR_BUILD_LIB_WASI_THREADS=1) (push) Has been cancelled
compilation on windows-latest / build_iwasm (-DWAMR_BUILD_REF_TYPES=1) (push) Has been cancelled
compilation on windows-latest / build_iwasm (-DWAMR_BUILD_SIMD=1) (push) Has been cancelled
compilation on windows-latest / build_iwasm (-DWAMR_BUILD_TAIL_CALL=1) (push) Has been cancelled
compilation on windows-latest / build_iwasm (-DWAMR_DISABLE_HW_BOUND_CHECK=1) (push) Has been cancelled
hadolint dockerfiles / run-hadolint-on-dockerfiles (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_wamrc (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_CUSTOM_NAME_SECTION=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_CUSTOM_NAME_SECTION=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_CUSTOM_NAME_SECTION=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_CUSTOM_NAME_SECTION=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_CUSTOM_NAME_SECTION=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_CUSTOM_NAME_SECTION=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_CUSTOM_NAME_SECTION=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_CUSTOM_NAME_SECTION=1, $LLVM_EAGER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_CUSTOM_NAME_SECTION=1, $LLVM_LAZY_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_CUSTOM_NAME_SECTION=1, $MULTI_TIER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_DEBUG_AOT=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_DEBUG_AOT=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_DEBUG_INTERP=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_DEBUG_INTERP=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_DUMP_CALL_STACK=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_DUMP_CALL_STACK=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_DUMP_CALL_STACK=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_DUMP_CALL_STACK=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_DUMP_CALL_STACK=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_DUMP_CALL_STACK=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_DUMP_CALL_STACK=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_DUMP_CALL_STACK=1, $LLVM_EAGER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_DUMP_CALL_STACK=1, $LLVM_LAZY_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_DUMP_CALL_STACK=1, $MULTI_TIER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_PTHREAD=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_PTHREAD=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_PTHREAD=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_PTHREAD=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_PTHREAD=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_PTHREAD=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_PTHREAD=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_PTHREAD=1, $LLVM_EAGER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_PTHREAD=1, $LLVM_LAZY_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_PTHREAD=1, $MULTI_TIER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_SIMDE=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_SIMDE=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_SIMDE=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_SIMDE=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_SIMDE=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_SIMDE=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_SIMDE=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_SIMDE=1, $LLVM_EAGER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_SIMDE=1, $LLVM_LAZY_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_SIMDE=1, $MULTI_TIER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_WASI_THREADS=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_WASI_THREADS=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_WASI_THREADS=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_WASI_THREADS=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_WASI_THREADS=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_WASI_THREADS=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_WASI_THREADS=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_WASI_THREADS=1, $LLVM_EAGER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_WASI_THREADS=1, $LLVM_LAZY_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LIB_WASI_THREADS=1, $MULTI_TIER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LOAD_CUSTOM_SECTION=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LOAD_CUSTOM_SECTION=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LOAD_CUSTOM_SECTION=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LOAD_CUSTOM_SECTION=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LOAD_CUSTOM_SECTION=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LOAD_CUSTOM_SECTION=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LOAD_CUSTOM_SECTION=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LOAD_CUSTOM_SECTION=1, $LLVM_EAGER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LOAD_CUSTOM_SECTION=1, $LLVM_LAZY_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_LOAD_CUSTOM_SECTION=1, $MULTI_TIER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_MEMORY64=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_MEMORY64=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_MEMORY_PROFILING=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_MEMORY_PROFILING=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_MEMORY_PROFILING=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_MEMORY_PROFILING=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_MEMORY_PROFILING=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_MEMORY_PROFILING=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_MEMORY_PROFILING=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_MEMORY_PROFILING=1, $LLVM_EAGER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_MEMORY_PROFILING=1, $LLVM_LAZY_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_MEMORY_PROFILING=1, $MULTI_TIER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_MINI_LOADER=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_MINI_LOADER=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_MINI_LOADER=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_MINI_LOADER=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_MULTI_MEMORY=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_MULTI_MEMORY=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_MULTI_MODULE=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_MULTI_MODULE=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_MULTI_MODULE=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_MULTI_MODULE=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_MULTI_MODULE=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_MULTI_MODULE=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_PERF_PROFILING=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_PERF_PROFILING=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_PERF_PROFILING=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_PERF_PROFILING=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_PERF_PROFILING=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_PERF_PROFILING=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_PERF_PROFILING=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_PERF_PROFILING=1, $LLVM_EAGER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_PERF_PROFILING=1, $LLVM_LAZY_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_PERF_PROFILING=1, $MULTI_TIER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_REF_TYPES=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_REF_TYPES=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_REF_TYPES=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_REF_TYPES=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_REF_TYPES=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_REF_TYPES=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_REF_TYPES=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_REF_TYPES=1, $LLVM_EAGER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_REF_TYPES=1, $LLVM_LAZY_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_REF_TYPES=1, $MULTI_TIER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_SHARED=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_SHARED=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_SHARED=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_SHARED=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_SHARED=1, $LLVM_EAGER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_SHARED=1, $LLVM_LAZY_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_SHARED=1, $MULTI_TIER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_SIMD=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_SIMD=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_SIMD=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_SIMD=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_SIMD=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_SIMD=1, $LLVM_EAGER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_SIMD=1, $LLVM_LAZY_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_SIMD=1, $MULTI_TIER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_TAIL_CALL=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_TAIL_CALL=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_TAIL_CALL=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_TAIL_CALL=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_TAIL_CALL=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_TAIL_CALL=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_TAIL_CALL=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_TAIL_CALL=1, $LLVM_EAGER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_TAIL_CALL=1, $LLVM_LAZY_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_BUILD_TAIL_CALL=1, $MULTI_TIER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_DISABLE_HW_BOUND_CHECK=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_DISABLE_HW_BOUND_CHECK=1, $AOT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_DISABLE_HW_BOUND_CHECK=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_DISABLE_HW_BOUND_CHECK=1, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_DISABLE_HW_BOUND_CHECK=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, android) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_DISABLE_HW_BOUND_CHECK=1, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_DISABLE_HW_BOUND_CHECK=1, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_DISABLE_HW_BOUND_CHECK=1, $LLVM_EAGER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_DISABLE_HW_BOUND_CHECK=1, $LLVM_LAZY_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_iwasm (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, -DWAMR_DISABLE_HW_BOUND_CHECK=1, $MULTI_TIER_JIT_BUILD_OPTIONS, ubuntu-22.04, linux) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_unit_tests (X86_32, ${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_unit_tests (X86_64, ${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_samples_wasm_c_api (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, $AOT_BUILD_OPTIONS, ubuntu-22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_samples_wasm_c_api (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, $CLASSIC_INTERP_BUILD_OPTIONS, ubuntu-22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_samples_wasm_c_api (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, $FAST_INTERP_BUILD_OPTIONS, ubuntu-22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_samples_wasm_c_api (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, $FAST_JIT_BUILD_OPTIONS, ubuntu-22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_samples_wasm_c_api (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, $LLVM_EAGER_JIT_BUILD_OPTIONS, ubuntu-22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_samples_wasm_c_api (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, $LLVM_LAZY_JIT_BUILD_OPTIONS, ubuntu-22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_samples_wasm_c_api (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, $MULTI_TIER_JIT_BUILD_OPTIONS, ubuntu-22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / build_samples_others (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, aot, $DEFAULT_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, aot, $GC_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, aot, $MEMORY64_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, aot, $MULTI_MODULES_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, aot, $SIMD_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, aot, $THREADS_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, aot, $WAMR_COMPILER_TEST_OPTIONS) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, aot, $WASI_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, classic-interp, $DEFAULT_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, classic-interp, $GC_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, classic-interp, $MEMORY64_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, classic-interp, $MULTI_MEMORY_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, classic-interp, $MULTI_MODULES_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, classic-interp, $THREADS_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, classic-interp, $WASI_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, fast-interp, $DEFAULT_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, fast-interp, $GC_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, fast-interp, $MULTI_MODULES_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, fast-interp, $SIMD_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, fast-interp, $THREADS_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, fast-interp, $WASI_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, fast-jit, $DEFAULT_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, fast-jit, $THREADS_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, fast-jit, $WASI_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, jit, $DEFAULT_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, jit, $GC_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, jit, $SIMD_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, jit, $THREADS_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, jit, $WASI_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, multi-tier-jit, $DEFAULT_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, multi-tier-jit, $THREADS_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test (${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}, ubuntu-22.04, multi-tier-jit, $WASI_TEST_OPTIONS, 22.04) (push) Has been cancelled
compilation on android, ubuntu-22.04 / test-wamr-ide (push) Has been cancelled
compilation on macos / build_wamrc (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, macos-13) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_CUSTOM_NAME_SECTION=1, $AOT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_CUSTOM_NAME_SECTION=1, $CLASSIC_INTERP_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_CUSTOM_NAME_SECTION=1, $FAST_INTERP_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_CUSTOM_NAME_SECTION=1, $LLVM_EAGER_JIT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_CUSTOM_NAME_SECTION=1, $LLVM_LAZY_JIT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_DEBUG_INTERP=1, $CLASSIC_INTERP_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_DUMP_CALL_STACK=1, $AOT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_DUMP_CALL_STACK=1, $CLASSIC_INTERP_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_DUMP_CALL_STACK=1, $FAST_INTERP_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_DUMP_CALL_STACK=1, $LLVM_EAGER_JIT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_DUMP_CALL_STACK=1, $LLVM_LAZY_JIT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_LIB_PTHREAD=1, $AOT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_LIB_PTHREAD=1, $CLASSIC_INTERP_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_LIB_PTHREAD=1, $FAST_INTERP_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_LIB_PTHREAD=1, $LLVM_EAGER_JIT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_LIB_PTHREAD=1, $LLVM_LAZY_JIT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_LIB_WASI_THREADS=1, $AOT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_LIB_WASI_THREADS=1, $CLASSIC_INTERP_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_LIB_WASI_THREADS=1, $FAST_INTERP_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_LIB_WASI_THREADS=1, $LLVM_EAGER_JIT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_LIB_WASI_THREADS=1, $LLVM_LAZY_JIT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_LOAD_CUSTOM_SECTION=1, $AOT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_LOAD_CUSTOM_SECTION=1, $CLASSIC_INTERP_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_LOAD_CUSTOM_SECTION=1, $FAST_INTERP_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_LOAD_CUSTOM_SECTION=1, $LLVM_EAGER_JIT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_LOAD_CUSTOM_SECTION=1, $LLVM_LAZY_JIT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_MEMORY_PROFILING=1, $AOT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_MEMORY_PROFILING=1, $CLASSIC_INTERP_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_MEMORY_PROFILING=1, $FAST_INTERP_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_MEMORY_PROFILING=1, $LLVM_EAGER_JIT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_MEMORY_PROFILING=1, $LLVM_LAZY_JIT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_MINI_LOADER=1, $CLASSIC_INTERP_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_MINI_LOADER=1, $FAST_INTERP_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_MULTI_MODULE=1, $AOT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_MULTI_MODULE=1, $CLASSIC_INTERP_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_MULTI_MODULE=1, $FAST_INTERP_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_PERF_PROFILING=1, $AOT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_PERF_PROFILING=1, $CLASSIC_INTERP_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_PERF_PROFILING=1, $FAST_INTERP_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_PERF_PROFILING=1, $LLVM_EAGER_JIT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_PERF_PROFILING=1, $LLVM_LAZY_JIT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_REF_TYPES=1, $AOT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_REF_TYPES=1, $CLASSIC_INTERP_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_REF_TYPES=1, $FAST_INTERP_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_REF_TYPES=1, $LLVM_EAGER_JIT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_REF_TYPES=1, $LLVM_LAZY_JIT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_SIMD=1, $AOT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_SIMD=1, $LLVM_EAGER_JIT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_SIMD=1, $LLVM_LAZY_JIT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_TAIL_CALL=1, $AOT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_TAIL_CALL=1, $CLASSIC_INTERP_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_TAIL_CALL=1, $FAST_INTERP_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_TAIL_CALL=1, $LLVM_EAGER_JIT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_BUILD_TAIL_CALL=1, $LLVM_LAZY_JIT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_DISABLE_HW_BOUND_CHECK=1, $AOT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_DISABLE_HW_BOUND_CHECK=1, $CLASSIC_INTERP_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_DISABLE_HW_BOUND_CHECK=1, $FAST_INTERP_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_DISABLE_HW_BOUND_CHECK=1, $LLVM_EAGER_JIT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_iwasm (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, -DWAMR_DISABLE_HW_BOUND_CHECK=1, $LLVM_LAZY_JIT_BUILD_OPTIONS, macos-13, darwin) (push) Has been cancelled
compilation on macos / build_samples_wasm_c_api (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, $AOT_BUILD_OPTIONS, macos-13) (push) Has been cancelled
compilation on macos / build_samples_wasm_c_api (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, $CLASSIC_INTERP_BUILD_OPTIONS, macos-13) (push) Has been cancelled
compilation on macos / build_samples_wasm_c_api (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, $FAST_INTERP_BUILD_OPTIONS, macos-13) (push) Has been cancelled
compilation on macos / build_samples_wasm_c_api (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, $FAST_JIT_BUILD_OPTIONS, macos-13) (push) Has been cancelled
compilation on macos / build_samples_wasm_c_api (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, $LLVM_EAGER_JIT_BUILD_OPTIONS, macos-13) (push) Has been cancelled
compilation on macos / build_samples_wasm_c_api (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, $LLVM_LAZY_JIT_BUILD_OPTIONS, macos-13) (push) Has been cancelled
compilation on macos / build_samples_wasm_c_api (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, $MULTI_TIER_JIT_BUILD_OPTIONS, macos-13) (push) Has been cancelled
compilation on macos / build_samples_others (${{ needs.build_llvm_libraries_on_arm_macos.outputs.cache_key }}, macos-14) (push) Has been cancelled
compilation on macos / build_samples_others (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, macos-13) (push) Has been cancelled
compilation on SGX / run_samples_file (-DWAMR_BUILD_SGX_IPFS=1, $AOT_BUILD_OPTIONS, ${{ needs.build_llvm_libraries.outputs.cache_key }}, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / run_samples_file (-DWAMR_BUILD_SGX_IPFS=1, $CLASSIC_INTERP_BUILD_OPTIONS, ${{ needs.build_llvm_libraries.outputs.cache_key }}, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / run_samples_file (-DWAMR_BUILD_SGX_IPFS=1, $FAST_INTERP_BUILD_OPTIONS, ${{ needs.build_llvm_libraries.outputs.cache_key }}, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / run_samples_file (-DWAMR_BUILD_SGX_IPFS=1, $FAST_JIT_BUILD_OPTIONS, ${{ needs.build_llvm_libraries.outputs.cache_key }}, ubuntu-22.04, linux-sgx) (push) Has been cancelled
compilation on SGX / spec_test_default (${{ needs.build_llvm_libraries.outputs.cache_key }}, ubuntu-22.04, aot, $DEFAULT_TEST_OPTIONS) (push) Has been cancelled
compilation on SGX / spec_test_default (${{ needs.build_llvm_libraries.outputs.cache_key }}, ubuntu-22.04, aot, $SIMD_TEST_OPTIONS) (push) Has been cancelled
compilation on SGX / spec_test_default (${{ needs.build_llvm_libraries.outputs.cache_key }}, ubuntu-22.04, aot, $XIP_TEST_OPTIONS) (push) Has been cancelled
compilation on SGX / spec_test_default (${{ needs.build_llvm_libraries.outputs.cache_key }}, ubuntu-22.04, classic-interp, $DEFAULT_TEST_OPTIONS) (push) Has been cancelled
compilation on SGX / spec_test_default (${{ needs.build_llvm_libraries.outputs.cache_key }}, ubuntu-22.04, fast-jit, $DEFAULT_TEST_OPTIONS) (push) Has been cancelled
compilation on windows-latest / build_wamrc (${{ needs.build_llvm_libraries_on_windows.outputs.cache_key }}, windows-latest) (push) Has been cancelled
compilation on windows-latest / test (classic-interp, $DEFAULT_TEST_OPTIONS) (push) Has been cancelled
compilation on windows-latest / test (classic-interp, $MULTI_MODULES_TEST_OPTIONS) (push) Has been cancelled
compilation on windows-latest / test (classic-interp, $THREADS_TEST_OPTIONS) (push) Has been cancelled
compilation on windows-latest / test (classic-interp, $WASI_TEST_OPTIONS) (push) Has been cancelled
compilation on windows-latest / test (fast-interp, $DEFAULT_TEST_OPTIONS) (push) Has been cancelled
compilation on windows-latest / test (fast-interp, $MULTI_MODULES_TEST_OPTIONS) (push) Has been cancelled
compilation on windows-latest / test (fast-interp, $THREADS_TEST_OPTIONS) (push) Has been cancelled
compilation on windows-latest / test (fast-interp, $WASI_TEST_OPTIONS) (push) Has been cancelled
merge commits into dev/shared_heap from main From68e4534
Iterate callstack API to7f968f5
wasi_socket_ext.c: avoid tls to make this library-friendly
This commit is contained in:
commit
1394b8a7a7
|
@ -1,16 +1,12 @@
|
||||||
# for now, it is used to speed up wasi-nn tests only.
|
# for now, it is used to speed up wasi-nn tests only.
|
||||||
# you shall adapt below rules to incoming requirements
|
# you shall adapt below rules to incoming requirements
|
||||||
|
|
||||||
build
|
**/build
|
||||||
*/build
|
**/tmp.*
|
||||||
*/*/build
|
|
||||||
*/*/*/build
|
|
||||||
*/*/*/*/build
|
|
||||||
*/*/*/*/*/build
|
|
||||||
*/*/*/*/*/*/build
|
|
||||||
.*
|
.*
|
||||||
|
**/*.gguf
|
||||||
|
|
||||||
core/deps
|
/core/deps/
|
||||||
!core/deps/tensorflow-src
|
!/core/deps/tensorflow-src
|
||||||
samples
|
/samples
|
||||||
tests
|
/tests
|
||||||
|
|
47
.github/actions/install-linux-sgx/action.yml
vendored
Normal file
47
.github/actions/install-linux-sgx/action.yml
vendored
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
# Copyright (C) 2019 Intel Corporation. All rights reserved.
|
||||||
|
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||||
|
|
||||||
|
# Always follow https://download.01.org/intel-sgx/latest/linux-latest/docs/
|
||||||
|
|
||||||
|
name: "Install Intel SGX SDK"
|
||||||
|
description: "Installs the Intel SGX SDK and necessary libraries for Ubuntu."
|
||||||
|
author: "Intel Corporation"
|
||||||
|
inputs:
|
||||||
|
os:
|
||||||
|
description: "Operating system to install on (ubuntu-22.04)"
|
||||||
|
required: true
|
||||||
|
|
||||||
|
runs:
|
||||||
|
using: "composite"
|
||||||
|
steps:
|
||||||
|
- name: Check Runner OS
|
||||||
|
if: ${{ inputs.os != 'ubuntu-22.04' }}
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
echo "::error title=⛔ error hint::Only support ubuntu-22.04 for now"
|
||||||
|
exit 1
|
||||||
|
|
||||||
|
- name: Create installation directory
|
||||||
|
shell: bash
|
||||||
|
run: sudo mkdir -p /opt/intel
|
||||||
|
|
||||||
|
- name: Download and install SGX SDK on ubuntu-22.04
|
||||||
|
if: ${{ inputs.os == 'ubuntu-22.04' }}
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
sudo wget -O sgx_linux_x64_sdk.bin https://download.01.org/intel-sgx/sgx-linux/2.25/distro/ubuntu22.04-server/sgx_linux_x64_sdk_2.25.100.3.bin
|
||||||
|
sudo chmod +x sgx_linux_x64_sdk.bin
|
||||||
|
echo 'yes' | sudo ./sgx_linux_x64_sdk.bin
|
||||||
|
working-directory: /opt/intel
|
||||||
|
|
||||||
|
- name: Add SGX repository and install libraries
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
echo "deb [arch=amd64] https://download.01.org/intel-sgx/sgx_repo/ubuntu $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/intel-sgx.list
|
||||||
|
wget -qO - https://download.01.org/intel-sgx/sgx_repo/ubuntu/intel-sgx-deb.key | sudo apt-key add -
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install -y libsgx-launch libsgx-urts
|
||||||
|
|
||||||
|
- name: Source SGX SDK environment
|
||||||
|
shell: bash
|
||||||
|
run: source /opt/intel/sgxsdk/environment
|
80
.github/actions/install-wasi-sdk-wabt/action.yml
vendored
Normal file
80
.github/actions/install-wasi-sdk-wabt/action.yml
vendored
Normal file
|
@ -0,0 +1,80 @@
|
||||||
|
# Copyright (C) 2019 Intel Corporation. All rights reserved.
|
||||||
|
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||||
|
|
||||||
|
# Get URLs from:
|
||||||
|
# - https://github.com/WebAssembly/wasi-sdk/releases
|
||||||
|
# - https://github.com/WebAssembly/wabt/releases
|
||||||
|
|
||||||
|
# Install WASI-SDK and WABT at /opt
|
||||||
|
# /opt is the assumed location widely used in the project
|
||||||
|
name: Install WASI-SDK and WABT
|
||||||
|
|
||||||
|
description: A composite action to download and install wasi-sdk and wabt on Ubuntu, macOS.
|
||||||
|
|
||||||
|
inputs:
|
||||||
|
os:
|
||||||
|
description: "Operating system to install on (ubuntu, macos)"
|
||||||
|
required: true
|
||||||
|
|
||||||
|
runs:
|
||||||
|
using: "composite"
|
||||||
|
steps:
|
||||||
|
- name: Check Runner OS
|
||||||
|
if: ${{ !startsWith(inputs.os, 'ubuntu') && !startsWith(inputs.os, 'windows') && !startsWith(inputs.os, 'macos') }}
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
echo "::error title=⛔ error hint::Support Ubuntu, Windows, and macOS Only"
|
||||||
|
exit 1
|
||||||
|
|
||||||
|
- name: Set up wasi-sdk and wabt on Ubuntu
|
||||||
|
if: ${{ startsWith(inputs.os, 'ubuntu') }}
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
sudo wget -O wasi-sdk.tar.gz --progress=dot:giga https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-25/wasi-sdk-25.0-x86_64-linux.tar.gz
|
||||||
|
sudo tar -xf wasi-sdk.tar.gz
|
||||||
|
sudo ln -sf wasi-sdk-25.0-x86_64-linux/ wasi-sdk
|
||||||
|
sudo wget -O wabt.tar.gz --progress=dot:giga https://github.com/WebAssembly/wabt/releases/download/1.0.37/wabt-1.0.37-ubuntu-20.04.tar.gz
|
||||||
|
sudo tar -xf wabt.tar.gz
|
||||||
|
sudo ln -sf wabt-1.0.37 wabt
|
||||||
|
/opt/wasi-sdk/bin/clang --version
|
||||||
|
/opt/wabt/bin/wasm-interp --version
|
||||||
|
echo "::notice::wasi-sdk-25 and wabt-1.0.37 installed on ubuntu"
|
||||||
|
working-directory: /opt
|
||||||
|
|
||||||
|
- name: Set up wasi-sdk and wabt on macOS-13 (intel)
|
||||||
|
if: ${{ inputs.os == 'macos-13' }}
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
sudo wget -O wasi-sdk.tar.gz --progress=dot:giga https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-25/wasi-sdk-25.0-x86_64-macos.tar.gz
|
||||||
|
sudo tar -xf wasi-sdk.tar.gz
|
||||||
|
sudo ln -sf wasi-sdk-25.0-x86_64-macos wasi-sdk
|
||||||
|
sudo wget -O wabt.tar.gz --progress=dot:giga https://github.com/WebAssembly/wabt/releases/download/1.0.36/wabt-1.0.36-macos-12.tar.gz
|
||||||
|
sudo tar -xf wabt.tar.gz
|
||||||
|
sudo ln -sf wabt-1.0.36 wabt
|
||||||
|
/opt/wasi-sdk/bin/clang --version
|
||||||
|
/opt/wabt/bin/wasm-interp --version
|
||||||
|
echo "::notice::wasi-sdk-25 and wabt-1.0.36 installed on macos-13"
|
||||||
|
working-directory: /opt
|
||||||
|
|
||||||
|
- name: Set up wasi-sdk and wabt on macOS-14 (arm64)
|
||||||
|
if: ${{ inputs.os == 'macos-14' }}
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
sudo wget -O wasi-sdk.tar.gz --progress=dot:giga https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-25/wasi-sdk-25.0-arm64-macos.tar.gz
|
||||||
|
sudo tar -xf wasi-sdk.tar.gz
|
||||||
|
sudo ln -sf wasi-sdk-25.0-arm64-macos wasi-sdk
|
||||||
|
sudo wget -O wabt.tar.gz --progress=dot:giga https://github.com/WebAssembly/wabt/releases/download/1.0.37/wabt-1.0.37-macos-14.tar.gz
|
||||||
|
sudo tar -xf wabt.tar.gz
|
||||||
|
sudo ln -sf wabt-1.0.37 wabt
|
||||||
|
/opt/wasi-sdk/bin/clang --version
|
||||||
|
/opt/wabt/bin/wasm-interp --version
|
||||||
|
echo "::notice::wasi-sdk-25 and wabt-1.0.37 installed on macos-14"
|
||||||
|
working-directory: /opt
|
||||||
|
|
||||||
|
#TODO: Add support for Windows
|
||||||
|
- name: Set up wasi-sdk and wabt on Windows
|
||||||
|
if: ${{ startsWith(inputs.os, 'windows') }}
|
||||||
|
shell: powershell
|
||||||
|
run: |
|
||||||
|
echo "::notice::Support for Windows is not implemented yet"
|
||||||
|
exit 1
|
3
.github/workflows/build_iwasm_release.yml
vendored
3
.github/workflows/build_iwasm_release.yml
vendored
|
@ -137,7 +137,8 @@ jobs:
|
||||||
- name: compress the binary on non-Windows
|
- name: compress the binary on non-Windows
|
||||||
if: inputs.runner != 'windows-latest'
|
if: inputs.runner != 'windows-latest'
|
||||||
run: |
|
run: |
|
||||||
tar czf iwasm${{ matrix.suffix }}-${{ inputs.ver_num }}-${{ inputs.runner }}.tar.gz iwasm
|
# Follow the symlink to the actual binary file
|
||||||
|
tar --dereference -czf iwasm${{ matrix.suffix }}-${{ inputs.ver_num }}-${{ inputs.runner }}.tar.gz iwasm
|
||||||
zip iwasm${{ matrix.suffix }}-${{ inputs.ver_num }}-${{ inputs.runner }}.zip iwasm
|
zip iwasm${{ matrix.suffix }}-${{ inputs.ver_num }}-${{ inputs.runner }}.zip iwasm
|
||||||
working-directory: ${{ inputs.cwd }}/build
|
working-directory: ${{ inputs.cwd }}/build
|
||||||
|
|
||||||
|
|
9
.github/workflows/build_llvm_libraries.yml
vendored
9
.github/workflows/build_llvm_libraries.yml
vendored
|
@ -65,6 +65,7 @@ jobs:
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
echo "last_commit=$(GH_TOKEN=${{ secrets.GITHUB_TOKEN }} /usr/bin/env python3 ./build_llvm.py ${{ inputs.extra_build_llvm_options }} --llvm-ver)" >> $GITHUB_OUTPUT
|
echo "last_commit=$(GH_TOKEN=${{ secrets.GITHUB_TOKEN }} /usr/bin/env python3 ./build_llvm.py ${{ inputs.extra_build_llvm_options }} --llvm-ver)" >> $GITHUB_OUTPUT
|
||||||
|
working-directory: build-scripts
|
||||||
|
|
||||||
# Bump the prefix number to evict all previous caches and
|
# Bump the prefix number to evict all previous caches and
|
||||||
# enforce a clean build, in the unlikely case that some
|
# enforce a clean build, in the unlikely case that some
|
||||||
|
@ -88,14 +89,6 @@ jobs:
|
||||||
./core/deps/llvm/build/share
|
./core/deps/llvm/build/share
|
||||||
key: ${{ steps.create_lib_cache_key.outputs.key}}
|
key: ${{ steps.create_lib_cache_key.outputs.key}}
|
||||||
|
|
||||||
- uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: ~/.ccache
|
|
||||||
key: 0-ccache-${{ inputs.os }}-${{ steps.get_last_commit.outputs.last_commit }}
|
|
||||||
restore-keys: |
|
|
||||||
0-ccache-${{ inputs.os }}
|
|
||||||
if: steps.retrieve_llvm_libs.outputs.cache-hit != 'true' && inputs.os == 'ubuntu-20.04'
|
|
||||||
|
|
||||||
- uses: actions/cache@v4
|
- uses: actions/cache@v4
|
||||||
with:
|
with:
|
||||||
path: ~/.cache/ccache
|
path: ~/.cache/ccache
|
||||||
|
|
7
.github/workflows/build_wamr_lldb.yml
vendored
7
.github/workflows/build_wamr_lldb.yml
vendored
|
@ -172,6 +172,12 @@ jobs:
|
||||||
python3 ci/validate_lldb.py --port 1239 --lldb core/deps/wamr-lldb/bin/lldb --wamr wamr-debug/iwasm --verbose
|
python3 ci/validate_lldb.py --port 1239 --lldb core/deps/wamr-lldb/bin/lldb --wamr wamr-debug/iwasm --verbose
|
||||||
working-directory: .
|
working-directory: .
|
||||||
|
|
||||||
|
# Define CMAKE_OSX_SYSROOT to avoid the error:
|
||||||
|
# no such file or directory: 'llvm-project/build/tools/lldb/tools/debugserver/source/mach_excServer.c'
|
||||||
|
# no such file or directory: 'llvm-project/build/tools/lldb/tools/debugserver/source/mach_excUser.c'
|
||||||
|
#
|
||||||
|
# This workaround should be removed when the issue is fixed in llvm-project:
|
||||||
|
# - https://github.com/llvm/llvm-project/pull/138020/
|
||||||
- name: build lldb macos
|
- name: build lldb macos
|
||||||
if: steps.lldb_build_cache.outputs.cache-hit != 'true' && contains(inputs.runner, 'macos')
|
if: steps.lldb_build_cache.outputs.cache-hit != 'true' && contains(inputs.runner, 'macos')
|
||||||
run: |
|
run: |
|
||||||
|
@ -179,6 +185,7 @@ jobs:
|
||||||
mkdir -p wamr-lldb
|
mkdir -p wamr-lldb
|
||||||
cmake -S ./llvm -B build \
|
cmake -S ./llvm -B build \
|
||||||
-G Ninja \
|
-G Ninja \
|
||||||
|
-DCMAKE_OSX_SYSROOT=$(xcrun --show-sdk-path) \
|
||||||
-DCMAKE_INSTALL_PREFIX=../wamr-lldb \
|
-DCMAKE_INSTALL_PREFIX=../wamr-lldb \
|
||||||
-DCMAKE_BUILD_TYPE:STRING="Release" \
|
-DCMAKE_BUILD_TYPE:STRING="Release" \
|
||||||
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
|
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
|
||||||
|
|
3
.github/workflows/build_wamrc.yml
vendored
3
.github/workflows/build_wamrc.yml
vendored
|
@ -73,7 +73,8 @@ jobs:
|
||||||
- name: compress the binary on non-Windows
|
- name: compress the binary on non-Windows
|
||||||
if: inputs.runner != 'windows-latest' && inputs.release
|
if: inputs.runner != 'windows-latest' && inputs.release
|
||||||
run: |
|
run: |
|
||||||
tar czf wamrc-${{ inputs.ver_num }}-${{ inputs.runner }}.tar.gz wamrc
|
# Follow the symlink to the actual binary file
|
||||||
|
tar --dereference -czf wamrc-${{ inputs.ver_num }}-${{ inputs.runner }}.tar.gz wamrc
|
||||||
zip wamrc-${{ inputs.ver_num }}-${{ inputs.runner }}.zip wamrc
|
zip wamrc-${{ inputs.ver_num }}-${{ inputs.runner }}.zip wamrc
|
||||||
working-directory: wamr-compiler/build
|
working-directory: wamr-compiler/build
|
||||||
|
|
||||||
|
|
29
.github/workflows/check_version_h.yml
vendored
Normal file
29
.github/workflows/check_version_h.yml
vendored
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
# Copyright (C) 2019 Intel Corporation. All rights reserved.
|
||||||
|
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||||
|
name: confirm version.h stay in sync
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
confirm_version:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: cmake execute to generate version.h
|
||||||
|
run: cmake -B build_version -S .
|
||||||
|
|
||||||
|
- name: confirm version.h
|
||||||
|
run: |
|
||||||
|
if [ -z "$(git status --porcelain | grep version.h)" ]; then
|
||||||
|
echo "version.h is in sync"
|
||||||
|
else
|
||||||
|
echo "version.h is not in sync"
|
||||||
|
exit 1
|
||||||
|
fi
|
8
.github/workflows/codeql.yml
vendored
8
.github/workflows/codeql.yml
vendored
|
@ -53,7 +53,7 @@ jobs:
|
||||||
|
|
||||||
# Initializes the CodeQL tools for scanning.
|
# Initializes the CodeQL tools for scanning.
|
||||||
- name: Initialize CodeQL
|
- name: Initialize CodeQL
|
||||||
uses: github/codeql-action/init@v3.28.8
|
uses: github/codeql-action/init@v3.28.19
|
||||||
with:
|
with:
|
||||||
languages: ${{ matrix.language }}
|
languages: ${{ matrix.language }}
|
||||||
|
|
||||||
|
@ -70,7 +70,7 @@ jobs:
|
||||||
- run: |
|
- run: |
|
||||||
./.github/scripts/codeql_buildscript.sh
|
./.github/scripts/codeql_buildscript.sh
|
||||||
- name: Perform CodeQL Analysis
|
- name: Perform CodeQL Analysis
|
||||||
uses: github/codeql-action/analyze@v3.28.8
|
uses: github/codeql-action/analyze@v3.28.19
|
||||||
with:
|
with:
|
||||||
category: "/language:${{matrix.language}}"
|
category: "/language:${{matrix.language}}"
|
||||||
upload: false
|
upload: false
|
||||||
|
@ -99,14 +99,14 @@ jobs:
|
||||||
output: ${{ steps.step1.outputs.sarif-output }}/cpp.sarif
|
output: ${{ steps.step1.outputs.sarif-output }}/cpp.sarif
|
||||||
|
|
||||||
- name: Upload CodeQL results to code scanning
|
- name: Upload CodeQL results to code scanning
|
||||||
uses: github/codeql-action/upload-sarif@v3.28.8
|
uses: github/codeql-action/upload-sarif@v3.28.19
|
||||||
with:
|
with:
|
||||||
sarif_file: ${{ steps.step1.outputs.sarif-output }}
|
sarif_file: ${{ steps.step1.outputs.sarif-output }}
|
||||||
category: "/language:${{matrix.language}}"
|
category: "/language:${{matrix.language}}"
|
||||||
|
|
||||||
- name: Upload CodeQL results as an artifact
|
- name: Upload CodeQL results as an artifact
|
||||||
if: success() || failure()
|
if: success() || failure()
|
||||||
uses: actions/upload-artifact@v4.6.0
|
uses: actions/upload-artifact@v4.6.2
|
||||||
with:
|
with:
|
||||||
name: codeql-results
|
name: codeql-results
|
||||||
path: ${{ steps.step1.outputs.sarif-output }}
|
path: ${{ steps.step1.outputs.sarif-output }}
|
||||||
|
|
2
.github/workflows/coding_guidelines.yml
vendored
2
.github/workflows/coding_guidelines.yml
vendored
|
@ -19,7 +19,7 @@ permissions:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
compliance_job:
|
compliance_job:
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-22.04
|
||||||
steps:
|
steps:
|
||||||
- name: checkout
|
- name: checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
126
.github/workflows/compilation_on_android_ubuntu.yml
vendored
126
.github/workflows/compilation_on_android_ubuntu.yml
vendored
|
@ -74,6 +74,12 @@ permissions:
|
||||||
contents: read
|
contents: read
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
check_version_h:
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
actions: write
|
||||||
|
uses: ./.github/workflows/check_version_h.yml
|
||||||
|
|
||||||
build_llvm_libraries_on_ubuntu_2204:
|
build_llvm_libraries_on_ubuntu_2204:
|
||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
|
@ -152,6 +158,7 @@ jobs:
|
||||||
"-DWAMR_BUILD_PERF_PROFILING=1",
|
"-DWAMR_BUILD_PERF_PROFILING=1",
|
||||||
"-DWAMR_BUILD_REF_TYPES=1",
|
"-DWAMR_BUILD_REF_TYPES=1",
|
||||||
"-DWAMR_BUILD_SIMD=1",
|
"-DWAMR_BUILD_SIMD=1",
|
||||||
|
"-DWAMR_BUILD_LIB_SIMDE=1",
|
||||||
"-DWAMR_BUILD_TAIL_CALL=1",
|
"-DWAMR_BUILD_TAIL_CALL=1",
|
||||||
"-DWAMR_DISABLE_HW_BOUND_CHECK=1",
|
"-DWAMR_DISABLE_HW_BOUND_CHECK=1",
|
||||||
"-DWAMR_BUILD_MEMORY64=1",
|
"-DWAMR_BUILD_MEMORY64=1",
|
||||||
|
@ -172,11 +179,9 @@ jobs:
|
||||||
make_options_feature: "-DWAMR_BUILD_MULTI_MODULE=1"
|
make_options_feature: "-DWAMR_BUILD_MULTI_MODULE=1"
|
||||||
- make_options_run_mode: $MULTI_TIER_JIT_BUILD_OPTIONS
|
- make_options_run_mode: $MULTI_TIER_JIT_BUILD_OPTIONS
|
||||||
make_options_feature: "-DWAMR_BUILD_MULTI_MODULE=1"
|
make_options_feature: "-DWAMR_BUILD_MULTI_MODULE=1"
|
||||||
# SIMD only on JIT/AOT mode
|
# SIMD only on JIT/AOT/fast interpreter mode
|
||||||
- make_options_run_mode: $CLASSIC_INTERP_BUILD_OPTIONS
|
- make_options_run_mode: $CLASSIC_INTERP_BUILD_OPTIONS
|
||||||
make_options_feature: "-DWAMR_BUILD_SIMD=1"
|
make_options_feature: "-DWAMR_BUILD_SIMD=1"
|
||||||
- make_options_run_mode: $FAST_INTERP_BUILD_OPTIONS
|
|
||||||
make_options_feature: "-DWAMR_BUILD_SIMD=1"
|
|
||||||
# DEBUG_INTERP only on CLASSIC INTERP mode
|
# DEBUG_INTERP only on CLASSIC INTERP mode
|
||||||
- make_options_run_mode: $AOT_BUILD_OPTIONS
|
- make_options_run_mode: $AOT_BUILD_OPTIONS
|
||||||
make_options_feature: "-DWAMR_BUILD_DEBUG_INTERP=1"
|
make_options_feature: "-DWAMR_BUILD_DEBUG_INTERP=1"
|
||||||
|
@ -310,17 +315,14 @@ jobs:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os: [ubuntu-22.04]
|
os: [ubuntu-22.04]
|
||||||
wasi_sdk_release:
|
build_target: [
|
||||||
[
|
"X86_64",
|
||||||
"https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-20/wasi-sdk-20.0-linux.tar.gz",
|
"X86_32",
|
||||||
]
|
|
||||||
wabt_release:
|
|
||||||
[
|
|
||||||
"https://github.com/WebAssembly/wabt/releases/download/1.0.31/wabt-1.0.31-ubuntu.tar.gz",
|
|
||||||
]
|
]
|
||||||
include:
|
include:
|
||||||
- os: ubuntu-22.04
|
- os: ubuntu-22.04
|
||||||
llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}
|
llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: checkout
|
- name: checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
@ -341,19 +343,10 @@ jobs:
|
||||||
if: (steps.retrieve_llvm_libs.outputs.cache-hit != 'true')
|
if: (steps.retrieve_llvm_libs.outputs.cache-hit != 'true')
|
||||||
run: echo "::error::can not get prebuilt llvm libraries" && exit 1
|
run: echo "::error::can not get prebuilt llvm libraries" && exit 1
|
||||||
|
|
||||||
- name: download and install wasi-sdk
|
- name: install-wasi-sdk-wabt
|
||||||
run: |
|
uses: ./.github/actions/install-wasi-sdk-wabt
|
||||||
cd /opt
|
with:
|
||||||
sudo wget ${{ matrix.wasi_sdk_release }}
|
os: ${{ matrix.os }}
|
||||||
sudo tar -xzf wasi-sdk-*.tar.gz
|
|
||||||
sudo ln -sf wasi-sdk-20.0 wasi-sdk
|
|
||||||
|
|
||||||
- name: download and install wabt
|
|
||||||
run: |
|
|
||||||
cd /opt
|
|
||||||
sudo wget ${{ matrix.wabt_release }}
|
|
||||||
sudo tar -xzf wabt-1.0.31-*.tar.gz
|
|
||||||
sudo mv wabt-1.0.31 wabt
|
|
||||||
|
|
||||||
- name: Build wamrc
|
- name: Build wamrc
|
||||||
run: |
|
run: |
|
||||||
|
@ -362,10 +355,16 @@ jobs:
|
||||||
cmake --build . --config Release --parallel 4
|
cmake --build . --config Release --parallel 4
|
||||||
working-directory: wamr-compiler
|
working-directory: wamr-compiler
|
||||||
|
|
||||||
|
- name: Install dependencies for X86_32
|
||||||
|
if: matrix.build_target == 'X86_32'
|
||||||
|
run: |
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install -y g++-multilib
|
||||||
|
|
||||||
- name: Build and run unit tests
|
- name: Build and run unit tests
|
||||||
run: |
|
run: |
|
||||||
mkdir build && cd build
|
mkdir build && cd build
|
||||||
cmake ..
|
cmake .. -DWAMR_BUILD_TARGET=${{ matrix.build_target }}
|
||||||
cmake --build . --config Release --parallel 4
|
cmake --build . --config Release --parallel 4
|
||||||
ctest
|
ctest
|
||||||
working-directory: tests/unit
|
working-directory: tests/unit
|
||||||
|
@ -392,14 +391,6 @@ jobs:
|
||||||
$MULTI_TIER_JIT_BUILD_OPTIONS,
|
$MULTI_TIER_JIT_BUILD_OPTIONS,
|
||||||
]
|
]
|
||||||
os: [ubuntu-22.04]
|
os: [ubuntu-22.04]
|
||||||
wasi_sdk_release:
|
|
||||||
[
|
|
||||||
"https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-20/wasi-sdk-20.0-linux.tar.gz",
|
|
||||||
]
|
|
||||||
wabt_release:
|
|
||||||
[
|
|
||||||
"https://github.com/WebAssembly/wabt/releases/download/1.0.31/wabt-1.0.31-ubuntu.tar.gz",
|
|
||||||
]
|
|
||||||
include:
|
include:
|
||||||
- os: ubuntu-22.04
|
- os: ubuntu-22.04
|
||||||
llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}
|
llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}
|
||||||
|
@ -425,12 +416,10 @@ jobs:
|
||||||
if: (!endsWith(matrix.make_options, '_INTERP_BUILD_OPTIONS')) && (steps.retrieve_llvm_libs.outputs.cache-hit != 'true')
|
if: (!endsWith(matrix.make_options, '_INTERP_BUILD_OPTIONS')) && (steps.retrieve_llvm_libs.outputs.cache-hit != 'true')
|
||||||
run: echo "::error::can not get prebuilt llvm libraries" && exit 1
|
run: echo "::error::can not get prebuilt llvm libraries" && exit 1
|
||||||
|
|
||||||
- name: download and install wabt
|
- name: install-wasi-sdk-wabt
|
||||||
run: |
|
uses: ./.github/actions/install-wasi-sdk-wabt
|
||||||
cd /opt
|
with:
|
||||||
sudo wget ${{ matrix.wabt_release }}
|
os: ${{ matrix.os }}
|
||||||
sudo tar -xzf wabt-1.0.31-*.tar.gz
|
|
||||||
sudo mv wabt-1.0.31 wabt
|
|
||||||
|
|
||||||
- name: Build wamrc
|
- name: Build wamrc
|
||||||
if: (!endsWith(matrix.make_options, '_INTERP_BUILD_OPTIONS'))
|
if: (!endsWith(matrix.make_options, '_INTERP_BUILD_OPTIONS'))
|
||||||
|
@ -448,6 +437,11 @@ jobs:
|
||||||
ctest --test-dir build --output-on-failure
|
ctest --test-dir build --output-on-failure
|
||||||
working-directory: samples/wasm-c-api
|
working-directory: samples/wasm-c-api
|
||||||
|
|
||||||
|
- name: Build Sample [printversion]
|
||||||
|
run: |
|
||||||
|
./test.sh
|
||||||
|
working-directory: samples/printversion
|
||||||
|
|
||||||
build_samples_others:
|
build_samples_others:
|
||||||
needs:
|
needs:
|
||||||
[
|
[
|
||||||
|
@ -459,34 +453,14 @@ jobs:
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
os: [ubuntu-22.04]
|
os: [ubuntu-22.04]
|
||||||
wasi_sdk_release:
|
|
||||||
[
|
|
||||||
"https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-20/wasi-sdk-20.0-linux.tar.gz",
|
|
||||||
]
|
|
||||||
wabt_release:
|
|
||||||
[
|
|
||||||
"https://github.com/WebAssembly/wabt/releases/download/1.0.31/wabt-1.0.31-ubuntu.tar.gz",
|
|
||||||
]
|
|
||||||
include:
|
include:
|
||||||
- os: ubuntu-22.04
|
- os: ubuntu-22.04
|
||||||
llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}
|
llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: checkout
|
- name: checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: download and install wasi-sdk
|
|
||||||
run: |
|
|
||||||
cd /opt
|
|
||||||
sudo wget ${{ matrix.wasi_sdk_release }}
|
|
||||||
sudo tar -xzf wasi-sdk-*.tar.gz
|
|
||||||
sudo ln -sf wasi-sdk-20.0 wasi-sdk
|
|
||||||
|
|
||||||
- name: download and install wabt
|
|
||||||
run: |
|
|
||||||
cd /opt
|
|
||||||
sudo wget ${{ matrix.wabt_release }}
|
|
||||||
sudo tar -xzf wabt-1.0.31-*.tar.gz
|
|
||||||
sudo ln -sf wabt-1.0.31 wabt
|
|
||||||
- name: Get LLVM libraries
|
- name: Get LLVM libraries
|
||||||
id: retrieve_llvm_libs
|
id: retrieve_llvm_libs
|
||||||
uses: actions/cache@v4
|
uses: actions/cache@v4
|
||||||
|
@ -498,12 +472,19 @@ jobs:
|
||||||
./core/deps/llvm/build/libexec
|
./core/deps/llvm/build/libexec
|
||||||
./core/deps/llvm/build/share
|
./core/deps/llvm/build/share
|
||||||
key: ${{ matrix.llvm_cache_key }}
|
key: ${{ matrix.llvm_cache_key }}
|
||||||
|
|
||||||
|
- name: install-wasi-sdk-wabt
|
||||||
|
uses: ./.github/actions/install-wasi-sdk-wabt
|
||||||
|
with:
|
||||||
|
os: ${{ matrix.os }}
|
||||||
|
|
||||||
- name: Build wamrc
|
- name: Build wamrc
|
||||||
run: |
|
run: |
|
||||||
mkdir build && cd build
|
mkdir build && cd build
|
||||||
cmake ..
|
cmake ..
|
||||||
cmake --build . --config Release --parallel 4
|
cmake --build . --config Release --parallel 4
|
||||||
working-directory: wamr-compiler
|
working-directory: wamr-compiler
|
||||||
|
|
||||||
- name: Build Sample [basic]
|
- name: Build Sample [basic]
|
||||||
run: |
|
run: |
|
||||||
cd samples/basic
|
cd samples/basic
|
||||||
|
@ -629,10 +610,6 @@ jobs:
|
||||||
$MEMORY64_TEST_OPTIONS,
|
$MEMORY64_TEST_OPTIONS,
|
||||||
$MULTI_MEMORY_TEST_OPTIONS,
|
$MULTI_MEMORY_TEST_OPTIONS,
|
||||||
]
|
]
|
||||||
wasi_sdk_release:
|
|
||||||
[
|
|
||||||
"https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-20/wasi-sdk-20.0-linux.tar.gz",
|
|
||||||
]
|
|
||||||
include:
|
include:
|
||||||
- os: ubuntu-22.04
|
- os: ubuntu-22.04
|
||||||
llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}
|
llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}
|
||||||
|
@ -643,11 +620,9 @@ jobs:
|
||||||
test_option: $WAMR_COMPILER_TEST_OPTIONS
|
test_option: $WAMR_COMPILER_TEST_OPTIONS
|
||||||
exclude:
|
exclude:
|
||||||
# incompatible modes and features
|
# incompatible modes and features
|
||||||
# classic-interp and fast-interp don't support simd
|
# classic-interp doesn't support simd
|
||||||
- running_mode: "classic-interp"
|
- running_mode: "classic-interp"
|
||||||
test_option: $SIMD_TEST_OPTIONS
|
test_option: $SIMD_TEST_OPTIONS
|
||||||
- running_mode: "fast-interp"
|
|
||||||
test_option: $SIMD_TEST_OPTIONS
|
|
||||||
# llvm jit doesn't support multi module
|
# llvm jit doesn't support multi module
|
||||||
- running_mode: "jit"
|
- running_mode: "jit"
|
||||||
test_option: $MULTI_MODULES_TEST_OPTIONS
|
test_option: $MULTI_MODULES_TEST_OPTIONS
|
||||||
|
@ -703,20 +678,9 @@ jobs:
|
||||||
|
|
||||||
- name: download and install wasi-sdk
|
- name: download and install wasi-sdk
|
||||||
if: matrix.test_option == '$WASI_TEST_OPTIONS'
|
if: matrix.test_option == '$WASI_TEST_OPTIONS'
|
||||||
run: |
|
uses: ./.github/actions/install-wasi-sdk-wabt
|
||||||
cd /opt
|
with:
|
||||||
sudo wget ${{ matrix.wasi_sdk_release }}
|
os: ${{ matrix.os }}
|
||||||
sudo tar -xzf wasi-sdk-*.tar.gz
|
|
||||||
sudo mv wasi-sdk-20.0 wasi-sdk
|
|
||||||
|
|
||||||
# It is a temporary solution until new wasi-sdk that includes bug fixes is released
|
|
||||||
- name: build wasi-libc from source
|
|
||||||
if: matrix.test_option == '$WASI_TEST_OPTIONS'
|
|
||||||
run: |
|
|
||||||
git clone https://github.com/WebAssembly/wasi-libc
|
|
||||||
cd wasi-libc
|
|
||||||
make -j AR=/opt/wasi-sdk/bin/llvm-ar NM=/opt/wasi-sdk/bin/llvm-nm CC=/opt/wasi-sdk/bin/clang THREAD_MODEL=posix
|
|
||||||
echo "SYSROOT_PATH=$PWD/sysroot" >> $GITHUB_ENV
|
|
||||||
|
|
||||||
- name: set env variable(if llvm are used)
|
- name: set env variable(if llvm are used)
|
||||||
if: matrix.running_mode == 'aot' || matrix.running_mode == 'jit' || matrix.running_mode == 'multi-tier-jit'
|
if: matrix.running_mode == 'aot' || matrix.running_mode == 'jit' || matrix.running_mode == 'multi-tier-jit'
|
||||||
|
@ -754,7 +718,7 @@ jobs:
|
||||||
|
|
||||||
- name: Build WASI thread tests
|
- name: Build WASI thread tests
|
||||||
if: matrix.test_option == '$WASI_TEST_OPTIONS'
|
if: matrix.test_option == '$WASI_TEST_OPTIONS'
|
||||||
run: bash build.sh --sysroot "$SYSROOT_PATH"
|
run: bash build.sh
|
||||||
working-directory: ./core/iwasm/libraries/lib-wasi-threads/test/
|
working-directory: ./core/iwasm/libraries/lib-wasi-threads/test/
|
||||||
|
|
||||||
- name: build socket api tests
|
- name: build socket api tests
|
||||||
|
|
111
.github/workflows/compilation_on_macos.yml
vendored
111
.github/workflows/compilation_on_macos.yml
vendored
|
@ -46,11 +46,14 @@ concurrency:
|
||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
|
|
||||||
env:
|
env:
|
||||||
AOT_BUILD_OPTIONS: "-DWAMR_BUILD_AOT=1 -DWAMR_BUILD_FAST_INTERP=0 -DWAMR_BUILD_INTERP=0 -DWAMR_BUILD_JIT=0 -DWAMR_BUILD_LAZY_JIT=0"
|
# For BUILD
|
||||||
CLASSIC_INTERP_BUILD_OPTIONS: "-DWAMR_BUILD_AOT=0 -DWAMR_BUILD_FAST_INTERP=0 -DWAMR_BUILD_INTERP=1 -DWAMR_BUILD_JIT=0 -DWAMR_BUILD_LAZY_JIT=0"
|
AOT_BUILD_OPTIONS: " -DWAMR_BUILD_AOT=1 -DWAMR_BUILD_FAST_INTERP=0 -DWAMR_BUILD_INTERP=0 -DWAMR_BUILD_FAST_JIT=0 -DWAMR_BUILD_JIT=0 -DWAMR_BUILD_LAZY_JIT=0"
|
||||||
FAST_INTERP_BUILD_OPTIONS: "-DWAMR_BUILD_AOT=0 -DWAMR_BUILD_FAST_INTERP=1 -DWAMR_BUILD_INTERP=1 -DWAMR_BUILD_JIT=0 -DWAMR_BUILD_LAZY_JIT=0"
|
CLASSIC_INTERP_BUILD_OPTIONS: "-DWAMR_BUILD_AOT=0 -DWAMR_BUILD_FAST_INTERP=0 -DWAMR_BUILD_INTERP=1 -DWAMR_BUILD_FAST_JIT=0 -DWAMR_BUILD_JIT=0 -DWAMR_BUILD_LAZY_JIT=0"
|
||||||
LLVM_LAZY_JIT_BUILD_OPTIONS: "-DWAMR_BUILD_AOT=1 -DWAMR_BUILD_FAST_INTERP=0 -DWAMR_BUILD_INTERP=0 -DWAMR_BUILD_JIT=1 -DWAMR_BUILD_LAZY_JIT=1"
|
FAST_INTERP_BUILD_OPTIONS: " -DWAMR_BUILD_AOT=0 -DWAMR_BUILD_FAST_INTERP=1 -DWAMR_BUILD_INTERP=1 -DWAMR_BUILD_FAST_JIT=0 -DWAMR_BUILD_JIT=0 -DWAMR_BUILD_LAZY_JIT=0"
|
||||||
LLVM_EAGER_JIT_BUILD_OPTIONS: "-DWAMR_BUILD_AOT=1 -DWAMR_BUILD_FAST_INTERP=0 -DWAMR_BUILD_INTERP=0 -DWAMR_BUILD_JIT=1 -DWAMR_BUILD_LAZY_JIT=0"
|
FAST_JIT_BUILD_OPTIONS: " -DWAMR_BUILD_AOT=1 -DWAMR_BUILD_FAST_INTERP=0 -DWAMR_BUILD_INTERP=0 -DWAMR_BUILD_FAST_JIT=1 -DWAMR_BUILD_JIT=0 -DWAMR_BUILD_LAZY_JIT=0"
|
||||||
|
LLVM_LAZY_JIT_BUILD_OPTIONS: " -DWAMR_BUILD_AOT=1 -DWAMR_BUILD_FAST_INTERP=0 -DWAMR_BUILD_INTERP=0 -DWAMR_BUILD_FAST_JIT=0 -DWAMR_BUILD_JIT=1 -DWAMR_BUILD_LAZY_JIT=1"
|
||||||
|
LLVM_EAGER_JIT_BUILD_OPTIONS: "-DWAMR_BUILD_AOT=1 -DWAMR_BUILD_FAST_INTERP=0 -DWAMR_BUILD_INTERP=0 -DWAMR_BUILD_FAST_JIT=0 -DWAMR_BUILD_JIT=1 -DWAMR_BUILD_LAZY_JIT=0"
|
||||||
|
MULTI_TIER_JIT_BUILD_OPTIONS: "-DWAMR_BUILD_AOT=1 -DWAMR_BUILD_FAST_INTERP=0 -DWAMR_BUILD_INTERP=1 -DWAMR_BUILD_FAST_JIT=1 -DWAMR_BUILD_JIT=1 -DWAMR_BUILD_LAZY_JIT=1"
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
|
@ -214,60 +217,82 @@ jobs:
|
||||||
working-directory: product-mini/platforms/${{ matrix.platform }}
|
working-directory: product-mini/platforms/${{ matrix.platform }}
|
||||||
|
|
||||||
build_samples_wasm_c_api:
|
build_samples_wasm_c_api:
|
||||||
needs: [build_iwasm]
|
needs:
|
||||||
|
[
|
||||||
|
build_iwasm,
|
||||||
|
build_llvm_libraries_on_intel_macos,
|
||||||
|
build_wamrc,
|
||||||
|
]
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
make_options: [
|
make_options: [
|
||||||
# Running modes supported
|
$AOT_BUILD_OPTIONS,
|
||||||
$CLASSIC_INTERP_BUILD_OPTIONS,
|
$CLASSIC_INTERP_BUILD_OPTIONS,
|
||||||
$FAST_INTERP_BUILD_OPTIONS,
|
$FAST_INTERP_BUILD_OPTIONS,
|
||||||
# Running modes unsupported
|
$FAST_JIT_BUILD_OPTIONS,
|
||||||
#$LLVM_LAZY_JIT_BUILD_OPTIONS,
|
$LLVM_LAZY_JIT_BUILD_OPTIONS,
|
||||||
#$LLVM_EAGER_JIT_BUILD_OPTIONS,
|
$LLVM_EAGER_JIT_BUILD_OPTIONS,
|
||||||
#$AOT_BUILD_OPTIONS,
|
$MULTI_TIER_JIT_BUILD_OPTIONS,
|
||||||
]
|
]
|
||||||
os: [macos-13]
|
os: [macos-13]
|
||||||
wasi_sdk_release:
|
include:
|
||||||
[
|
- os: macos-13
|
||||||
"https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-20/wasi-sdk-20.0-macos.tar.gz",
|
llvm_cache_key: ${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}
|
||||||
]
|
|
||||||
wabt_release:
|
|
||||||
[
|
|
||||||
"https://github.com/WebAssembly/wabt/releases/download/1.0.31/wabt-1.0.31-macos-12.tar.gz",
|
|
||||||
]
|
|
||||||
steps:
|
steps:
|
||||||
- name: checkout
|
- name: checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: download and install wabt
|
- name: Get LLVM libraries
|
||||||
|
id: retrieve_llvm_libs
|
||||||
|
if: (!endsWith(matrix.make_options, '_INTERP_BUILD_OPTIONS'))
|
||||||
|
uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
./core/deps/llvm/build/bin
|
||||||
|
./core/deps/llvm/build/include
|
||||||
|
./core/deps/llvm/build/lib
|
||||||
|
./core/deps/llvm/build/libexec
|
||||||
|
./core/deps/llvm/build/share
|
||||||
|
key: ${{ matrix.llvm_cache_key }}
|
||||||
|
|
||||||
|
- name: Quit if cache miss
|
||||||
|
if: (!endsWith(matrix.make_options, '_INTERP_BUILD_OPTIONS')) && (steps.retrieve_llvm_libs.outputs.cache-hit != 'true')
|
||||||
|
run: echo "::error::can not get prebuilt llvm libraries" && exit 1
|
||||||
|
|
||||||
|
- name: install-wasi-sdk-wabt
|
||||||
|
uses: ./.github/actions/install-wasi-sdk-wabt
|
||||||
|
with:
|
||||||
|
os: ${{ matrix.os }}
|
||||||
|
|
||||||
|
- name: Build wamrc
|
||||||
|
if: (!endsWith(matrix.make_options, '_INTERP_BUILD_OPTIONS'))
|
||||||
run: |
|
run: |
|
||||||
cd /opt
|
mkdir build && cd build
|
||||||
sudo wget ${{ matrix.wabt_release }}
|
cmake ..
|
||||||
sudo tar -xzf wabt-1.0.31-*.tar.gz
|
cmake --build . --config Release --parallel 4
|
||||||
sudo mv wabt-1.0.31 wabt
|
working-directory: wamr-compiler
|
||||||
|
|
||||||
- name: Build Sample [wasm-c-api]
|
- name: Build Sample [wasm-c-api]
|
||||||
run: |
|
run: |
|
||||||
|
VERBOSE=1
|
||||||
cmake -S . -B build ${{ matrix.make_options }}
|
cmake -S . -B build ${{ matrix.make_options }}
|
||||||
cmake --build build --config Release --parallel 4
|
cmake --build build --config Debug --parallel 4
|
||||||
ctest --test-dir build --output-on-failure
|
ctest --test-dir build --output-on-failure
|
||||||
working-directory: samples/wasm-c-api
|
working-directory: samples/wasm-c-api
|
||||||
|
|
||||||
|
- name: Build Sample [printversion]
|
||||||
|
run: |
|
||||||
|
./test.sh
|
||||||
|
working-directory: samples/printversion
|
||||||
|
|
||||||
build_samples_others:
|
build_samples_others:
|
||||||
needs: [build_iwasm, build_wamrc, build_llvm_libraries_on_intel_macos, build_llvm_libraries_on_arm_macos]
|
needs: [build_iwasm, build_wamrc, build_llvm_libraries_on_intel_macos, build_llvm_libraries_on_arm_macos]
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
os: [macos-13, macos-14]
|
os: [macos-13, macos-14]
|
||||||
wasi_sdk_release:
|
|
||||||
[
|
|
||||||
"https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-20/wasi-sdk-20.0-macos.tar.gz",
|
|
||||||
]
|
|
||||||
wabt_release:
|
|
||||||
[
|
|
||||||
"https://github.com/WebAssembly/wabt/releases/download/1.0.31/wabt-1.0.31-macos-12.tar.gz",
|
|
||||||
]
|
|
||||||
include:
|
include:
|
||||||
- os: macos-13
|
- os: macos-13
|
||||||
llvm_cache_key: ${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}
|
llvm_cache_key: ${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}
|
||||||
|
@ -277,19 +302,10 @@ jobs:
|
||||||
- name: checkout
|
- name: checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: download and install wasi-sdk
|
- name: install-wasi-sdk-wabt
|
||||||
run: |
|
uses: ./.github/actions/install-wasi-sdk-wabt
|
||||||
cd /opt
|
with:
|
||||||
sudo wget ${{ matrix.wasi_sdk_release }}
|
os: ${{ matrix.os }}
|
||||||
sudo tar -xzf wasi-sdk-*.tar.gz
|
|
||||||
sudo ln -sf wasi-sdk-20.0 wasi-sdk
|
|
||||||
|
|
||||||
- name: download and install wabt
|
|
||||||
run: |
|
|
||||||
cd /opt
|
|
||||||
sudo wget ${{ matrix.wabt_release }}
|
|
||||||
sudo tar -xzf wabt-1.0.31-*.tar.gz
|
|
||||||
sudo ln -sf wabt-1.0.31 wabt
|
|
||||||
|
|
||||||
- name: Build Sample [basic]
|
- name: Build Sample [basic]
|
||||||
run: |
|
run: |
|
||||||
|
@ -356,12 +372,13 @@ jobs:
|
||||||
cmake --build . --config Release --parallel 4
|
cmake --build . --config Release --parallel 4
|
||||||
working-directory: wamr-compiler
|
working-directory: wamr-compiler
|
||||||
|
|
||||||
|
# cmake --build . --config Debug --parallel 4
|
||||||
- name: Build Sample [wasi-threads]
|
- name: Build Sample [wasi-threads]
|
||||||
run: |
|
run: |
|
||||||
cd samples/wasi-threads
|
cd samples/wasi-threads
|
||||||
mkdir build && cd build
|
mkdir build && cd build
|
||||||
cmake ..
|
cmake ..
|
||||||
cmake --build . --config Debug --parallel 4
|
cmake --build . --config Debug --verbose
|
||||||
./iwasm wasm-apps/no_pthread.wasm
|
./iwasm wasm-apps/no_pthread.wasm
|
||||||
|
|
||||||
../../../wamr-compiler/build/wamrc --size-level=0 --enable-multi-thread -o wasm-apps/no_pthread.aot wasm-apps/no_pthread.wasm
|
../../../wamr-compiler/build/wamrc --size-level=0 --enable-multi-thread -o wasm-apps/no_pthread.aot wasm-apps/no_pthread.wasm
|
||||||
|
|
4
.github/workflows/compilation_on_nuttx.yml
vendored
4
.github/workflows/compilation_on_nuttx.yml
vendored
|
@ -88,14 +88,14 @@ jobs:
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
repository: apache/nuttx
|
repository: apache/nuttx
|
||||||
ref: releases/12.6
|
ref: releases/12.9
|
||||||
path: nuttx
|
path: nuttx
|
||||||
|
|
||||||
- name: Checkout NuttX Apps
|
- name: Checkout NuttX Apps
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
repository: apache/nuttx-apps
|
repository: apache/nuttx-apps
|
||||||
ref: releases/12.6
|
ref: releases/12.9
|
||||||
path: apps
|
path: apps
|
||||||
|
|
||||||
- name: Checkout WAMR
|
- name: Checkout WAMR
|
||||||
|
|
182
.github/workflows/compilation_on_sgx.yml
vendored
182
.github/workflows/compilation_on_sgx.yml
vendored
|
@ -49,10 +49,14 @@ env:
|
||||||
# ref types enabled in wamrc by default, so we need to enable it for iwasm in AOT mode
|
# ref types enabled in wamrc by default, so we need to enable it for iwasm in AOT mode
|
||||||
AOT_BUILD_OPTIONS: "-DWAMR_BUILD_AOT=1 -DWAMR_BUILD_FAST_INTERP=0 -DWAMR_BUILD_INTERP=0 -DWAMR_BUILD_JIT=0 -DWAMR_BUILD_LAZY_JIT=0 -DWAMR_BUILD_REF_TYPES=1"
|
AOT_BUILD_OPTIONS: "-DWAMR_BUILD_AOT=1 -DWAMR_BUILD_FAST_INTERP=0 -DWAMR_BUILD_INTERP=0 -DWAMR_BUILD_JIT=0 -DWAMR_BUILD_LAZY_JIT=0 -DWAMR_BUILD_REF_TYPES=1"
|
||||||
CLASSIC_INTERP_BUILD_OPTIONS: "-DWAMR_BUILD_AOT=0 -DWAMR_BUILD_FAST_INTERP=0 -DWAMR_BUILD_INTERP=1 -DWAMR_BUILD_JIT=0 -DWAMR_BUILD_LAZY_JIT=0"
|
CLASSIC_INTERP_BUILD_OPTIONS: "-DWAMR_BUILD_AOT=0 -DWAMR_BUILD_FAST_INTERP=0 -DWAMR_BUILD_INTERP=1 -DWAMR_BUILD_JIT=0 -DWAMR_BUILD_LAZY_JIT=0"
|
||||||
FAST_INTERP_BUILD_OPTIONS: "-DWAMR_BUILD_AOT=0 -DWAMR_BUILD_FAST_INTERP=1 -DWAMR_BUILD_INTERP=1 -DWAMR_BUILD_JIT=0 -DWAMR_BUILD_LAZY_JIT=0"
|
FAST_INTERP_BUILD_OPTIONS: "-DWAMR_BUILD_AOT=0 -DWAMR_BUILD_FAST_INTERP=1 -DWAMR_BUILD_INTERP=1 -DWAMR_BUILD_JIT=0 -DWAMR_BUILD_LAZY_JIT=0 -DWAMR_BUILD_SIMD=0"
|
||||||
FAST_JIT_BUILD_OPTIONS: "-DWAMR_BUILD_AOT=1 -DWAMR_BUILD_FAST_INTERP=0 -DWAMR_BUILD_INTERP=1 -DWAMR_BUILD_FAST_JIT=1 -DWAMR_BUILD_JIT=0 -DWAMR_BUILD_LAZY_JIT=1"
|
FAST_JIT_BUILD_OPTIONS: "-DWAMR_BUILD_AOT=1 -DWAMR_BUILD_FAST_INTERP=0 -DWAMR_BUILD_INTERP=1 -DWAMR_BUILD_FAST_JIT=1 -DWAMR_BUILD_JIT=0 -DWAMR_BUILD_LAZY_JIT=1"
|
||||||
LLVM_LAZY_JIT_BUILD_OPTIONS: "-DWAMR_BUILD_AOT=1 -DWAMR_BUILD_FAST_INTERP=0 -DWAMR_BUILD_INTERP=0 -DWAMR_BUILD_JIT=1 -DWAMR_BUILD_LAZY_JIT=1"
|
LLVM_LAZY_JIT_BUILD_OPTIONS: "-DWAMR_BUILD_AOT=1 -DWAMR_BUILD_FAST_INTERP=0 -DWAMR_BUILD_INTERP=0 -DWAMR_BUILD_JIT=1 -DWAMR_BUILD_LAZY_JIT=1"
|
||||||
LLVM_EAGER_JIT_BUILD_OPTIONS: "-DWAMR_BUILD_AOT=1 -DWAMR_BUILD_FAST_INTERP=0 -DWAMR_BUILD_INTERP=0 -DWAMR_BUILD_JIT=1 -DWAMR_BUILD_LAZY_JIT=0"
|
LLVM_EAGER_JIT_BUILD_OPTIONS: "-DWAMR_BUILD_AOT=1 -DWAMR_BUILD_FAST_INTERP=0 -DWAMR_BUILD_INTERP=0 -DWAMR_BUILD_JIT=1 -DWAMR_BUILD_LAZY_JIT=0"
|
||||||
|
# For Spec Test
|
||||||
|
DEFAULT_TEST_OPTIONS: "-s spec -x -p -b"
|
||||||
|
SIMD_TEST_OPTIONS: "-s spec -x -p -b -S"
|
||||||
|
XIP_TEST_OPTIONS: "-s spec -x -p -b -X"
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
|
@ -64,7 +68,7 @@ jobs:
|
||||||
actions: write
|
actions: write
|
||||||
uses: ./.github/workflows/build_llvm_libraries.yml
|
uses: ./.github/workflows/build_llvm_libraries.yml
|
||||||
with:
|
with:
|
||||||
os: "ubuntu-20.04"
|
os: ubuntu-22.04
|
||||||
arch: "X86"
|
arch: "X86"
|
||||||
|
|
||||||
build_iwasm:
|
build_iwasm:
|
||||||
|
@ -97,12 +101,12 @@ jobs:
|
||||||
"-DWAMR_BUILD_PERF_PROFILING=1",
|
"-DWAMR_BUILD_PERF_PROFILING=1",
|
||||||
"-DWAMR_BUILD_REF_TYPES=1",
|
"-DWAMR_BUILD_REF_TYPES=1",
|
||||||
# doesn't support
|
# doesn't support
|
||||||
# "-DWAMR_BUILD_SIMD=1",
|
"-DWAMR_BUILD_SIMD=0",
|
||||||
"-DWAMR_BUILD_TAIL_CALL=1",
|
"-DWAMR_BUILD_TAIL_CALL=1",
|
||||||
"-DWAMR_DISABLE_HW_BOUND_CHECK=1",
|
"-DWAMR_DISABLE_HW_BOUND_CHECK=1",
|
||||||
"-DWAMR_BUILD_SGX_IPFS=1",
|
"-DWAMR_BUILD_SGX_IPFS=1",
|
||||||
]
|
]
|
||||||
os: [ubuntu-20.04]
|
os: [ubuntu-22.04]
|
||||||
platform: [linux-sgx]
|
platform: [linux-sgx]
|
||||||
exclude:
|
exclude:
|
||||||
# incompatible mode and feature
|
# incompatible mode and feature
|
||||||
|
@ -110,22 +114,14 @@ jobs:
|
||||||
- make_options_run_mode: $AOT_BUILD_OPTIONS
|
- make_options_run_mode: $AOT_BUILD_OPTIONS
|
||||||
make_options_feature: "-DWAMR_BUILD_MINI_LOADER=1"
|
make_options_feature: "-DWAMR_BUILD_MINI_LOADER=1"
|
||||||
steps:
|
steps:
|
||||||
- name: install SGX SDK and necessary libraries
|
|
||||||
run: |
|
|
||||||
mkdir -p /opt/intel
|
|
||||||
cd /opt/intel
|
|
||||||
wget https://download.01.org/intel-sgx/sgx-linux/2.15/distro/ubuntu20.04-server/sgx_linux_x64_sdk_2.15.100.3.bin
|
|
||||||
chmod +x sgx_linux_x64_sdk_2.15.100.3.bin
|
|
||||||
echo 'yes' | ./sgx_linux_x64_sdk_2.15.100.3.bin
|
|
||||||
echo 'deb [arch=amd64] https://download.01.org/intel-sgx/sgx_repo/ubuntu focal main' | sudo tee /etc/apt/sources.list.d/intel-sgx.list
|
|
||||||
wget -qO - https://download.01.org/intel-sgx/sgx_repo/ubuntu/intel-sgx-deb.key | sudo apt-key add -
|
|
||||||
sudo apt update
|
|
||||||
sudo apt install -y libsgx-launch libsgx-urts
|
|
||||||
source /opt/intel/sgxsdk/environment
|
|
||||||
|
|
||||||
- name: checkout
|
- name: checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: install SGX SDK and necessary libraries
|
||||||
|
uses: ./.github/actions/install-linux-sgx
|
||||||
|
with:
|
||||||
|
os: ${{ matrix.os }}
|
||||||
|
|
||||||
- name: Build iwasm
|
- name: Build iwasm
|
||||||
run: |
|
run: |
|
||||||
mkdir build && cd build
|
mkdir build && cd build
|
||||||
|
@ -150,69 +146,29 @@ jobs:
|
||||||
#$LLVM_LAZY_JIT_BUILD_OPTIONS,
|
#$LLVM_LAZY_JIT_BUILD_OPTIONS,
|
||||||
#$LLVM_EAGER_JIT_BUILD_OPTIONS,
|
#$LLVM_EAGER_JIT_BUILD_OPTIONS,
|
||||||
]
|
]
|
||||||
os: [ubuntu-20.04]
|
os: [ubuntu-22.04]
|
||||||
wasi_sdk_release:
|
|
||||||
[
|
|
||||||
"https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-19/wasi-sdk-19.0-linux.tar.gz",
|
|
||||||
]
|
|
||||||
wabt_release:
|
|
||||||
[
|
|
||||||
"https://github.com/WebAssembly/wabt/releases/download/1.0.31/wabt-1.0.31-ubuntu.tar.gz",
|
|
||||||
]
|
|
||||||
iwasm_make_options_feature: [
|
iwasm_make_options_feature: [
|
||||||
# Features to be tested: IPFS
|
# Features to be tested: IPFS
|
||||||
"-DWAMR_BUILD_SGX_IPFS=1",
|
"-DWAMR_BUILD_SGX_IPFS=1",
|
||||||
]
|
]
|
||||||
platform: [linux-sgx]
|
platform: [linux-sgx]
|
||||||
include:
|
include:
|
||||||
- os: ubuntu-20.04
|
- os: ubuntu-22.04
|
||||||
llvm_cache_key: ${{ needs.build_llvm_libraries.outputs.cache_key }}
|
llvm_cache_key: ${{ needs.build_llvm_libraries.outputs.cache_key }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: checkout
|
- name: checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: download and install wasi-sdk
|
- name: install-wasi-sdk-wabt
|
||||||
run: |
|
uses: ./.github/actions/install-wasi-sdk-wabt
|
||||||
cd /opt
|
with:
|
||||||
sudo wget ${{ matrix.wasi_sdk_release }}
|
os: ${{ matrix.os }}
|
||||||
sudo tar -xzf wasi-sdk-*.tar.gz
|
|
||||||
sudo mv wasi-sdk-19.0 wasi-sdk
|
|
||||||
|
|
||||||
- name: download and install wabt
|
|
||||||
run: |
|
|
||||||
cd /opt
|
|
||||||
sudo wget ${{ matrix.wabt_release }}
|
|
||||||
sudo tar -xzf wabt-1.0.31-*.tar.gz
|
|
||||||
sudo mv wabt-1.0.31 wabt
|
|
||||||
|
|
||||||
- name: build wasi-libc (needed for wasi-threads)
|
|
||||||
run: |
|
|
||||||
mkdir wasi-libc
|
|
||||||
cd wasi-libc
|
|
||||||
git init
|
|
||||||
# "Fix a_store operation in atomic.h" commit on main branch
|
|
||||||
git fetch https://github.com/WebAssembly/wasi-libc \
|
|
||||||
1dfe5c302d1c5ab621f7abf04620fae92700fd22
|
|
||||||
git checkout FETCH_HEAD
|
|
||||||
make \
|
|
||||||
AR=/opt/wasi-sdk/bin/llvm-ar \
|
|
||||||
NM=/opt/wasi-sdk/bin/llvm-nm \
|
|
||||||
CC=/opt/wasi-sdk/bin/clang \
|
|
||||||
THREAD_MODEL=posix
|
|
||||||
working-directory: core/deps
|
|
||||||
|
|
||||||
- name: install SGX SDK and necessary libraries
|
- name: install SGX SDK and necessary libraries
|
||||||
run: |
|
uses: ./.github/actions/install-linux-sgx
|
||||||
mkdir -p /opt/intel
|
with:
|
||||||
cd /opt/intel
|
os: ${{ matrix.os }}
|
||||||
wget https://download.01.org/intel-sgx/sgx-linux/2.15/distro/ubuntu20.04-server/sgx_linux_x64_sdk_2.15.100.3.bin
|
|
||||||
chmod +x sgx_linux_x64_sdk_2.15.100.3.bin
|
|
||||||
echo 'yes' | ./sgx_linux_x64_sdk_2.15.100.3.bin
|
|
||||||
echo 'deb [arch=amd64] https://download.01.org/intel-sgx/sgx_repo/ubuntu focal main' | sudo tee /etc/apt/sources.list.d/intel-sgx.list
|
|
||||||
wget -qO - https://download.01.org/intel-sgx/sgx_repo/ubuntu/intel-sgx-deb.key | sudo apt-key add -
|
|
||||||
sudo apt update
|
|
||||||
sudo apt install -y libsgx-launch libsgx-urts
|
|
||||||
|
|
||||||
- name: Build iwasm for testing samples
|
- name: Build iwasm for testing samples
|
||||||
run: |
|
run: |
|
||||||
|
@ -240,59 +196,61 @@ jobs:
|
||||||
- name: Build wamrc only for testing samples in aot mode
|
- name: Build wamrc only for testing samples in aot mode
|
||||||
if: matrix.iwasm_make_options_run_mode == '$AOT_BUILD_OPTIONS'
|
if: matrix.iwasm_make_options_run_mode == '$AOT_BUILD_OPTIONS'
|
||||||
run: |
|
run: |
|
||||||
mkdir build && cd build
|
cmake -S . -B build
|
||||||
cmake ..
|
cmake --build build --config Release --parallel 4
|
||||||
cmake --build . --config Release --parallel 4
|
cp build/wamrc ../product-mini/platforms/${{ matrix.platform }}/enclave-sample
|
||||||
cp wamrc `pwd`/../../product-mini/platforms/${{ matrix.platform }}/enclave-sample
|
|
||||||
working-directory: wamr-compiler
|
working-directory: wamr-compiler
|
||||||
|
|
||||||
- name: Build Sample [file]
|
- name: Build Sample [file]
|
||||||
run: |
|
run: |
|
||||||
cd samples/file
|
cmake -S . -B build
|
||||||
mkdir build && cd build
|
cmake --build build --config Debug --parallel 4
|
||||||
cmake ..
|
cp build/wasm-app/file.wasm ../../product-mini/platforms/${{ matrix.platform }}/enclave-sample
|
||||||
cmake --build . --config Debug --parallel 4
|
working-directory: samples/file
|
||||||
cp wasm-app/file.wasm `pwd`/../../../product-mini/platforms/${{ matrix.platform }}/enclave-sample
|
|
||||||
|
|
||||||
- name: Test Sample [file] in non-aot mode
|
- name: Test Sample [file] in non-aot mode
|
||||||
if: matrix.iwasm_make_options_run_mode != '$AOT_BUILD_OPTIONS'
|
if: matrix.iwasm_make_options_run_mode != '$AOT_BUILD_OPTIONS'
|
||||||
run: |
|
run: |
|
||||||
source /opt/intel/sgxsdk/environment
|
source /opt/intel/sgxsdk/environment
|
||||||
./iwasm --dir=. file.wasm
|
./iwasm --dir=. ./file.wasm
|
||||||
working-directory: product-mini/platforms/${{ matrix.platform }}/enclave-sample
|
working-directory: product-mini/platforms/${{ matrix.platform }}/enclave-sample
|
||||||
|
|
||||||
- name: Test Sample [file] in aot mode
|
- name: Test Sample [file] in aot mode
|
||||||
if: matrix.iwasm_make_options_run_mode == '$AOT_BUILD_OPTIONS'
|
if: matrix.iwasm_make_options_run_mode == '$AOT_BUILD_OPTIONS'
|
||||||
run: |
|
run: |
|
||||||
source /opt/intel/sgxsdk/environment
|
source /opt/intel/sgxsdk/environment
|
||||||
./wamrc -sgx -o file.aot file.wasm
|
./wamrc -sgx -o ./file.aot ./file.wasm
|
||||||
./iwasm --dir=. file.aot
|
./iwasm --dir=. ./file.aot
|
||||||
working-directory: product-mini/platforms/${{ matrix.platform }}/enclave-sample
|
working-directory: product-mini/platforms/${{ matrix.platform }}/enclave-sample
|
||||||
|
|
||||||
spec_test_default:
|
spec_test_default:
|
||||||
needs: [build_iwasm, build_llvm_libraries]
|
needs: [build_iwasm, build_llvm_libraries]
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ${{ matrix.os }}
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
running_mode: ["classic-interp", "fast-interp", "aot", "fast-jit"]
|
#(workaround) disable "fast-interp" because of SIMDE
|
||||||
# FIXME: use binary release(adding -b) instead of building from source after upgrading to 22.04
|
running_mode: ["classic-interp", "aot", "fast-jit"]
|
||||||
test_option: ["-x -p -s spec -P", "-x -p -s spec -S -P", "-x -p -s spec -X -P"]
|
test_option:
|
||||||
llvm_cache_key: ["${{ needs.build_llvm_libraries.outputs.cache_key }}"]
|
[$DEFAULT_TEST_OPTIONS, $SIMD_TEST_OPTIONS, $XIP_TEST_OPTIONS]
|
||||||
|
os: [ubuntu-22.04]
|
||||||
exclude:
|
exclude:
|
||||||
# classic-interp, fast-interp and fast-jit don't support simd
|
# classic-interp, fast-interp and fast-jit don't support simd
|
||||||
- running_mode: "classic-interp"
|
- running_mode: "classic-interp"
|
||||||
test_option: "-x -p -s spec -S -P"
|
test_option: $SIMD_TEST_OPTIONS
|
||||||
- running_mode: "fast-interp"
|
- running_mode: "fast-interp"
|
||||||
test_option: "-x -p -s spec -S -P"
|
test_option: $SIMD_TEST_OPTIONS
|
||||||
- running_mode: "fast-jit"
|
- running_mode: "fast-jit"
|
||||||
test_option: "-x -p -s spec -S -P"
|
test_option: $SIMD_TEST_OPTIONS
|
||||||
# classic-interp, fast-interp and fast jit don't support XIP
|
# classic-interp, fast-interp and fast jit don't support XIP
|
||||||
- running_mode: "classic-interp"
|
- running_mode: "classic-interp"
|
||||||
test_option: "-x -p -s spec -X -P"
|
test_option: $XIP_TEST_OPTIONS
|
||||||
- running_mode: "fast-interp"
|
- running_mode: "fast-interp"
|
||||||
test_option: "-x -p -s spec -X -P"
|
test_option: $XIP_TEST_OPTIONS
|
||||||
- running_mode: "fast-jit"
|
- running_mode: "fast-jit"
|
||||||
test_option: "-x -p -s spec -X -P"
|
test_option: $XIP_TEST_OPTIONS
|
||||||
|
include:
|
||||||
|
- os: ubuntu-22.04
|
||||||
|
llvm_cache_key: ${{ needs.build_llvm_libraries.outputs.cache_key }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: checkout
|
- name: checkout
|
||||||
|
@ -316,22 +274,44 @@ jobs:
|
||||||
run: echo "::error::can not get prebuilt llvm libraries" && exit 1
|
run: echo "::error::can not get prebuilt llvm libraries" && exit 1
|
||||||
|
|
||||||
- name: install SGX SDK and necessary libraries
|
- name: install SGX SDK and necessary libraries
|
||||||
run: |
|
uses: ./.github/actions/install-linux-sgx
|
||||||
mkdir -p /opt/intel
|
with:
|
||||||
cd /opt/intel
|
os: ${{ matrix.os }}
|
||||||
wget https://download.01.org/intel-sgx/sgx-linux/2.15/distro/ubuntu20.04-server/sgx_linux_x64_sdk_2.15.100.3.bin
|
|
||||||
chmod +x sgx_linux_x64_sdk_2.15.100.3.bin
|
|
||||||
echo 'yes' | ./sgx_linux_x64_sdk_2.15.100.3.bin
|
|
||||||
echo 'deb [arch=amd64] https://download.01.org/intel-sgx/sgx_repo/ubuntu focal main' | sudo tee /etc/apt/sources.list.d/intel-sgx.list
|
|
||||||
wget -qO - https://download.01.org/intel-sgx/sgx_repo/ubuntu/intel-sgx-deb.key | sudo apt-key add -
|
|
||||||
sudo apt update
|
|
||||||
sudo apt install -y libsgx-launch libsgx-urts
|
|
||||||
|
|
||||||
- name: install for wabt compilation
|
#workaround about a https://github.com/actions/runner-images/issues/6680#issuecomment-2640923706
|
||||||
run: sudo apt update && sudo apt install -y ninja-build
|
- name: Increase swapfile
|
||||||
|
run: |
|
||||||
|
sudo swapoff -a
|
||||||
|
sudo fallocate -l 15G /swapfile
|
||||||
|
sudo chmod 600 /swapfile
|
||||||
|
sudo mkswap /swapfile
|
||||||
|
sudo swapon /swapfile
|
||||||
|
sudo swapon --show
|
||||||
|
|
||||||
- name: run spec tests
|
- name: run spec tests
|
||||||
run: |
|
run: |
|
||||||
|
set +e
|
||||||
source /opt/intel/sgxsdk/environment
|
source /opt/intel/sgxsdk/environment
|
||||||
|
attempts=0
|
||||||
|
max_attempts=3
|
||||||
|
|
||||||
|
while [ $attempts -lt $max_attempts ]; do
|
||||||
./test_wamr.sh ${{ matrix.test_option }} -t ${{ matrix.running_mode }}
|
./test_wamr.sh ${{ matrix.test_option }} -t ${{ matrix.running_mode }}
|
||||||
|
exitcode="$?"
|
||||||
|
|
||||||
|
if [ $exitcode -eq 0 ]; then
|
||||||
|
echo "Spec test passed"
|
||||||
|
exit 0
|
||||||
|
elif [ $exitcode -ne 143 ]; then
|
||||||
|
echo "Spec test failed with error code $exitcode"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "$exitcode is a known GitHub-hosted runner issue"
|
||||||
|
echo "::notice::Re-running the spec test due to error code 143"
|
||||||
|
attempts=$((attempts + 1))
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "::notice::Report an error with code 143 in SGX CI after $max_attempts attempts"
|
||||||
|
exit 143
|
||||||
working-directory: ./tests/wamr-test-suites
|
working-directory: ./tests/wamr-test-suites
|
||||||
|
|
60
.github/workflows/compilation_on_windows.yml
vendored
60
.github/workflows/compilation_on_windows.yml
vendored
|
@ -57,11 +57,21 @@ permissions:
|
||||||
contents: read
|
contents: read
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build_llvm_libraries_on_windows:
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
actions: write
|
||||||
|
uses: ./.github/workflows/build_llvm_libraries.yml
|
||||||
|
with:
|
||||||
|
os: "windows-latest"
|
||||||
|
arch: "AArch64 ARM Mips RISCV X86"
|
||||||
|
|
||||||
|
build_iwasm:
|
||||||
runs-on: windows-latest
|
runs-on: windows-latest
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
build_options: [
|
build_options:
|
||||||
|
[
|
||||||
"-DWAMR_BUILD_AOT=1 -DWAMR_BUILD_INTERP=0",
|
"-DWAMR_BUILD_AOT=1 -DWAMR_BUILD_INTERP=0",
|
||||||
"-DWAMR_BUILD_AOT=0",
|
"-DWAMR_BUILD_AOT=0",
|
||||||
"-DWAMR_BUILD_TAIL_CALL=1",
|
"-DWAMR_BUILD_TAIL_CALL=1",
|
||||||
|
@ -72,7 +82,7 @@ jobs:
|
||||||
"-DWAMR_BUILD_DEBUG_INTERP=1",
|
"-DWAMR_BUILD_DEBUG_INTERP=1",
|
||||||
"-DWAMR_BUILD_LIB_PTHREAD=1",
|
"-DWAMR_BUILD_LIB_PTHREAD=1",
|
||||||
"-DWAMR_BUILD_LIB_WASI_THREADS=1",
|
"-DWAMR_BUILD_LIB_WASI_THREADS=1",
|
||||||
"-DWAMR_BUILD_LIBC_UVWASI=0 -DWAMR_BUILD_LIBC_WASI=1"
|
"-DWAMR_BUILD_LIBC_UVWASI=0 -DWAMR_BUILD_LIBC_WASI=1",
|
||||||
]
|
]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
@ -89,17 +99,49 @@ jobs:
|
||||||
cmake .. ${{ matrix.build_options }}
|
cmake .. ${{ matrix.build_options }}
|
||||||
cmake --build . --config Release --parallel 4
|
cmake --build . --config Release --parallel 4
|
||||||
|
|
||||||
|
build_wamrc:
|
||||||
|
needs: [build_llvm_libraries_on_windows]
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- os: windows-latest
|
||||||
|
llvm_cache_key: ${{ needs.build_llvm_libraries_on_windows.outputs.cache_key }}
|
||||||
|
steps:
|
||||||
|
- name: checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
# since jobs.id can't contain the dot character
|
||||||
|
# it is hard to use `format` to assemble the cache key
|
||||||
|
- name: Get LLVM libraries
|
||||||
|
id: retrieve_llvm_libs
|
||||||
|
uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
./core/deps/llvm/build/bin
|
||||||
|
./core/deps/llvm/build/include
|
||||||
|
./core/deps/llvm/build/lib
|
||||||
|
./core/deps/llvm/build/libexec
|
||||||
|
./core/deps/llvm/build/share
|
||||||
|
key: ${{ matrix.llvm_cache_key }}
|
||||||
|
|
||||||
|
- name: Quit if cache miss
|
||||||
|
if: steps.retrieve_llvm_libs.outputs.cache-hit != 'true'
|
||||||
|
run: echo "::error::can not get prebuilt llvm libraries" && exit 1
|
||||||
|
|
||||||
|
- name: Build wamrc
|
||||||
|
run: |
|
||||||
|
cmake -S . -B build
|
||||||
|
cmake --build build --config Release --parallel 4
|
||||||
|
working-directory: wamr-compiler
|
||||||
|
|
||||||
test:
|
test:
|
||||||
runs-on: windows-latest
|
runs-on: windows-latest
|
||||||
needs: [build]
|
needs: [build_iwasm, build_wamrc]
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
running_mode:
|
running_mode: ["classic-interp", "fast-interp"]
|
||||||
[
|
|
||||||
"classic-interp",
|
|
||||||
"fast-interp",
|
|
||||||
]
|
|
||||||
test_option:
|
test_option:
|
||||||
[
|
[
|
||||||
$DEFAULT_TEST_OPTIONS,
|
$DEFAULT_TEST_OPTIONS,
|
||||||
|
|
170
.github/workflows/nightly_run.yml
vendored
170
.github/workflows/nightly_run.yml
vendored
|
@ -48,15 +48,7 @@ permissions:
|
||||||
contents: read
|
contents: read
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build_llvm_libraries_on_ubuntu_2004:
|
build_llvm_libraries_on_ubuntu:
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
actions: write
|
|
||||||
uses: ./.github/workflows/build_llvm_libraries.yml
|
|
||||||
with:
|
|
||||||
os: "ubuntu-20.04"
|
|
||||||
arch: "X86"
|
|
||||||
build_llvm_libraries_on_ubuntu_2204:
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
actions: write
|
actions: write
|
||||||
|
@ -66,16 +58,13 @@ jobs:
|
||||||
arch: "X86"
|
arch: "X86"
|
||||||
|
|
||||||
build_wamrc:
|
build_wamrc:
|
||||||
needs:
|
needs: build_llvm_libraries_on_ubuntu
|
||||||
[
|
|
||||||
build_llvm_libraries_on_ubuntu_2004,
|
|
||||||
]
|
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
include:
|
include:
|
||||||
- os: ubuntu-20.04
|
- os: ubuntu-22.04
|
||||||
llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu_2004.outputs.cache_key }}
|
llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu.outputs.cache_key }}
|
||||||
steps:
|
steps:
|
||||||
- name: checkout
|
- name: checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
@ -106,10 +95,7 @@ jobs:
|
||||||
working-directory: wamr-compiler
|
working-directory: wamr-compiler
|
||||||
|
|
||||||
build_iwasm:
|
build_iwasm:
|
||||||
needs:
|
needs: build_llvm_libraries_on_ubuntu
|
||||||
[
|
|
||||||
build_llvm_libraries_on_ubuntu_2004,
|
|
||||||
]
|
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
|
@ -144,7 +130,7 @@ jobs:
|
||||||
"-DWAMR_BUILD_MULTI_MEMORY=1",
|
"-DWAMR_BUILD_MULTI_MEMORY=1",
|
||||||
"-DWAMR_BUILD_SHARED=1",
|
"-DWAMR_BUILD_SHARED=1",
|
||||||
]
|
]
|
||||||
os: [ubuntu-20.04]
|
os: [ubuntu-22.04]
|
||||||
platform: [android, linux]
|
platform: [android, linux]
|
||||||
exclude:
|
exclude:
|
||||||
# incompatible feature and platform
|
# incompatible feature and platform
|
||||||
|
@ -241,8 +227,8 @@ jobs:
|
||||||
- make_options_run_mode: $LLVM_EAGER_JIT_BUILD_OPTIONS
|
- make_options_run_mode: $LLVM_EAGER_JIT_BUILD_OPTIONS
|
||||||
platform: android
|
platform: android
|
||||||
include:
|
include:
|
||||||
- os: ubuntu-20.04
|
- os: ubuntu-22.04
|
||||||
llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu_2004.outputs.cache_key }}
|
llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu.outputs.cache_key }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: checkout
|
- name: checkout
|
||||||
|
@ -375,12 +361,7 @@ jobs:
|
||||||
working-directory: wamr/product-mini/platforms/linux
|
working-directory: wamr/product-mini/platforms/linux
|
||||||
|
|
||||||
build_samples_wasm_c_api:
|
build_samples_wasm_c_api:
|
||||||
needs:
|
needs: [build_iwasm, build_llvm_libraries_on_ubuntu, build_wamrc]
|
||||||
[
|
|
||||||
build_iwasm,
|
|
||||||
build_llvm_libraries_on_ubuntu_2004,
|
|
||||||
build_wamrc,
|
|
||||||
]
|
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
|
@ -396,18 +377,10 @@ jobs:
|
||||||
$LLVM_EAGER_JIT_BUILD_OPTIONS,
|
$LLVM_EAGER_JIT_BUILD_OPTIONS,
|
||||||
$MULTI_TIER_JIT_BUILD_OPTIONS,
|
$MULTI_TIER_JIT_BUILD_OPTIONS,
|
||||||
]
|
]
|
||||||
os: [ubuntu-20.04]
|
os: [ubuntu-22.04]
|
||||||
wasi_sdk_release:
|
|
||||||
[
|
|
||||||
"https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-20/wasi-sdk-20.0-linux.tar.gz",
|
|
||||||
]
|
|
||||||
wabt_release:
|
|
||||||
[
|
|
||||||
"https://github.com/WebAssembly/wabt/releases/download/1.0.31/wabt-1.0.31-ubuntu.tar.gz",
|
|
||||||
]
|
|
||||||
include:
|
include:
|
||||||
- os: ubuntu-20.04
|
- os: ubuntu-22.04
|
||||||
llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu_2004.outputs.cache_key }}
|
llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu.outputs.cache_key }}
|
||||||
exclude:
|
exclude:
|
||||||
- make_options: $MULTI_TIER_JIT_BUILD_OPTIONS
|
- make_options: $MULTI_TIER_JIT_BUILD_OPTIONS
|
||||||
sanitizer: asan
|
sanitizer: asan
|
||||||
|
@ -432,12 +405,11 @@ jobs:
|
||||||
if: (!endsWith(matrix.make_options, '_INTERP_BUILD_OPTIONS')) && (steps.retrieve_llvm_libs.outputs.cache-hit != 'true')
|
if: (!endsWith(matrix.make_options, '_INTERP_BUILD_OPTIONS')) && (steps.retrieve_llvm_libs.outputs.cache-hit != 'true')
|
||||||
run: echo "::error::can not get prebuilt llvm libraries" && exit 1
|
run: echo "::error::can not get prebuilt llvm libraries" && exit 1
|
||||||
|
|
||||||
- name: download and install wabt
|
- name: install-wasi-sdk-wabt
|
||||||
run: |
|
uses: ./.github/actions/install-wasi-sdk-wabt
|
||||||
cd /opt
|
with:
|
||||||
sudo wget ${{ matrix.wabt_release }}
|
os: ${{ matrix.os }}
|
||||||
sudo tar -xzf wabt-1.0.31-*.tar.gz
|
|
||||||
sudo mv wabt-1.0.31 wabt
|
|
||||||
- name: Build wamrc
|
- name: Build wamrc
|
||||||
if: (!endsWith(matrix.make_options, '_INTERP_BUILD_OPTIONS'))
|
if: (!endsWith(matrix.make_options, '_INTERP_BUILD_OPTIONS'))
|
||||||
run: |
|
run: |
|
||||||
|
@ -457,43 +429,22 @@ jobs:
|
||||||
working-directory: samples/wasm-c-api
|
working-directory: samples/wasm-c-api
|
||||||
|
|
||||||
build_samples_others:
|
build_samples_others:
|
||||||
needs:
|
needs: [build_iwasm, build_llvm_libraries_on_ubuntu, build_wamrc]
|
||||||
[
|
|
||||||
build_iwasm,
|
|
||||||
build_llvm_libraries_on_ubuntu_2004,
|
|
||||||
build_wamrc,
|
|
||||||
]
|
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
os: [ubuntu-20.04]
|
os: [ubuntu-22.04]
|
||||||
wasi_sdk_release:
|
|
||||||
[
|
|
||||||
"https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-20/wasi-sdk-20.0-linux.tar.gz",
|
|
||||||
]
|
|
||||||
wabt_release:
|
|
||||||
[
|
|
||||||
"https://github.com/WebAssembly/wabt/releases/download/1.0.31/wabt-1.0.31-ubuntu.tar.gz",
|
|
||||||
]
|
|
||||||
include:
|
include:
|
||||||
- os: ubuntu-20.04
|
- os: ubuntu-22.04
|
||||||
llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu_2004.outputs.cache_key }}
|
llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu.outputs.cache_key }}
|
||||||
steps:
|
steps:
|
||||||
- name: checkout
|
- name: checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: download and install wasi-sdk
|
- name: install-wasi-sdk-wabt
|
||||||
run: |
|
uses: ./.github/actions/install-wasi-sdk-wabt
|
||||||
cd /opt
|
with:
|
||||||
sudo wget ${{ matrix.wasi_sdk_release }}
|
os: ${{ matrix.os }}
|
||||||
sudo tar -xzf wasi-sdk-*.tar.gz
|
|
||||||
sudo ln -sf wasi-sdk-20.0 wasi-sdk
|
|
||||||
- name: download and install wabt
|
|
||||||
run: |
|
|
||||||
cd /opt
|
|
||||||
sudo wget ${{ matrix.wabt_release }}
|
|
||||||
sudo tar -xzf wabt-1.0.31-*.tar.gz
|
|
||||||
sudo ln -sf wabt-1.0.31 wabt
|
|
||||||
|
|
||||||
- name: Get LLVM libraries
|
- name: Get LLVM libraries
|
||||||
id: retrieve_llvm_libs
|
id: retrieve_llvm_libs
|
||||||
|
@ -591,17 +542,21 @@ jobs:
|
||||||
./iwasm --native-lib=./libtest_add.so --native-lib=./libtest_sqrt.so --native-lib=./libtest_hello.so --native-lib=./libtest_hello2.so wasm-app/test.wasm
|
./iwasm --native-lib=./libtest_add.so --native-lib=./libtest_sqrt.so --native-lib=./libtest_hello.so --native-lib=./libtest_hello2.so wasm-app/test.wasm
|
||||||
working-directory: ./samples/native-lib
|
working-directory: ./samples/native-lib
|
||||||
|
|
||||||
- name: checkout wamr-app-framework
|
# FIXME: un-comment me after fix cmake minimum issue
|
||||||
run: git clone https://github.com/bytecodealliance/wamr-app-framework.git
|
# https://github.com/bytecodealliance/wamr-app-framework/pull/11
|
||||||
- name: download wamr-app-framework dependencies
|
# - name: checkout wamr-app-framework
|
||||||
run: LVGL=0 LV_DRIVERS=0 ./download.sh
|
# run: git clone https://github.com/bytecodealliance/wamr-app-framework.git
|
||||||
working-directory: ./wamr-app-framework/deps
|
|
||||||
- name: Build Sample [simple]
|
# - name: download wamr-app-framework dependencies
|
||||||
run: |
|
# run: LVGL=0 LV_DRIVERS=0 ./download.sh
|
||||||
./build.sh -p host-interp
|
# working-directory: ./wamr-app-framework/deps
|
||||||
python3 ./sample_test_run.py $(pwd)/out
|
|
||||||
exit $?
|
# - name: Build Sample [simple]
|
||||||
working-directory: ./wamr-app-framework/samples/simple
|
# run: |
|
||||||
|
# ./build.sh -p host-interp
|
||||||
|
# python3 ./sample_test_run.py $(pwd)/out
|
||||||
|
# exit $?
|
||||||
|
# working-directory: ./wamr-app-framework/samples/simple
|
||||||
|
|
||||||
- name: Build Sample [shared-heap]
|
- name: Build Sample [shared-heap]
|
||||||
run: |
|
run: |
|
||||||
|
@ -613,18 +568,12 @@ jobs:
|
||||||
./shared_heap_test --aot
|
./shared_heap_test --aot
|
||||||
|
|
||||||
test:
|
test:
|
||||||
needs:
|
needs: [build_iwasm, build_llvm_libraries_on_ubuntu, build_wamrc]
|
||||||
[
|
|
||||||
build_iwasm,
|
|
||||||
build_llvm_libraries_on_ubuntu_2004,
|
|
||||||
build_llvm_libraries_on_ubuntu_2204,
|
|
||||||
build_wamrc,
|
|
||||||
]
|
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os: [ubuntu-20.04, ubuntu-22.04]
|
os: [ubuntu-22.04]
|
||||||
sanitizer: ["", "ubsan", "asan", "tsan"]
|
sanitizer: ["", "ubsan", "asan", "tsan"]
|
||||||
running_mode:
|
running_mode:
|
||||||
[
|
[
|
||||||
|
@ -643,22 +592,12 @@ jobs:
|
||||||
$THREADS_TEST_OPTIONS,
|
$THREADS_TEST_OPTIONS,
|
||||||
$WASI_TEST_OPTIONS,
|
$WASI_TEST_OPTIONS,
|
||||||
]
|
]
|
||||||
wasi_sdk_release:
|
|
||||||
[
|
|
||||||
"https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-20/wasi-sdk-20.0-linux.tar.gz",
|
|
||||||
]
|
|
||||||
include:
|
include:
|
||||||
- os: ubuntu-20.04
|
|
||||||
llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu_2004.outputs.cache_key }}
|
|
||||||
ubuntu_version: "20.04"
|
|
||||||
- os: ubuntu-22.04
|
- os: ubuntu-22.04
|
||||||
llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}
|
llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu.outputs.cache_key }}
|
||||||
ubuntu_version: "22.04"
|
ubuntu_version: "22.04"
|
||||||
|
|
||||||
exclude:
|
exclude:
|
||||||
# incompatible modes and features
|
|
||||||
- os: ubuntu-20.04
|
|
||||||
sanitizer: tsan
|
|
||||||
# asan works only for aot now
|
# asan works only for aot now
|
||||||
- running_mode: "classic-interp"
|
- running_mode: "classic-interp"
|
||||||
sanitizer: asan
|
sanitizer: asan
|
||||||
|
@ -700,22 +639,11 @@ jobs:
|
||||||
- name: checkout
|
- name: checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: download and install wasi-sdk
|
- name: install-wasi-sdk-wabt
|
||||||
if: matrix.test_option == '$WASI_TEST_OPTIONS'
|
if: matrix.test_option == '$WASI_TEST_OPTIONS'
|
||||||
run: |
|
uses: ./.github/actions/install-wasi-sdk-wabt
|
||||||
cd /opt
|
with:
|
||||||
sudo wget ${{ matrix.wasi_sdk_release }}
|
os: ${{ matrix.os }}
|
||||||
sudo tar -xzf wasi-sdk-*.tar.gz
|
|
||||||
sudo mv wasi-sdk-20.0 wasi-sdk
|
|
||||||
|
|
||||||
# It is a temporary solution until new wasi-sdk that includes bug fixes is released
|
|
||||||
- name: build wasi-libc from source
|
|
||||||
if: matrix.test_option == '$WASI_TEST_OPTIONS'
|
|
||||||
run: |
|
|
||||||
git clone https://github.com/WebAssembly/wasi-libc
|
|
||||||
cd wasi-libc
|
|
||||||
make -j AR=/opt/wasi-sdk/bin/llvm-ar NM=/opt/wasi-sdk/bin/llvm-nm CC=/opt/wasi-sdk/bin/clang THREAD_MODEL=posix
|
|
||||||
echo "SYSROOT_PATH=$PWD/sysroot" >> $GITHUB_ENV
|
|
||||||
|
|
||||||
- name: set env variable(if llvm are used)
|
- name: set env variable(if llvm are used)
|
||||||
if: matrix.running_mode == 'aot' || matrix.running_mode == 'jit' || matrix.running_mode == 'multi-tier-jit'
|
if: matrix.running_mode == 'aot' || matrix.running_mode == 'jit' || matrix.running_mode == 'multi-tier-jit'
|
||||||
|
@ -761,12 +689,12 @@ jobs:
|
||||||
|
|
||||||
- name: Build WASI thread tests
|
- name: Build WASI thread tests
|
||||||
if: matrix.test_option == '$WASI_TEST_OPTIONS'
|
if: matrix.test_option == '$WASI_TEST_OPTIONS'
|
||||||
run: bash build.sh --sysroot "$SYSROOT_PATH"
|
run: bash build.sh
|
||||||
working-directory: ./core/iwasm/libraries/lib-wasi-threads/test/
|
working-directory: ./core/iwasm/libraries/lib-wasi-threads/test/
|
||||||
|
|
||||||
- name: Build WASI thread stress tests
|
- name: Build WASI thread stress tests
|
||||||
if: matrix.test_option == '$WASI_TEST_OPTIONS'
|
if: matrix.test_option == '$WASI_TEST_OPTIONS'
|
||||||
run: bash build.sh --sysroot "$SYSROOT_PATH"
|
run: bash build.sh
|
||||||
working-directory: ./core/iwasm/libraries/lib-wasi-threads/stress-test/
|
working-directory: ./core/iwasm/libraries/lib-wasi-threads/stress-test/
|
||||||
|
|
||||||
- name: build socket api tests
|
- name: build socket api tests
|
||||||
|
|
99
.github/workflows/release_process.yml
vendored
99
.github/workflows/release_process.yml
vendored
|
@ -58,16 +58,6 @@ jobs:
|
||||||
|
|
||||||
#
|
#
|
||||||
# LLVM_LIBRARIES
|
# LLVM_LIBRARIES
|
||||||
build_llvm_libraries_on_ubuntu_2004:
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
actions: write
|
|
||||||
needs: [create_tag, create_release]
|
|
||||||
uses: ./.github/workflows/build_llvm_libraries.yml
|
|
||||||
with:
|
|
||||||
os: "ubuntu-20.04"
|
|
||||||
arch: "AArch64 ARM Mips RISCV X86"
|
|
||||||
|
|
||||||
build_llvm_libraries_on_ubuntu_2204:
|
build_llvm_libraries_on_ubuntu_2204:
|
||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
|
@ -100,18 +90,6 @@ jobs:
|
||||||
|
|
||||||
#
|
#
|
||||||
# WAMRC
|
# WAMRC
|
||||||
release_wamrc_on_ubuntu_2004:
|
|
||||||
permissions:
|
|
||||||
contents: write # upload release artifact
|
|
||||||
needs: [create_tag, create_release, build_llvm_libraries_on_ubuntu_2004]
|
|
||||||
uses: ./.github/workflows/build_wamrc.yml
|
|
||||||
with:
|
|
||||||
llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu_2004.outputs.cache_key }}
|
|
||||||
release: true
|
|
||||||
runner: ubuntu-20.04
|
|
||||||
upload_url: ${{ needs.create_release.outputs.upload_url }}
|
|
||||||
ver_num: ${{ needs.create_tag.outputs.new_ver}}
|
|
||||||
|
|
||||||
release_wamrc_on_ubuntu_2204:
|
release_wamrc_on_ubuntu_2204:
|
||||||
permissions:
|
permissions:
|
||||||
contents: write # upload release artifact
|
contents: write # upload release artifact
|
||||||
|
@ -150,18 +128,6 @@ jobs:
|
||||||
|
|
||||||
#
|
#
|
||||||
# IWASM
|
# IWASM
|
||||||
release_iwasm_on_ubuntu_2004:
|
|
||||||
permissions:
|
|
||||||
contents: write # upload release artifact
|
|
||||||
needs: [create_tag, create_release, build_llvm_libraries_on_ubuntu_2004]
|
|
||||||
uses: ./.github/workflows/build_iwasm_release.yml
|
|
||||||
with:
|
|
||||||
cwd: product-mini/platforms/linux
|
|
||||||
llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu_2004.outputs.cache_key }}
|
|
||||||
runner: ubuntu-20.04
|
|
||||||
upload_url: ${{ needs.create_release.outputs.upload_url }}
|
|
||||||
ver_num: ${{ needs.create_tag.outputs.new_ver}}
|
|
||||||
|
|
||||||
release_iwasm_on_ubuntu_2204:
|
release_iwasm_on_ubuntu_2204:
|
||||||
permissions:
|
permissions:
|
||||||
contents: write # upload release artifact
|
contents: write # upload release artifact
|
||||||
|
@ -200,19 +166,6 @@ jobs:
|
||||||
|
|
||||||
#
|
#
|
||||||
# WAMR_SDK
|
# WAMR_SDK
|
||||||
release_wamr_sdk_on_ubuntu_2004:
|
|
||||||
permissions:
|
|
||||||
contents: write # upload release artifact
|
|
||||||
needs: [create_tag, create_release]
|
|
||||||
uses: ./.github/workflows/build_wamr_sdk.yml
|
|
||||||
with:
|
|
||||||
config_file: wamr_config_ubuntu_release.cmake
|
|
||||||
runner: ubuntu-20.04
|
|
||||||
upload_url: ${{ needs.create_release.outputs.upload_url }}
|
|
||||||
ver_num: ${{ needs.create_tag.outputs.new_ver}}
|
|
||||||
wasi_sdk_url: https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-19/wasi-sdk-19.0-linux.tar.gz
|
|
||||||
wamr_app_framework_url: https://github.com/bytecodealliance/wamr-app-framework.git
|
|
||||||
|
|
||||||
release_wamr_sdk_on_ubuntu_2204:
|
release_wamr_sdk_on_ubuntu_2204:
|
||||||
permissions:
|
permissions:
|
||||||
contents: write # upload release artifact
|
contents: write # upload release artifact
|
||||||
|
@ -239,41 +192,33 @@ jobs:
|
||||||
wasi_sdk_url: https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-19/wasi-sdk-19.0-macos.tar.gz
|
wasi_sdk_url: https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-19/wasi-sdk-19.0-macos.tar.gz
|
||||||
wamr_app_framework_url: https://github.com/bytecodealliance/wamr-app-framework.git
|
wamr_app_framework_url: https://github.com/bytecodealliance/wamr-app-framework.git
|
||||||
|
|
||||||
|
# Let's disable it for now and reopen it when the actual requirement arises.
|
||||||
|
# Please ensure all dependencies have been updated before reopening.
|
||||||
#
|
#
|
||||||
# vscode extension cross-platform
|
# # vscode extension cross-platform
|
||||||
release_wamr_ide_vscode_ext:
|
# release_wamr_ide_vscode_ext:
|
||||||
permissions:
|
# permissions:
|
||||||
contents: write # upload release artifact
|
# contents: write # upload release artifact
|
||||||
needs: [create_tag, create_release]
|
# needs: [create_tag, create_release]
|
||||||
uses: ./.github/workflows/build_wamr_vscode_ext.yml
|
# uses: ./.github/workflows/build_wamr_vscode_ext.yml
|
||||||
secrets: inherit
|
# secrets: inherit
|
||||||
with:
|
# with:
|
||||||
upload_url: ${{ needs.create_release.outputs.upload_url }}
|
# upload_url: ${{ needs.create_release.outputs.upload_url }}
|
||||||
ver_num: ${{ needs.create_tag.outputs.new_ver }}
|
# ver_num: ${{ needs.create_tag.outputs.new_ver }}
|
||||||
|
|
||||||
#
|
# #
|
||||||
# vscode extension docker images package
|
# # vscode extension docker images package
|
||||||
release_wamr_ide_docker_images_package:
|
# release_wamr_ide_docker_images_package:
|
||||||
permissions:
|
# permissions:
|
||||||
contents: write # upload release artifact
|
# contents: write # upload release artifact
|
||||||
needs: [create_tag, create_release]
|
# needs: [create_tag, create_release]
|
||||||
uses: ./.github/workflows/build_docker_images.yml
|
# uses: ./.github/workflows/build_docker_images.yml
|
||||||
with:
|
# with:
|
||||||
upload_url: ${{ needs.create_release.outputs.upload_url }}
|
# upload_url: ${{ needs.create_release.outputs.upload_url }}
|
||||||
ver_num: ${{ needs.create_tag.outputs.new_ver }}
|
# ver_num: ${{ needs.create_tag.outputs.new_ver }}
|
||||||
|
|
||||||
#
|
#
|
||||||
# WAMR_LLDB
|
# WAMR_LLDB
|
||||||
release_wamr_lldb_on_ubuntu_2004:
|
|
||||||
permissions:
|
|
||||||
contents: write # upload release artifact
|
|
||||||
needs: [create_tag, create_release]
|
|
||||||
uses: ./.github/workflows/build_wamr_lldb.yml
|
|
||||||
with:
|
|
||||||
runner: ubuntu-20.04
|
|
||||||
upload_url: ${{ needs.create_release.outputs.upload_url }}
|
|
||||||
ver_num: ${{ needs.create_tag.outputs.new_ver}}
|
|
||||||
|
|
||||||
release_wamr_lldb_on_ubuntu_2204:
|
release_wamr_lldb_on_ubuntu_2204:
|
||||||
permissions:
|
permissions:
|
||||||
contents: write # upload release artifact
|
contents: write # upload release artifact
|
||||||
|
|
28
.github/workflows/spec_test_on_nuttx.yml
vendored
28
.github/workflows/spec_test_on_nuttx.yml
vendored
|
@ -146,14 +146,14 @@ jobs:
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
repository: apache/nuttx
|
repository: apache/nuttx
|
||||||
ref: ${{ matrix.target_config.target == 'xtensa' && '985d395b025cf2012b22f6bb4461959fa6d87645' || 'releases/12.6' }}
|
ref: ${{ matrix.target_config.target == 'xtensa' && '985d395b025cf2012b22f6bb4461959fa6d87645' || 'releases/12.9' }}
|
||||||
path: nuttx
|
path: nuttx
|
||||||
|
|
||||||
- name: Checkout NuttX Apps
|
- name: Checkout NuttX Apps
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
repository: apache/nuttx-apps
|
repository: apache/nuttx-apps
|
||||||
ref: ${{ matrix.target_config.target == 'xtensa' && '2ef3eb25c0cec944b13792185f7e5d5a05990d5f' || 'releases/12.6' }}
|
ref: ${{ matrix.target_config.target == 'xtensa' && '2ef3eb25c0cec944b13792185f7e5d5a05990d5f' || 'releases/12.9' }}
|
||||||
path: apps
|
path: apps
|
||||||
|
|
||||||
- name: Checkout WAMR
|
- name: Checkout WAMR
|
||||||
|
@ -183,28 +183,6 @@ jobs:
|
||||||
if: contains(matrix.wamr_test_option.mode, 'aot')
|
if: contains(matrix.wamr_test_option.mode, 'aot')
|
||||||
run: cp -r core/deps/llvm apps/interpreters/wamr/wamr/core/deps/llvm
|
run: cp -r core/deps/llvm apps/interpreters/wamr/wamr/core/deps/llvm
|
||||||
|
|
||||||
# Inject the config option to NuttX
|
|
||||||
# TODO: Merge this into NuttX once GC is generally available
|
|
||||||
#
|
|
||||||
# Note: the version of nuttx-apps we use for xtensa does have
|
|
||||||
# an equivalent. (the default of INTERPRETERS_WAMR_TAIL_CALL is
|
|
||||||
# different though.)
|
|
||||||
- name: Modify Kconfig
|
|
||||||
if: matrix.target_config.target != 'xtensa'
|
|
||||||
run: |
|
|
||||||
echo "\n" >> apps/interpreters/wamr/Kconfig
|
|
||||||
echo "config INTERPRETERS_WAMR_GC" >> apps/interpreters/wamr/Kconfig
|
|
||||||
echo "\tbool \"Enable GC\"" >> apps/interpreters/wamr/Kconfig
|
|
||||||
echo "\tdefault n" >> apps/interpreters/wamr/Kconfig
|
|
||||||
echo "\n" >> apps/interpreters/wamr/Kconfig
|
|
||||||
echo "config INTERPRETERS_WAMR_AOT_STACK_FRAME" >> apps/interpreters/wamr/Kconfig
|
|
||||||
echo "\tbool \"Enable AOT stack frame\"" >> apps/interpreters/wamr/Kconfig
|
|
||||||
echo "\tdefault n" >> apps/interpreters/wamr/Kconfig
|
|
||||||
echo "\n" >> apps/interpreters/wamr/Kconfig
|
|
||||||
echo "config INTERPRETERS_WAMR_TAIL_CALL" >> apps/interpreters/wamr/Kconfig
|
|
||||||
echo "\tbool \"Enable Tail Call\"" >> apps/interpreters/wamr/Kconfig
|
|
||||||
echo "\tdefault y" >> apps/interpreters/wamr/Kconfig
|
|
||||||
|
|
||||||
- name: Build wamrc
|
- name: Build wamrc
|
||||||
if: contains(matrix.wamr_test_option.mode, 'aot')
|
if: contains(matrix.wamr_test_option.mode, 'aot')
|
||||||
working-directory: apps/interpreters/wamr/wamr/wamr-compiler
|
working-directory: apps/interpreters/wamr/wamr/wamr-compiler
|
||||||
|
@ -351,7 +329,7 @@ jobs:
|
||||||
|
|
||||||
- name: upload the log
|
- name: upload the log
|
||||||
if: always()
|
if: always()
|
||||||
uses: actions/upload-artifact@v4.6.0
|
uses: actions/upload-artifact@v4.6.2
|
||||||
with:
|
with:
|
||||||
name: spec-test-log-${{ github.run_id }}-${{ strategy.job-index }}-${{ matrix.target_config.target }}
|
name: spec-test-log-${{ github.run_id }}-${{ strategy.job-index }}-${{ matrix.target_config.target }}
|
||||||
path: log
|
path: log
|
||||||
|
|
6
.github/workflows/supply_chain.yml
vendored
6
.github/workflows/supply_chain.yml
vendored
|
@ -39,7 +39,7 @@ jobs:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
|
|
||||||
- name: "Run analysis"
|
- name: "Run analysis"
|
||||||
uses: ossf/scorecard-action@62b2cac7ed8198b15735ed49ab1e5cf35480ba46 # v2.4.0
|
uses: ossf/scorecard-action@05b42c624433fc40578a4040d5cf5e36ddca8cde # v2.4.2
|
||||||
with:
|
with:
|
||||||
results_file: results.sarif
|
results_file: results.sarif
|
||||||
results_format: sarif
|
results_format: sarif
|
||||||
|
@ -52,7 +52,7 @@ jobs:
|
||||||
# Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
|
# Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
|
||||||
# format to the repository Actions tab.
|
# format to the repository Actions tab.
|
||||||
- name: "Upload artifact"
|
- name: "Upload artifact"
|
||||||
uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v3.1.0
|
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v3.1.0
|
||||||
with:
|
with:
|
||||||
name: SARIF file
|
name: SARIF file
|
||||||
path: results.sarif
|
path: results.sarif
|
||||||
|
@ -60,6 +60,6 @@ jobs:
|
||||||
|
|
||||||
# Upload the results to GitHub's code scanning dashboard.
|
# Upload the results to GitHub's code scanning dashboard.
|
||||||
- name: "Upload to code-scanning"
|
- name: "Upload to code-scanning"
|
||||||
uses: github/codeql-action/upload-sarif@0701025a8b1600e416be4f3bb5a830b1aa6af01e # v2.2.4
|
uses: github/codeql-action/upload-sarif@b1e4dc3db58c9601794e22a9f6d28d45461b9dbf
|
||||||
with:
|
with:
|
||||||
sarif_file: results.sarif
|
sarif_file: results.sarif
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
# Copyright (C) 2019 Intel Corporation. All rights reserved.
|
# Copyright (C) 2019 Intel Corporation. All rights reserved.
|
||||||
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||||
|
|
||||||
cmake_minimum_required (VERSION 3.0)
|
cmake_minimum_required (VERSION 3.14)
|
||||||
|
|
||||||
|
option(BUILD_SHARED_LIBS "Build using shared libraries" OFF)
|
||||||
|
|
||||||
if(ESP_PLATFORM)
|
if(ESP_PLATFORM)
|
||||||
include (${COMPONENT_DIR}/build-scripts/esp-idf/wamr/CMakeLists.txt)
|
include (${COMPONENT_DIR}/build-scripts/esp-idf/wamr/CMakeLists.txt)
|
||||||
|
@ -18,13 +20,6 @@ if (NOT DEFINED WAMR_BUILD_PLATFORM)
|
||||||
string (TOLOWER ${CMAKE_HOST_SYSTEM_NAME} WAMR_BUILD_PLATFORM)
|
string (TOLOWER ${CMAKE_HOST_SYSTEM_NAME} WAMR_BUILD_PLATFORM)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
if (NOT DEFINED WAMR_BUILD_STATIC)
|
|
||||||
set (WAMR_BUILD_STATIC 1)
|
|
||||||
endif ()
|
|
||||||
if (NOT DEFINED WAMR_BUILD_SHARED)
|
|
||||||
set (WAMR_BUILD_SHARED 1)
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
# Reset default linker flags
|
# Reset default linker flags
|
||||||
set (CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "")
|
set (CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "")
|
||||||
set (CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "")
|
set (CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "")
|
||||||
|
@ -104,6 +99,11 @@ if (NOT DEFINED WAMR_BUILD_LIB_WASI_THREADS)
|
||||||
set (WAMR_BUILD_LIB_WASI_THREADS 0)
|
set (WAMR_BUILD_LIB_WASI_THREADS 0)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
if (NOT DEFINED WAMR_ENABLE_COPY_CALLSTACK)
|
||||||
|
# Disable copy callstack by default
|
||||||
|
set (WAMR_ENABLE_COPY_CALLSTACK 0)
|
||||||
|
endif()
|
||||||
|
|
||||||
if (NOT DEFINED WAMR_BUILD_MINI_LOADER)
|
if (NOT DEFINED WAMR_BUILD_MINI_LOADER)
|
||||||
# Disable wasm mini loader by default
|
# Disable wasm mini loader by default
|
||||||
set (WAMR_BUILD_MINI_LOADER 0)
|
set (WAMR_BUILD_MINI_LOADER 0)
|
||||||
|
@ -152,56 +152,40 @@ include (${SHARED_DIR}/utils/uncommon/shared_uncommon.cmake)
|
||||||
set (THREADS_PREFER_PTHREAD_FLAG ON)
|
set (THREADS_PREFER_PTHREAD_FLAG ON)
|
||||||
find_package(Threads REQUIRED)
|
find_package(Threads REQUIRED)
|
||||||
|
|
||||||
if (MSVC)
|
add_library (vmlib ${WAMR_RUNTIME_LIB_SOURCE})
|
||||||
add_definitions(-DCOMPILING_WASM_RUNTIME_API=1)
|
set_target_properties (vmlib PROPERTIES OUTPUT_NAME iwasm)
|
||||||
endif ()
|
target_include_directories(vmlib INTERFACE
|
||||||
|
$<BUILD_INTERFACE:${WAMR_ROOT_DIR}/core/iwasm/include>
|
||||||
|
$<INSTALL_INTERFACE:include>
|
||||||
|
)
|
||||||
|
|
||||||
# STATIC LIBRARY
|
target_link_libraries (vmlib PUBLIC ${LLVM_AVAILABLE_LIBS} ${UV_A_LIBS} -lm -ldl ${CMAKE_THREAD_LIBS_INIT})
|
||||||
if (WAMR_BUILD_STATIC)
|
|
||||||
add_library(iwasm_static STATIC ${WAMR_RUNTIME_LIB_SOURCE})
|
|
||||||
set_target_properties (iwasm_static PROPERTIES OUTPUT_NAME vmlib)
|
|
||||||
target_include_directories(iwasm_static INTERFACE ${WAMR_ROOT_DIR}/core/iwasm/include)
|
|
||||||
target_link_libraries (iwasm_static INTERFACE ${LLVM_AVAILABLE_LIBS} ${UV_A_LIBS} -lm -ldl ${CMAKE_THREAD_LIBS_INIT})
|
|
||||||
if (WAMR_BUILD_WASM_CACHE EQUAL 1)
|
if (WAMR_BUILD_WASM_CACHE EQUAL 1)
|
||||||
target_link_libraries(iwasm_static INTERFACE boringssl_crypto)
|
target_link_libraries(vmlib INTERFACE boringssl_crypto)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
if (MINGW)
|
if (MINGW)
|
||||||
target_link_libraries (iwasm_static PRIVATE ws2_32)
|
target_link_libraries(vmlib INTERFACE -lWs2_32 -lwsock32)
|
||||||
|
target_link_libraries(vmlib PRIVATE ws2_32)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
if (WIN32)
|
if (WIN32)
|
||||||
target_link_libraries(iwasm_static PRIVATE ntdll)
|
target_link_libraries(vmlib PRIVATE ntdll)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
install (TARGETS iwasm_static ARCHIVE DESTINATION lib)
|
set (WAMR_PUBLIC_HEADERS
|
||||||
endif ()
|
|
||||||
|
|
||||||
# SHARED LIBRARY
|
|
||||||
if (WAMR_BUILD_SHARED)
|
|
||||||
add_library (iwasm_shared SHARED ${WAMR_RUNTIME_LIB_SOURCE})
|
|
||||||
set_target_properties (iwasm_shared PROPERTIES OUTPUT_NAME iwasm)
|
|
||||||
target_include_directories(iwasm_shared INTERFACE ${WAMR_ROOT_DIR}/core/iwasm/include)
|
|
||||||
target_link_libraries (iwasm_shared PUBLIC ${LLVM_AVAILABLE_LIBS} ${UV_A_LIBS} -lm -ldl ${CMAKE_THREAD_LIBS_INIT})
|
|
||||||
if (WAMR_BUILD_WASM_CACHE EQUAL 1)
|
|
||||||
target_link_libraries(iwasm_shared INTERFACE boringssl_crypto)
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
if (MINGW)
|
|
||||||
target_link_libraries(iwasm_shared INTERFACE -lWs2_32 -lwsock32)
|
|
||||||
target_link_libraries(iwasm_shared PRIVATE ws2_32)
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
if (WIN32)
|
|
||||||
target_link_libraries(iwasm_shared PRIVATE ntdll)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
install (TARGETS iwasm_shared LIBRARY DESTINATION lib)
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
# HEADERS
|
|
||||||
install (FILES
|
|
||||||
${WAMR_ROOT_DIR}/core/iwasm/include/wasm_c_api.h
|
${WAMR_ROOT_DIR}/core/iwasm/include/wasm_c_api.h
|
||||||
${WAMR_ROOT_DIR}/core/iwasm/include/wasm_export.h
|
${WAMR_ROOT_DIR}/core/iwasm/include/wasm_export.h
|
||||||
${WAMR_ROOT_DIR}/core/iwasm/include/lib_export.h
|
${WAMR_ROOT_DIR}/core/iwasm/include/lib_export.h
|
||||||
DESTINATION include)
|
)
|
||||||
|
set_target_properties (vmlib PROPERTIES PUBLIC_HEADER "${WAMR_PUBLIC_HEADERS}")
|
||||||
|
|
||||||
|
set_version_info (vmlib)
|
||||||
|
|
||||||
|
install (TARGETS vmlib
|
||||||
|
EXPORT iwasmTargets
|
||||||
|
LIBRARY DESTINATION lib
|
||||||
|
PUBLIC_HEADER DESTINATION include
|
||||||
|
)
|
||||||
|
|
||||||
|
install_iwasm_package ()
|
||||||
|
|
|
@ -19,7 +19,7 @@ Code changes
|
||||||
We Use Github Flow, So All Code Changes Happen Through Pull Requests. Pull requests are the best way to propose changes to the codebase. We actively welcome your pull requests:
|
We Use Github Flow, So All Code Changes Happen Through Pull Requests. Pull requests are the best way to propose changes to the codebase. We actively welcome your pull requests:
|
||||||
|
|
||||||
- If you've added code that should be tested, add tests. Ensure the test suite passes.
|
- If you've added code that should be tested, add tests. Ensure the test suite passes.
|
||||||
- Avoid use macros for different platforms. Use seperate folder of source files to host diffeent platform logic.
|
- Avoid use macros for different platforms. Use separate folder of source files to host different platform logic.
|
||||||
- Put macro definitions inside share_lib/include/config.h if you have to use macro.
|
- Put macro definitions inside share_lib/include/config.h if you have to use macro.
|
||||||
- Make sure your code lints and compliant to our coding style.
|
- Make sure your code lints and compliant to our coding style.
|
||||||
- Extend the application library is highly welcome.
|
- Extend the application library is highly welcome.
|
||||||
|
|
|
@ -21,7 +21,7 @@ WebAssembly Micro Runtime (WAMR) is a lightweight standalone WebAssembly (Wasm)
|
||||||
|
|
||||||
### Key features
|
### Key features
|
||||||
- Full compliant to the W3C Wasm MVP
|
- Full compliant to the W3C Wasm MVP
|
||||||
- Small runtime binary size (core vmlib on cortex-m4f with tail-call/bulk memroy/shared memroy support, text size from bloaty)
|
- Small runtime binary size (core vmlib on cortex-m4f with tail-call/bulk memory/shared memory support, text size from bloaty)
|
||||||
* ~58.9K for fast interpreter
|
* ~58.9K for fast interpreter
|
||||||
* ~56.3K for classic interpreter
|
* ~56.3K for classic interpreter
|
||||||
* ~29.4K for aot runtime
|
* ~29.4K for aot runtime
|
||||||
|
|
301
RELEASE_NOTES.md
301
RELEASE_NOTES.md
|
@ -1,8 +1,233 @@
|
||||||
|
## WAMR-2.3.1
|
||||||
|
|
||||||
|
### Breaking Changes
|
||||||
|
|
||||||
|
- Revert the location to install public headers (#4295). This restores compatibility (of installed headers) with WAMR-2.2.0 and earlier.
|
||||||
|
|
||||||
|
### New Features
|
||||||
|
|
||||||
|
- feat: Add instruction metering for interpreter (#4122)
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
- updating WASI stdio handle initialization and build options for UVWASI (#4260)
|
||||||
|
- Fix SIMD load lane to avoid incompatible pointer types (#4278)
|
||||||
|
- Fixed unit tests on X86_32 (#4279)
|
||||||
|
- Improve Embedding WAMR guideline (#4284)
|
||||||
|
- Fix Compiler Error C2491 (#4286)
|
||||||
|
- Enhance type checking for function types in loader and improve error handling (#4294)
|
||||||
|
- Dockerfile.vx-delegate build error fix (#4273)
|
||||||
|
- Enable runtime API exposure for MSVC builds (#4287)
|
||||||
|
|
||||||
|
### Enhancements
|
||||||
|
|
||||||
|
- feat(yml): Add ESP32-P4 and ESP32-C5 support (#4270)
|
||||||
|
- add a sample to use cmake package (#4291)
|
||||||
|
|
||||||
|
### Others
|
||||||
|
|
||||||
|
- build(deps): Bump github/codeql-action from 3.28.17 to 3.28.18 (#4285)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## WAMR-2.3.0
|
||||||
|
|
||||||
|
### Breaking changes
|
||||||
|
|
||||||
|
### New features
|
||||||
|
|
||||||
|
- simd for fast-interp (#4131)
|
||||||
|
- copy call-stack (#4033)
|
||||||
|
|
||||||
|
### Bug fixes
|
||||||
|
|
||||||
|
- fix(ios): Remove `float-abi` flag (#3889)
|
||||||
|
- Fix out of bounds issues after memory.grow on non-aot non-threads builds (#3872)
|
||||||
|
- Fix out of bounds issue in is_native_addr_in_shared_heap function (#3886)
|
||||||
|
- Fix mmap flags for AOT loader on non-Linux SGX platforms (#3890)
|
||||||
|
- fix(uwp): Gate NTSTATUS definition behind WINAPI_PARTITION_DESKTOP for UWP builds (#3897)
|
||||||
|
- Fix linked global initialization in multimodule (#3905)
|
||||||
|
- Correct the table index calculation in aot_instantiation (#3903)
|
||||||
|
- Fix a leak in wasm_loader_emit_br_info (#3900)
|
||||||
|
- Check possible integer overflow in aot memory boundary check (#3920)
|
||||||
|
- Fix CI wamr-ide error (#3913)
|
||||||
|
- Fix WASI Path Mapping Processing (#3923)
|
||||||
|
- Use plain assignment rather than bh_memcpy_s (#3924)
|
||||||
|
- Fix loader small bug (#3928)
|
||||||
|
- don't return an uninitialized trap if argv_to_results fails (#3935)
|
||||||
|
- support WASM_FUNCREF return type in argv_to_results (#3936)
|
||||||
|
- Fix incorrect assignment in win_file.c (#3939)
|
||||||
|
- Fix aot table instantiate (#3946)
|
||||||
|
- set alignment 4 when loading multi return value (#3955)
|
||||||
|
- Only access Zephyr thread stats info when it's available (#3962)
|
||||||
|
- top-level cmakefile: fix macOS build (#3968)
|
||||||
|
- Handle a new scenario where an item is both exported and imported. (#3984)
|
||||||
|
- platform/nuttx: Flush icache/dcache properly (#4147)
|
||||||
|
- fix(runtest.py): A workaround to bypass errors that occur when deleting temporary files (#4093)
|
||||||
|
- Fix build issues when compiling WAMRC as a cross-compiler (#4112)
|
||||||
|
- include bh_platform.h (#4135)
|
||||||
|
- Fix iwasm build error when WAMR_BUILD_WASI_NN enabled (#4138)
|
||||||
|
- avoid Windows perform newline translation (#4128)
|
||||||
|
- fix: correct typos and improve comments across multiple files by codespell (#4116)
|
||||||
|
- fix: fix load aarch64 aot failed (#4114)
|
||||||
|
- wasm_loader allocates more spaces for elements (#4099)
|
||||||
|
- fix: add dispose of the debug information builder when destroying compilation context (#4105)
|
||||||
|
- prevent mmap size overflow on 32 bit platform for memory.grow (#4071)
|
||||||
|
- fix: when load aot init expr,no type_idx set. (#4094)
|
||||||
|
- fix(aot_emit_aot_file): prevent buffer emission for zero byte_count (#4095)
|
||||||
|
- fix(build_llvm_libraries.yml): Correct script path for build_llvm.py (#4089)
|
||||||
|
- fix(unit-test): libc_builtin_test issues (#4073)
|
||||||
|
- [gc] Subtyping fix (#4075)
|
||||||
|
- fix(build_llvm.py): clean up whitespace and formatting in build script (#4087)
|
||||||
|
- Unit test:type matching issue and code redundancy (#4079)
|
||||||
|
- fix(aot): ensure value_cmp does not exceed br_count in branch table compilation (#4065)
|
||||||
|
- In wasm32, fix potential conversion overflow when enlarging 65536 pages (#4064)
|
||||||
|
- Use wasm32-wasip1 instead of wasm32-wasi target for rust code (#4057)
|
||||||
|
- Update Rust target from 'wasm32-wasi' to 'wasm32-wasip1' in CI (#4050)
|
||||||
|
- Fix wasm loader check data segment count (#4039)
|
||||||
|
- Fix table index calculations in wasm_loader and wasm_mini_loader (#4004)
|
||||||
|
- Ensure **heap_base and **data_end global indices are validated against import count (#3996)
|
||||||
|
- fix format specifier warning on 32bit builds (#4177)
|
||||||
|
- Remove indirect-load for constants on Xtensa Target to improve performance (#4162)
|
||||||
|
- cmake: Enhance target selection for ARM architectures with FPU (#4185)
|
||||||
|
- Add import memory/table flag assert check for miniloader (#4179)
|
||||||
|
- Fix few integer overflowing (#4161)
|
||||||
|
- prevent frame_offset underflow in wasm_loader (#4165)
|
||||||
|
- fix: Remove unused variables in SIMD_v128_const case (#4197)
|
||||||
|
- fix false native stack overflow detections with HW_BOUND_CHECK (#4196)
|
||||||
|
- Keep fix the CMake compatibility issue (#4180)
|
||||||
|
- Fix the error of AOT mode on the "i386-windows-msvc" platform (#4183)
|
||||||
|
- debug-engine: fix a few type mismatches (#4189)
|
||||||
|
- Replace CMAKE_CURRENT_FUNCTION_LIST_DIR (#4200)
|
||||||
|
- fix potential memory leak (#4205)
|
||||||
|
- Add missing V128 handling in WASM_OP_BR (#4203)
|
||||||
|
- fix print_help when libc wasi is enabled (#4218)
|
||||||
|
- LLVM: don't verify instcombine fixpoint (#4219)
|
||||||
|
- LLVMCreateTargetMachineWithOpts: disable large data (#4220)
|
||||||
|
- set default value of `WAMR_BUILD_REF_TYPES` to 1 in standalone cases (#4227)
|
||||||
|
- platform/nuttx: Fix dcache operation in os_dcache_flush (#4225)
|
||||||
|
- fix return types of our 64-bit clz/ctz/popcount intrinsics (#4238)
|
||||||
|
- riscv: avoid llvm.cttz.i32/i64 for xip (#4248)
|
||||||
|
- Add overflow check for preserved local offset in preserve_referenced_local (#4211)
|
||||||
|
- aot_resolve_object_relocation_group: adapt to LLVM 16 (#4250)
|
||||||
|
- initialize WASI stdio handles to invalid for better error handling (#4092)
|
||||||
|
- Modifying build flags to ensure libiwasm.so is built (#4255)
|
||||||
|
- Stop pretending to support extended-const proposal (#4258)
|
||||||
|
- Improve readlinkat_dup() to handle symlink size correctly (#4229)
|
||||||
|
- fix: improve error handling of snprintf() in send_thread_stop_status() (#4234)
|
||||||
|
- Don't call os_thread_get_stack_boundary unless we actually use it (#4264)
|
||||||
|
- avoid access null pointer (#4262)
|
||||||
|
- disable compiler to prevent get_current_target() crash (#4251)
|
||||||
|
- product-mini/platforms/windows: set C++17 explicitly (#4269)
|
||||||
|
- fix buf checking in load_table_section (#4276)
|
||||||
|
- Set CMAKE_OSX_SYSROOT when building lldb (#4274)
|
||||||
|
- Add select 128 (#4236)
|
||||||
|
|
||||||
|
### Enhancements
|
||||||
|
|
||||||
|
- Refine looking up aot function with index (#3882)
|
||||||
|
- Wasm loader enhancement: check code size in code entry (#3892)
|
||||||
|
- Refactor AOT loader to support compatible versions (#3891)
|
||||||
|
- GlobalValueSet was moved to IRPartitionLayer recently, but we have a local definition anyway (#3899)
|
||||||
|
- Support external toolchain on Windows for aot compiler (#3911)
|
||||||
|
- Drop declarative elements on module instantiation (#3922)
|
||||||
|
- add testcases for shared heap and fix POP_MEM_OFFSET of memory64 (#3916)
|
||||||
|
- Enable ref types by default (#3894)
|
||||||
|
- Update README.md to clarify Windows toolchain support and ESP-IDF reference (#3917)
|
||||||
|
- add thread cpu time for zephyr (#3937)
|
||||||
|
- Improvements for platform thread APIs on Windows and Zephyr (#3941)
|
||||||
|
- Refactor SConscript and add file checks in iwasm.c (#3945)
|
||||||
|
- Consume the placeholders that were put when emitting table info (#3940)
|
||||||
|
- wasm_export.h: Use "default" visibility for gcc and clang (#3957)
|
||||||
|
- [fuzzing] Enable instantiation (#3958)
|
||||||
|
- use a random secret key (#3971)
|
||||||
|
- CMakeLists.txt: Do not require C++ (#3956)
|
||||||
|
- add reference type support by default for darwin to support WASI-SDK-25 (#3978)
|
||||||
|
- top-level cmake: link llvm libraries to our shared library (#3973)
|
||||||
|
- Set thread information earlier in exec_env creation (#3967)
|
||||||
|
- Break aot_create_comp_data into small functions (#3987)
|
||||||
|
- Optimize memory initialization handling in AOT loader (#3983)
|
||||||
|
- nuttx: remove the up_x API for kernel build (#4154)
|
||||||
|
- Expose WAMR_BUILD_GC_HEAP_SIZE_DEFAULT as a CMake option (#4124)
|
||||||
|
- Use log instead of using assertion in aot loader (#4119)
|
||||||
|
- feat: use C linkage in aot_comp_option.h for C++ embeding (#4106)
|
||||||
|
- Cmake improvements (#4076)
|
||||||
|
- feat: add support for EXTERNREF value type and enable AOT validator in fuzz tests (#4083)
|
||||||
|
- build_llvm.py: Allow to build xtensa target on non-xtensa host (#4086)
|
||||||
|
- Add a conditional check for the macro **STDC_VERSION** (#4080)
|
||||||
|
- [fuzzing] execute every exported function (#3959)
|
||||||
|
- Update memory allocation functions to use allocator user data (#4043)
|
||||||
|
- Add versioning support and update CMake configuration (#3933)
|
||||||
|
- Show wasm proposals status during compilation and execution (#3989)
|
||||||
|
- add a validator for aot module (#3995)
|
||||||
|
- Synchronize the GC spec tests to the commit from December 9. 2024. (#4022)
|
||||||
|
- Refine getting const offsets in wasm loader of fast-interp (#4012)
|
||||||
|
- fixes for compiling on windows (#4026)
|
||||||
|
- .github: Add shared lib builds (#3975)
|
||||||
|
- Error message improvement (#4000)
|
||||||
|
- Refine read leb int wasm loader of fast interpreter (#4017)
|
||||||
|
- Enable shrunk memory by default and add related configurations (#4008)
|
||||||
|
- Add documentation regarding security issues and the status of Wasm proposals (#3972)
|
||||||
|
- Improve stack consistency by ensuring sufficient space for dummy offsets (#4011)
|
||||||
|
- Check whether related table has funcref elem in opcode call_indirect (#3999)
|
||||||
|
- [fuzzing] Use software bound-check during fuzzing (#4003)
|
||||||
|
- Add an example of how to embed WAMR in Zephyr user mode (#3998)
|
||||||
|
- Update cmake min to 3.14 (#4175)
|
||||||
|
- aot: add new u64 intrinsics (#4168)
|
||||||
|
- Refactor Dockerfile and update .dockerignore for wasi-nn tests; adjust map-dir parameters in smoke test script (#4158)
|
||||||
|
- improve variable naming and code clarity in SIMD operations (#4157)
|
||||||
|
- Raise CI runner to ubuntu 22.04 (#4191)
|
||||||
|
- Remove the dlen to optimize it. (#4193)
|
||||||
|
- Add missing casts and improve error handling in performance map functions (#4202)
|
||||||
|
- Raise wasi-sdk to 25 and wabt to 1.0.37 (#4187)
|
||||||
|
- wamrc: add --disable-llvm-jump-tables option (#4224)
|
||||||
|
- feat(fuzz): add a new fuzzing target about aot compiler (#4121)
|
||||||
|
- bypass vptr santizier (#4231)
|
||||||
|
- use a selected llvm libs list to replace the full list (#4232)
|
||||||
|
- teach aot emitter/loader about .srodata and .srodata.cst\* sections (#4240)
|
||||||
|
- run_clang_format_diff: mention homebrew for clang-format installation (#4237)
|
||||||
|
- Use --target to pass a triple in wamrc (#4199)
|
||||||
|
- samples/wasm-c-api: skip aot compilation unless necessary (#4239)
|
||||||
|
- samples/wasm-c-api: remove unused valgrind detection (#4249)
|
||||||
|
- More detail to python setup, and fixed small typo (#4247)
|
||||||
|
- JIT: don't join worker threads twice (#4252)
|
||||||
|
- aot_resolve_object_relocation_group: adapt to LLVM 19 (#4254)
|
||||||
|
- build-scripts/build_llvm.py: bump to llvm 18 (#4259)
|
||||||
|
- CI: make macos' build_samples_wasm_c_api similar to ubuntu (#4253)
|
||||||
|
- Refactor fast-interpreter SIMD compilation flags (#4261)
|
||||||
|
- Bypass wamr_ide-related components from the release process. (#4268)
|
||||||
|
- Check for WASM_ENABLE_SIMDE in a couple more places (#4266)
|
||||||
|
- Add error handling for sgx ci (#4222)
|
||||||
|
|
||||||
|
### Security Issues
|
||||||
|
|
||||||
|
- Add validation for old_path in wasi_path_symlink (# CVE-2025-43853)
|
||||||
|
|
||||||
|
### Others
|
||||||
|
|
||||||
|
- Exclude fuzz test python and npm packages in scoreboard scan (#3871)
|
||||||
|
- Bump AOT_CURRENT_VERSION for WAMR 2.x (gc, memory64) (#3880)
|
||||||
|
- Add Tianlong into code owners (#3970)
|
||||||
|
- build(deps): Bump actions/upload-artifact from 4.4.3 to 4.5.0 (#3981)
|
||||||
|
- docs: Update build instructions suggestions for using Valgrind (#4164)
|
||||||
|
- test: temporarily skip 'skip-stack-guard-page' test case (#4163)
|
||||||
|
- build(deps): Bump actions/upload-artifact from 4.6.1 to 4.6.2 (#4159)
|
||||||
|
- Update NuttX and NuttX Apps references to releases/12.9 in workflow files (#4148)
|
||||||
|
- build(deps): Bump esbuild, @vitejs/plugin-react and vite (#4149)
|
||||||
|
- build(deps): Bump ossf/scorecard-action from 2.4.0 to 2.4.1 (#4109)
|
||||||
|
- build(deps): bump github/codeql-action from 3.26.13 to 3.28.1 (#3888) (#3902)
|
||||||
|
- build(deps): Bump github/codeql-action from 3.28.10 to 3.28.11 (#4132)
|
||||||
|
- build(deps): Bump github/codeql-action from 3.28.9 to 3.28.10 (#4108)
|
||||||
|
- build(deps): Bump actions/upload-artifact from 4.6.0 to 4.6.1 (#4107)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## WAMR-2.2.0
|
## WAMR-2.2.0
|
||||||
|
|
||||||
### Breaking changes
|
### Breaking changes
|
||||||
|
|
||||||
### New features
|
### New features
|
||||||
|
|
||||||
- Add support for multi-memory proposal in classic interpreter (#3742)
|
- Add support for multi-memory proposal in classic interpreter (#3742)
|
||||||
- wasi-nn: Add a new target for llama.cpp as a wasi-nn backend (#3709)
|
- wasi-nn: Add a new target for llama.cpp as a wasi-nn backend (#3709)
|
||||||
- Add memory instance support apis (#3786)
|
- Add memory instance support apis (#3786)
|
||||||
|
@ -11,8 +236,8 @@
|
||||||
- Implement shared heap for AOT (#3815)
|
- Implement shared heap for AOT (#3815)
|
||||||
- Support table64 extension in classic-interp and AOT running modes (#3811)
|
- Support table64 extension in classic-interp and AOT running modes (#3811)
|
||||||
|
|
||||||
|
|
||||||
### Bug fixes
|
### Bug fixes
|
||||||
|
|
||||||
- Enable merged os_mmap for aot data sections (#3681)
|
- Enable merged os_mmap for aot data sections (#3681)
|
||||||
- Fix arm64 issues on mac (#3688)
|
- Fix arm64 issues on mac (#3688)
|
||||||
- aot loader: Call os_mmap with MMAP_MAP_32BIT only when target is x86-64 or riscv64 (#3755)
|
- aot loader: Call os_mmap with MMAP_MAP_32BIT only when target is x86-64 or riscv64 (#3755)
|
||||||
|
@ -28,6 +253,7 @@
|
||||||
- Fix issues of destroy_shared_heaps (#3847)
|
- Fix issues of destroy_shared_heaps (#3847)
|
||||||
|
|
||||||
### Enhancements
|
### Enhancements
|
||||||
|
|
||||||
- aot loader: Refine os_mmap related code (#3711)
|
- aot loader: Refine os_mmap related code (#3711)
|
||||||
- Enable merged os_mmap for aot data sections and aot text (#3743)
|
- Enable merged os_mmap for aot data sections and aot text (#3743)
|
||||||
- Improve posix mmap retry logic (#3714)
|
- Improve posix mmap retry logic (#3714)
|
||||||
|
@ -56,8 +282,8 @@
|
||||||
- Refine wasm/aot function instance lookup (#3865)
|
- Refine wasm/aot function instance lookup (#3865)
|
||||||
- Fix quadratic runtime for duplicate export name detection (#3861)
|
- Fix quadratic runtime for duplicate export name detection (#3861)
|
||||||
|
|
||||||
|
|
||||||
### Others
|
### Others
|
||||||
|
|
||||||
- Add a comment on AOT_SECTION_TYPE_SIGNATURE (#3746)
|
- Add a comment on AOT_SECTION_TYPE_SIGNATURE (#3746)
|
||||||
- CI: Freeze version of bloaty for NuttX compilation (#3756)
|
- CI: Freeze version of bloaty for NuttX compilation (#3756)
|
||||||
- aot compiler: Allow to control stack boundary check when boundary check is enabled (#3754)
|
- aot compiler: Allow to control stack boundary check when boundary check is enabled (#3754)
|
||||||
|
@ -83,20 +309,24 @@
|
||||||
## WAMR-2.1.2
|
## WAMR-2.1.2
|
||||||
|
|
||||||
### Breaking Changes
|
### Breaking Changes
|
||||||
|
|
||||||
- wasi-nn: Apply new architecture (#3692)
|
- wasi-nn: Apply new architecture (#3692)
|
||||||
|
|
||||||
### New Features
|
### New Features
|
||||||
|
|
||||||
- [wasi-nn] Add a new wasi-nn backend openvino (#3603)
|
- [wasi-nn] Add a new wasi-nn backend openvino (#3603)
|
||||||
- Add APIs into wasm_c_api.h to summary wasm function execution duration (#3639)
|
- Add APIs into wasm_c_api.h to summary wasm function execution duration (#3639)
|
||||||
- Add support for RISCV32 ILP32F (#3708)
|
- Add support for RISCV32 ILP32F (#3708)
|
||||||
|
|
||||||
### Bug Fixes
|
### Bug Fixes
|
||||||
|
|
||||||
- libc-builtin: Fix function prototype for wasm_runtime_module_realloc (#3702)
|
- libc-builtin: Fix function prototype for wasm_runtime_module_realloc (#3702)
|
||||||
- Fix potential memory leak in insert_native_symbol (#3712)
|
- Fix potential memory leak in insert_native_symbol (#3712)
|
||||||
- aot compiler: Fix NaN handling for opcode f32/f64.const in XIP mode (#3721)
|
- aot compiler: Fix NaN handling for opcode f32/f64.const in XIP mode (#3721)
|
||||||
- Fix table idx resolving in op call_indirect/return_call_indirect (#3726)
|
- Fix table idx resolving in op call_indirect/return_call_indirect (#3726)
|
||||||
|
|
||||||
### Enhancements
|
### Enhancements
|
||||||
|
|
||||||
- Remove a few hardcoded spec test knowledge from the core library (#3648)
|
- Remove a few hardcoded spec test knowledge from the core library (#3648)
|
||||||
- Change log of import function to be consistent (#3656)
|
- Change log of import function to be consistent (#3656)
|
||||||
- libc-builtin: Fix a printf format (#3652)
|
- libc-builtin: Fix a printf format (#3652)
|
||||||
|
@ -122,9 +352,10 @@
|
||||||
- Update std atomic check and simd compatibility check for arc compiler (#3716)
|
- Update std atomic check and simd compatibility check for arc compiler (#3716)
|
||||||
- aot compiler: Track non-0x00 tableindex as ref types use (#3695)
|
- aot compiler: Track non-0x00 tableindex as ref types use (#3695)
|
||||||
- compilation: Use the dedicated stack-sizes section only for AOT (#3732)
|
- compilation: Use the dedicated stack-sizes section only for AOT (#3732)
|
||||||
- riscv: Add missing relocation intrinsics for __fixdfsi/__ltdf2 (#3733)
|
- riscv: Add missing relocation intrinsics for **fixdfsi/**ltdf2 (#3733)
|
||||||
|
|
||||||
### Others
|
### Others
|
||||||
|
|
||||||
- Fix night run CI (#3640)
|
- Fix night run CI (#3640)
|
||||||
- spec-test-script/runtest.py: Don't assume the tmp dir path (#3632)
|
- spec-test-script/runtest.py: Don't assume the tmp dir path (#3632)
|
||||||
- wamr-test-suites: Remove dead code (wasi_test) (#3634)
|
- wamr-test-suites: Remove dead code (wasi_test) (#3634)
|
||||||
|
@ -157,15 +388,18 @@
|
||||||
## WAMR-2.1.1
|
## WAMR-2.1.1
|
||||||
|
|
||||||
### Breaking Changes
|
### Breaking Changes
|
||||||
|
|
||||||
- Sync up with latest wasi-nn spec (#3530)
|
- Sync up with latest wasi-nn spec (#3530)
|
||||||
|
|
||||||
### New Features
|
### New Features
|
||||||
|
|
||||||
- Add APIs to get package version (#3601)
|
- Add APIs to get package version (#3601)
|
||||||
- Export API wasm_runtime_enlarge_memory (#3569)
|
- Export API wasm_runtime_enlarge_memory (#3569)
|
||||||
- Add table type API support (#3515)
|
- Add table type API support (#3515)
|
||||||
- Add wasm_runtime_get_module_package_type() and wasm_runtime_get_file_package_type() (#3600)
|
- Add wasm_runtime_get_module_package_type() and wasm_runtime_get_file_package_type() (#3600)
|
||||||
|
|
||||||
### Bug Fixes
|
### Bug Fixes
|
||||||
|
|
||||||
- wasm_application.c: Avoid null pointer dereference (#3620)
|
- wasm_application.c: Avoid null pointer dereference (#3620)
|
||||||
- EH: Use the consistent type for EH handlers (#3619)
|
- EH: Use the consistent type for EH handlers (#3619)
|
||||||
- wasm loader: Fix several issues in GC and exception handling (#3586)
|
- wasm loader: Fix several issues in GC and exception handling (#3586)
|
||||||
|
@ -189,6 +423,7 @@
|
||||||
- Fix several issues reported by oss-fuzz (#3526)
|
- Fix several issues reported by oss-fuzz (#3526)
|
||||||
|
|
||||||
### Enhancements
|
### Enhancements
|
||||||
|
|
||||||
- Fix compile warnings/error reported in Windows (#3616)
|
- Fix compile warnings/error reported in Windows (#3616)
|
||||||
- wasm loader: Reject v128 for interpreters (#3611)
|
- wasm loader: Reject v128 for interpreters (#3611)
|
||||||
- Fix typos in wamrc and wasm_export.h (#3609)
|
- Fix typos in wamrc and wasm_export.h (#3609)
|
||||||
|
@ -213,6 +448,7 @@
|
||||||
- Add missing functions to make RIOT work with the 2.x.x version (#3508)
|
- Add missing functions to make RIOT work with the 2.x.x version (#3508)
|
||||||
|
|
||||||
### Others
|
### Others
|
||||||
|
|
||||||
- Update devcontainer.md (#3628)
|
- Update devcontainer.md (#3628)
|
||||||
- Fix compile errors on workload bwa and benchmark jetstream (#3617)
|
- Fix compile errors on workload bwa and benchmark jetstream (#3617)
|
||||||
- wasm-mutator-fuzz: Set compilers earlier (#3585)
|
- wasm-mutator-fuzz: Set compilers earlier (#3585)
|
||||||
|
@ -230,6 +466,7 @@
|
||||||
### Breaking Changes
|
### Breaking Changes
|
||||||
|
|
||||||
### New Features
|
### New Features
|
||||||
|
|
||||||
- Add wasm_export.h APIs to expose memory type (#3496)
|
- Add wasm_export.h APIs to expose memory type (#3496)
|
||||||
- Add api to get export global instance (#3452)
|
- Add api to get export global instance (#3452)
|
||||||
- Add wasm-mutator-fuzz test (#3420)
|
- Add wasm-mutator-fuzz test (#3420)
|
||||||
|
@ -240,6 +477,7 @@
|
||||||
- Add WASI support for esp-idf platform (#3348)
|
- Add WASI support for esp-idf platform (#3348)
|
||||||
|
|
||||||
### Bug Fixes
|
### Bug Fixes
|
||||||
|
|
||||||
- Fix posix build when libc wasi is disabled and debug interp is enabled (#3503)
|
- Fix posix build when libc wasi is disabled and debug interp is enabled (#3503)
|
||||||
- Fix wasm_mini_loader.c build when jit or multi-module is enabled (#3502)
|
- Fix wasm_mini_loader.c build when jit or multi-module is enabled (#3502)
|
||||||
- Fix wasm loader check data segment count (#3492)
|
- Fix wasm loader check data segment count (#3492)
|
||||||
|
@ -266,6 +504,7 @@
|
||||||
- Fix a few native stack address calculations (#3351)
|
- Fix a few native stack address calculations (#3351)
|
||||||
|
|
||||||
### Enhancements
|
### Enhancements
|
||||||
|
|
||||||
- Modify logging for windows exception handler and remove unused function (#3489)
|
- Modify logging for windows exception handler and remove unused function (#3489)
|
||||||
- posix iwasm: Make the timeout logic a bit more robust (#3478)
|
- posix iwasm: Make the timeout logic a bit more robust (#3478)
|
||||||
- libc-builtin: Enhance buffered print for printf_wrapper (#3460)
|
- libc-builtin: Enhance buffered print for printf_wrapper (#3460)
|
||||||
|
@ -278,6 +517,7 @@
|
||||||
- Enhance wasm loader checks for opcode br_table (#3352)
|
- Enhance wasm loader checks for opcode br_table (#3352)
|
||||||
|
|
||||||
### Others
|
### Others
|
||||||
|
|
||||||
- Bump requests from 2.32.2 to 2.32.3 in /build-scripts (#3494)
|
- Bump requests from 2.32.2 to 2.32.3 in /build-scripts (#3494)
|
||||||
- Enable building static library on Android platform (#3488)
|
- Enable building static library on Android platform (#3488)
|
||||||
- wasm-mutator-fuzz: Generate more kinds of corpus (#3487)
|
- wasm-mutator-fuzz: Generate more kinds of corpus (#3487)
|
||||||
|
@ -326,6 +566,7 @@
|
||||||
## WAMR-2.0.0
|
## WAMR-2.0.0
|
||||||
|
|
||||||
### Breaking Changes
|
### Breaking Changes
|
||||||
|
|
||||||
- The AOT ABI was changed after GC and memory64 features were introduced:
|
- The AOT ABI was changed after GC and memory64 features were introduced:
|
||||||
- Implement GC feature for interpreter, AOT and LLVM-JIT (#3125)
|
- Implement GC feature for interpreter, AOT and LLVM-JIT (#3125)
|
||||||
- Implement memory64 for classic interpreter (#3266)
|
- Implement memory64 for classic interpreter (#3266)
|
||||||
|
@ -335,11 +576,13 @@
|
||||||
- Separate app-manager and app-framework from WAMR (#3129)
|
- Separate app-manager and app-framework from WAMR (#3129)
|
||||||
|
|
||||||
### New Features
|
### New Features
|
||||||
|
|
||||||
- Implement GC feature for interpreter, AOT and LLVM-JIT (#3125)
|
- Implement GC feature for interpreter, AOT and LLVM-JIT (#3125)
|
||||||
- Implement memory64 for classic interpreter (#3266)
|
- Implement memory64 for classic interpreter (#3266)
|
||||||
- Add wasi_ephemeral_nn module support (#3241)
|
- Add wasi_ephemeral_nn module support (#3241)
|
||||||
|
|
||||||
### Bug Fixes
|
### Bug Fixes
|
||||||
|
|
||||||
- EH: Fix broken stack usage calculation (#3121)
|
- EH: Fix broken stack usage calculation (#3121)
|
||||||
- Fix loader check_wasi_abi_compatibility (#3126)
|
- Fix loader check_wasi_abi_compatibility (#3126)
|
||||||
- Fix possible integer overflow in loader target block check (#3133)
|
- Fix possible integer overflow in loader target block check (#3133)
|
||||||
|
@ -366,6 +609,7 @@
|
||||||
- Fix windows relocation string parsing issue (#3333)
|
- Fix windows relocation string parsing issue (#3333)
|
||||||
|
|
||||||
### Enhancements
|
### Enhancements
|
||||||
|
|
||||||
- Zero the memory mapped from os_mmap in NuttX (#3132)
|
- Zero the memory mapped from os_mmap in NuttX (#3132)
|
||||||
- Use logger for runtime error/debug prints (#3097)
|
- Use logger for runtime error/debug prints (#3097)
|
||||||
- aot_compile_op_call: Stop setting calling convention explicitly (#3140)
|
- aot_compile_op_call: Stop setting calling convention explicitly (#3140)
|
||||||
|
@ -409,6 +653,7 @@
|
||||||
- Add functions to expose module import/export info (#3330)
|
- Add functions to expose module import/export info (#3330)
|
||||||
|
|
||||||
### Others
|
### Others
|
||||||
|
|
||||||
- Add ARM MacOS to the CI (#3120)
|
- Add ARM MacOS to the CI (#3120)
|
||||||
- Download jetstream src from github instead of browserbench.org (#3196)
|
- Download jetstream src from github instead of browserbench.org (#3196)
|
||||||
- Update document to add wamr-rust-sdk introduction (#3204)
|
- Update document to add wamr-rust-sdk introduction (#3204)
|
||||||
|
@ -427,12 +672,14 @@
|
||||||
### Breaking Changes
|
### Breaking Changes
|
||||||
|
|
||||||
### New Features
|
### New Features
|
||||||
|
|
||||||
- Implement Exception Handling for classic interpreter (#3096)
|
- Implement Exception Handling for classic interpreter (#3096)
|
||||||
- Use `cmake -DWAMR_BUILD_EXCE_HANDLING=1/0` option to enable/disable
|
- Use `cmake -DWAMR_BUILD_EXCE_HANDLING=1/0` option to enable/disable
|
||||||
the feature, and by default it is disabled
|
the feature, and by default it is disabled
|
||||||
- It is still in highly experimental stage
|
- It is still in highly experimental stage
|
||||||
|
|
||||||
### Bug Fixes
|
### Bug Fixes
|
||||||
|
|
||||||
- Fix build errors when initializing wasm_val_t values with macros (#3007)
|
- Fix build errors when initializing wasm_val_t values with macros (#3007)
|
||||||
- fix(wasm-c-api): Do not clone stack frames if there's no trap (#3008)
|
- fix(wasm-c-api): Do not clone stack frames if there's no trap (#3008)
|
||||||
- classic-interp: Handle SIMD opcode when JIT is enabled (#3046)
|
- classic-interp: Handle SIMD opcode when JIT is enabled (#3046)
|
||||||
|
@ -451,6 +698,7 @@
|
||||||
- Fix read and validation of misc/simd/atomic sub opcodes (#3115)
|
- Fix read and validation of misc/simd/atomic sub opcodes (#3115)
|
||||||
|
|
||||||
### Enhancements
|
### Enhancements
|
||||||
|
|
||||||
- Clear compilation warning and dead code (#3002)
|
- Clear compilation warning and dead code (#3002)
|
||||||
- aot debug: Try to use a bit more appropriate file names (#3000)
|
- aot debug: Try to use a bit more appropriate file names (#3000)
|
||||||
- Increase default app thread stack size (#3010)
|
- Increase default app thread stack size (#3010)
|
||||||
|
@ -459,7 +707,7 @@
|
||||||
- Allow using mmap for shared memory if hw bound check is disabled (#3029)
|
- Allow using mmap for shared memory if hw bound check is disabled (#3029)
|
||||||
- Don't redefine D_INO if already defined (#3036)
|
- Don't redefine D_INO if already defined (#3036)
|
||||||
- Enhancements on wasm function execution time statistic (#2985)
|
- Enhancements on wasm function execution time statistic (#2985)
|
||||||
- wamr-compiler: Fix non-x86{_64} host builds (#3037)
|
- wamr-compiler: Fix non-x86{\_64} host builds (#3037)
|
||||||
- Disable quick aot entry for interp and fast-jit (#3039)
|
- Disable quick aot entry for interp and fast-jit (#3039)
|
||||||
- nuttx: Add option to enable quick aot entry (#3040)
|
- nuttx: Add option to enable quick aot entry (#3040)
|
||||||
- Set CONFIG_HAS_CAP_ENTER to support posix file api for freertos (#3041)
|
- Set CONFIG_HAS_CAP_ENTER to support posix file api for freertos (#3041)
|
||||||
|
@ -481,6 +729,7 @@
|
||||||
- Fix windows build error and compilation warnings (#3095)
|
- Fix windows build error and compilation warnings (#3095)
|
||||||
|
|
||||||
### Others
|
### Others
|
||||||
|
|
||||||
- Fix nightly-run CI failure (#3014)
|
- Fix nightly-run CI failure (#3014)
|
||||||
- Build samples in debug mode (#3019)
|
- Build samples in debug mode (#3019)
|
||||||
- Remove deprecated tests in language-bindings python (#3018)
|
- Remove deprecated tests in language-bindings python (#3018)
|
||||||
|
@ -501,6 +750,7 @@
|
||||||
## WAMR-1.3.1
|
## WAMR-1.3.1
|
||||||
|
|
||||||
### Breaking Changes
|
### Breaking Changes
|
||||||
|
|
||||||
- In multi-threading, when an exception was thrown in wasm_func_call(),
|
- In multi-threading, when an exception was thrown in wasm_func_call(),
|
||||||
the trap returned contains the stack frames of the thread where the
|
the trap returned contains the stack frames of the thread where the
|
||||||
exception occurs, but not the stack frames of the main thread.
|
exception occurs, but not the stack frames of the main thread.
|
||||||
|
@ -509,9 +759,11 @@
|
||||||
`wamrc --emit-custom-sections=name` to emit it and make it clear.
|
`wamrc --emit-custom-sections=name` to emit it and make it clear.
|
||||||
|
|
||||||
### New Features
|
### New Features
|
||||||
|
|
||||||
- Enable AOT linux perf support (#2930)
|
- Enable AOT linux perf support (#2930)
|
||||||
|
|
||||||
### Bug Fixes
|
### Bug Fixes
|
||||||
|
|
||||||
- Corrects Zephyr include files for current versions of Zephyr (#2881)
|
- Corrects Zephyr include files for current versions of Zephyr (#2881)
|
||||||
- Fix possible dead lock in wasm_cluster_spawn_exec_env (#2882)
|
- Fix possible dead lock in wasm_cluster_spawn_exec_env (#2882)
|
||||||
- Handle ambiguous fstflags on fd_filestat_set_times (#2892)
|
- Handle ambiguous fstflags on fd_filestat_set_times (#2892)
|
||||||
|
@ -530,7 +782,8 @@
|
||||||
- Fix linux-sgx build error when libc-wasi is disabled (#2997)
|
- Fix linux-sgx build error when libc-wasi is disabled (#2997)
|
||||||
|
|
||||||
### Enhancements
|
### Enhancements
|
||||||
- fix command-reactor: Look for _initialize only if _start not found (#2891)
|
|
||||||
|
- fix command-reactor: Look for \_initialize only if \_start not found (#2891)
|
||||||
- Refactor reloc symbols for riscv (#2894)
|
- Refactor reloc symbols for riscv (#2894)
|
||||||
- Avoid memory import failure when wasi-threads is enabled (#2893)
|
- Avoid memory import failure when wasi-threads is enabled (#2893)
|
||||||
- interpreter: Simplify memory.grow a bit (#2899)
|
- interpreter: Simplify memory.grow a bit (#2899)
|
||||||
|
@ -542,7 +795,7 @@
|
||||||
- Enable wasm_runtime_terminate for single-threading (#2924)
|
- Enable wasm_runtime_terminate for single-threading (#2924)
|
||||||
- nuttx: Add CONFIG_INTERPRETERS_WAMR_DEBUG_AOT (#2929)
|
- nuttx: Add CONFIG_INTERPRETERS_WAMR_DEBUG_AOT (#2929)
|
||||||
- Allow to control built-in libraries for wamrc from command line options (#2928)
|
- Allow to control built-in libraries for wamrc from command line options (#2928)
|
||||||
- Fix a bug that appends '_precheck' to aot_func (#2936)
|
- Fix a bug that appends '\_precheck' to aot_func (#2936)
|
||||||
- freertos: Add os_cond_broadcast for pthread wrapper (#2937)
|
- freertos: Add os_cond_broadcast for pthread wrapper (#2937)
|
||||||
- Append .aot to .wasm as a custom section named "aot" (#2933)
|
- Append .aot to .wasm as a custom section named "aot" (#2933)
|
||||||
- fix(sgx-ra): Fix building when enclave is built without librats ahead (#2968)
|
- fix(sgx-ra): Fix building when enclave is built without librats ahead (#2968)
|
||||||
|
@ -557,6 +810,7 @@
|
||||||
- Refine AOT/JIT code call wasm-c-api import process (#2982)
|
- Refine AOT/JIT code call wasm-c-api import process (#2982)
|
||||||
|
|
||||||
### Others
|
### Others
|
||||||
|
|
||||||
- compilation_on_nuttx.yml: Use docker image to simplify env setup (#2878)
|
- compilation_on_nuttx.yml: Use docker image to simplify env setup (#2878)
|
||||||
- samples/spawn-thread: Disable libc and pthread (#2883)
|
- samples/spawn-thread: Disable libc and pthread (#2883)
|
||||||
- Add arm64 to nuttx compilation test (#2886)
|
- Add arm64 to nuttx compilation test (#2886)
|
||||||
|
@ -571,6 +825,7 @@
|
||||||
## WAMR-1.3.0
|
## WAMR-1.3.0
|
||||||
|
|
||||||
### Breaking Changes
|
### Breaking Changes
|
||||||
|
|
||||||
- Abstract POSIX filesystem functions (#2585)
|
- Abstract POSIX filesystem functions (#2585)
|
||||||
- Change API wasm_runtime_set_wasi_args_ex's arguments
|
- Change API wasm_runtime_set_wasi_args_ex's arguments
|
||||||
`int stdinfd/stdoutfd/stderrfd` to `int64_t stdinfd/stdoutfd/stderrfd`
|
`int stdinfd/stdoutfd/stderrfd` to `int64_t stdinfd/stdoutfd/stderrfd`
|
||||||
|
@ -585,6 +840,7 @@
|
||||||
- libc-wasi: Conditionally support SYNC flags (#2581)
|
- libc-wasi: Conditionally support SYNC flags (#2581)
|
||||||
|
|
||||||
### New Features
|
### New Features
|
||||||
|
|
||||||
- Support muti-module for AOT mode (#2482)
|
- Support muti-module for AOT mode (#2482)
|
||||||
- Implement libc-wasi for Windows platform (#2740)
|
- Implement libc-wasi for Windows platform (#2740)
|
||||||
- Implement module instance context APIs (#2436)
|
- Implement module instance context APIs (#2436)
|
||||||
|
@ -593,8 +849,9 @@
|
||||||
- Add Cosmopolitan Libc Platform (#2598)
|
- Add Cosmopolitan Libc Platform (#2598)
|
||||||
|
|
||||||
### Bug Fixes
|
### Bug Fixes
|
||||||
|
|
||||||
- sgx-ra: Disable the building of samples (#2507)
|
- sgx-ra: Disable the building of samples (#2507)
|
||||||
- Handle a return from wasi _start function correctly (#2529)
|
- Handle a return from wasi \_start function correctly (#2529)
|
||||||
- fd_object_release: Preserve errno (#2535)
|
- fd_object_release: Preserve errno (#2535)
|
||||||
- Fix build error with ancient GCC (4.8) (#2553)
|
- Fix build error with ancient GCC (4.8) (#2553)
|
||||||
- Fix compiling error for RT-Thread (#2569)
|
- Fix compiling error for RT-Thread (#2569)
|
||||||
|
@ -645,6 +902,7 @@
|
||||||
- Fix sample basic intToStr was called with wrong length (#2876)
|
- Fix sample basic intToStr was called with wrong length (#2876)
|
||||||
|
|
||||||
### Enhancements
|
### Enhancements
|
||||||
|
|
||||||
- Implement strict validation of thread IDs according to the specification (#2521)
|
- Implement strict validation of thread IDs according to the specification (#2521)
|
||||||
- Stop abusing shared memory lock to protect exception (#2509)
|
- Stop abusing shared memory lock to protect exception (#2509)
|
||||||
- Implement os_usleep for posix (#2517)
|
- Implement os_usleep for posix (#2517)
|
||||||
|
@ -660,7 +918,7 @@
|
||||||
- Add user to enlarge memory error callback (#2546)
|
- Add user to enlarge memory error callback (#2546)
|
||||||
- runtest.py: Show accurate case amount in summary (#2549)
|
- runtest.py: Show accurate case amount in summary (#2549)
|
||||||
- Allow using custom signal handler from non-main thread (#2551)
|
- Allow using custom signal handler from non-main thread (#2551)
|
||||||
- Return __WASI_EINVAL from fd_prestat_dir_name (#2580)
|
- Return \_\_WASI_EINVAL from fd_prestat_dir_name (#2580)
|
||||||
- Support AOT compiler with LLVM 17 (#2567)
|
- Support AOT compiler with LLVM 17 (#2567)
|
||||||
- Add support for closing/renumbering preopen fds (#2578)
|
- Add support for closing/renumbering preopen fds (#2578)
|
||||||
- Enable AOT usage on M1 mac (#2618)
|
- Enable AOT usage on M1 mac (#2618)
|
||||||
|
@ -703,6 +961,7 @@
|
||||||
- Fix compilation warnings on Windows (#2868)
|
- Fix compilation warnings on Windows (#2868)
|
||||||
|
|
||||||
### Others
|
### Others
|
||||||
|
|
||||||
- Add mutex stress test (#2472)
|
- Add mutex stress test (#2472)
|
||||||
- Add unit tests for the tid allocator (#2519)
|
- Add unit tests for the tid allocator (#2519)
|
||||||
- Add support for running tests on apple M1 macs (#2554)
|
- Add support for running tests on apple M1 macs (#2554)
|
||||||
|
@ -740,15 +999,18 @@
|
||||||
## WAMR-1.2.3
|
## WAMR-1.2.3
|
||||||
|
|
||||||
### Breaking Changes
|
### Breaking Changes
|
||||||
|
|
||||||
- Increase default native stack size (#2332)
|
- Increase default native stack size (#2332)
|
||||||
|
|
||||||
### New Features
|
### New Features
|
||||||
|
|
||||||
- Implement the segue optimization for LLVM AOT/JIT (#2230)
|
- Implement the segue optimization for LLVM AOT/JIT (#2230)
|
||||||
- Implement AOT static PGO (#2243)
|
- Implement AOT static PGO (#2243)
|
||||||
- Enable static PGO for Linux SGX (#2270)
|
- Enable static PGO for Linux SGX (#2270)
|
||||||
- Add Rust Formatters to Debugger (Vector, Map etc.) (#2219)
|
- Add Rust Formatters to Debugger (Vector, Map etc.) (#2219)
|
||||||
|
|
||||||
### Bug Fixes
|
### Bug Fixes
|
||||||
|
|
||||||
- The Python language-binding needs python>=3.9 (#2228)
|
- The Python language-binding needs python>=3.9 (#2228)
|
||||||
- aot_compile_op_call: Remove a wrong optimization (#2233)
|
- aot_compile_op_call: Remove a wrong optimization (#2233)
|
||||||
- Fix typo in samples/ref-types (#2236)
|
- Fix typo in samples/ref-types (#2236)
|
||||||
|
@ -791,6 +1053,7 @@
|
||||||
- Fix typo in aot_emit_aot_file.c (#2478)
|
- Fix typo in aot_emit_aot_file.c (#2478)
|
||||||
|
|
||||||
### Enhancements
|
### Enhancements
|
||||||
|
|
||||||
- A few changes related to WAMRC_LLC_COMPILER (#2218)
|
- A few changes related to WAMRC_LLC_COMPILER (#2218)
|
||||||
- Enhance linux-sgx CI (#2102)
|
- Enhance linux-sgx CI (#2102)
|
||||||
- Add asan and ubsan to WAMR CI (#2161)
|
- Add asan and ubsan to WAMR CI (#2161)
|
||||||
|
@ -856,6 +1119,7 @@
|
||||||
- Clone the input binary during wasm_module_validate (#2483)
|
- Clone the input binary during wasm_module_validate (#2483)
|
||||||
|
|
||||||
### Others
|
### Others
|
||||||
|
|
||||||
- Nuttx CI: Ignore the expired certificate for riscv gcc toolchain (#2222)
|
- Nuttx CI: Ignore the expired certificate for riscv gcc toolchain (#2222)
|
||||||
- core/iwasm/compilation: constify a bit (#2223)
|
- core/iwasm/compilation: constify a bit (#2223)
|
||||||
- Bump requests from 2.28.2 to 2.31.0 in /build-scripts (#2229)
|
- Bump requests from 2.28.2 to 2.31.0 in /build-scripts (#2229)
|
||||||
|
@ -878,9 +1142,11 @@
|
||||||
### Breaking Changes
|
### Breaking Changes
|
||||||
|
|
||||||
### New Features
|
### New Features
|
||||||
|
|
||||||
- Implement Fast JIT multi-threading feature (#2134)
|
- Implement Fast JIT multi-threading feature (#2134)
|
||||||
|
|
||||||
### Bug Fixes
|
### Bug Fixes
|
||||||
|
|
||||||
- Update request.ts wasm_response_send signature (#2122)
|
- Update request.ts wasm_response_send signature (#2122)
|
||||||
- Fix ems allocator unaligned memory access on riscv64 (#2140)
|
- Fix ems allocator unaligned memory access on riscv64 (#2140)
|
||||||
- libc_wasi_wrapper.c: Fix min func issue for size_t < 8 bytes on some platforms (#2152)
|
- libc_wasi_wrapper.c: Fix min func issue for size_t < 8 bytes on some platforms (#2152)
|
||||||
|
@ -889,6 +1155,7 @@
|
||||||
- Fix wamr-ide debugger ignoring launch config (#2155)
|
- Fix wamr-ide debugger ignoring launch config (#2155)
|
||||||
|
|
||||||
### Enhancements
|
### Enhancements
|
||||||
|
|
||||||
- Add test for validating linear memory size updates (#2078)
|
- Add test for validating linear memory size updates (#2078)
|
||||||
- Update Zephyr docs to remove unsupported west subcommand (#2128)
|
- Update Zephyr docs to remove unsupported west subcommand (#2128)
|
||||||
- Update messages/comments to refer the new place of the version definition (#2133)
|
- Update messages/comments to refer the new place of the version definition (#2133)
|
||||||
|
@ -907,6 +1174,7 @@
|
||||||
- Fix compile warnings on windows platform (#2208)
|
- Fix compile warnings on windows platform (#2208)
|
||||||
|
|
||||||
### Others
|
### Others
|
||||||
|
|
||||||
- CI: Add ubsan checks to samples/wasm-c-api (#2147)
|
- CI: Add ubsan checks to samples/wasm-c-api (#2147)
|
||||||
- CI: More precise trigger paths for github actions (#2157)
|
- CI: More precise trigger paths for github actions (#2157)
|
||||||
|
|
||||||
|
@ -919,6 +1187,7 @@
|
||||||
### New Features
|
### New Features
|
||||||
|
|
||||||
### Bug Fixes
|
### Bug Fixes
|
||||||
|
|
||||||
- libc-wasi/posix.c: Fix POLL{RD,WR}NORM in uClibc (#2069)
|
- libc-wasi/posix.c: Fix POLL{RD,WR}NORM in uClibc (#2069)
|
||||||
- Fix bh_assert for 64-bit platforms (#2071)
|
- Fix bh_assert for 64-bit platforms (#2071)
|
||||||
- wamr-ide: Modify Dockerfile to update base image version and fix build issue (#2068)
|
- wamr-ide: Modify Dockerfile to update base image version and fix build issue (#2068)
|
||||||
|
@ -932,6 +1201,7 @@
|
||||||
- Fix interpreter read linear memory size for multi-threading (#2088)
|
- Fix interpreter read linear memory size for multi-threading (#2088)
|
||||||
|
|
||||||
### Enhancements
|
### Enhancements
|
||||||
|
|
||||||
- Limit the minimal size of bh_hashmap (#2073)
|
- Limit the minimal size of bh_hashmap (#2073)
|
||||||
- Bump tensorflow to 2.11.1 in /core/iwasm/libraries/wasi-nn/test (#2061)
|
- Bump tensorflow to 2.11.1 in /core/iwasm/libraries/wasi-nn/test (#2061)
|
||||||
- Bump tensorflow to 2.11.1 in install_tensorflow.sh (#2076)
|
- Bump tensorflow to 2.11.1 in install_tensorflow.sh (#2076)
|
||||||
|
@ -939,6 +1209,7 @@
|
||||||
- Update documents (#2100)
|
- Update documents (#2100)
|
||||||
|
|
||||||
### Others
|
### Others
|
||||||
|
|
||||||
- spectest/nuttx: Increase stack size of iwasm task (#2082)
|
- spectest/nuttx: Increase stack size of iwasm task (#2082)
|
||||||
- ci: Refactor windows build definition (#2087)
|
- ci: Refactor windows build definition (#2087)
|
||||||
- ci: Enable WASI threads in CI (#2086)
|
- ci: Enable WASI threads in CI (#2086)
|
||||||
|
@ -950,8 +1221,8 @@
|
||||||
|
|
||||||
### Breaking Changes
|
### Breaking Changes
|
||||||
|
|
||||||
|
|
||||||
### New Features
|
### New Features
|
||||||
|
|
||||||
- Implement two-level Multi-tier JIT engine: tier-up from Fast JIT to LLVM JIT to get quick cold startup and better performance
|
- Implement two-level Multi-tier JIT engine: tier-up from Fast JIT to LLVM JIT to get quick cold startup and better performance
|
||||||
- Enable running mode control for runtime, wasm module instance and iwasm
|
- Enable running mode control for runtime, wasm module instance and iwasm
|
||||||
- Implement wasi-threads feature
|
- Implement wasi-threads feature
|
||||||
|
@ -964,6 +1235,7 @@
|
||||||
- Add libsodium benchmark
|
- Add libsodium benchmark
|
||||||
|
|
||||||
### Bug Fixes
|
### Bug Fixes
|
||||||
|
|
||||||
- Fix wasm-c-api import func link issue in wasm_instance_new
|
- Fix wasm-c-api import func link issue in wasm_instance_new
|
||||||
- Fix watchpoint segfault when using debug interp without server
|
- Fix watchpoint segfault when using debug interp without server
|
||||||
- libc-wasi: Fix spurious poll timeout
|
- libc-wasi: Fix spurious poll timeout
|
||||||
|
@ -992,6 +1264,7 @@
|
||||||
- fix debugger: Set termination flags also when in debug mode
|
- fix debugger: Set termination flags also when in debug mode
|
||||||
|
|
||||||
### Enhancements
|
### Enhancements
|
||||||
|
|
||||||
- Add WAMR-IDE vscode extension to the Visual Studio Marketplace
|
- Add WAMR-IDE vscode extension to the Visual Studio Marketplace
|
||||||
- Refine Windows thread waiting list operations
|
- Refine Windows thread waiting list operations
|
||||||
- Improve wasm-c-api instantiation-time linking
|
- Improve wasm-c-api instantiation-time linking
|
||||||
|
@ -1032,6 +1305,7 @@
|
||||||
- Refine aot compiler check suspend_flags and fix issue of multi-tier jit
|
- Refine aot compiler check suspend_flags and fix issue of multi-tier jit
|
||||||
|
|
||||||
### Others
|
### Others
|
||||||
|
|
||||||
- Enable XIP in CI daily test
|
- Enable XIP in CI daily test
|
||||||
- Integrate wasi test suite to wamr-test-suites and CI
|
- Integrate wasi test suite to wamr-test-suites and CI
|
||||||
- Add CI for wasi-threads tests
|
- Add CI for wasi-threads tests
|
||||||
|
@ -1046,6 +1320,7 @@
|
||||||
## WAMR-1.1.2
|
## WAMR-1.1.2
|
||||||
|
|
||||||
### Breaking Changes
|
### Breaking Changes
|
||||||
|
|
||||||
- Remove the LLVM MCJIT mode, replace it with LLVM ORC JIT eager mode
|
- Remove the LLVM MCJIT mode, replace it with LLVM ORC JIT eager mode
|
||||||
- Add option to pass user data to the allocator functions of RuntimeInitArgs
|
- Add option to pass user data to the allocator functions of RuntimeInitArgs
|
||||||
- Change how iwasm returns:
|
- Change how iwasm returns:
|
||||||
|
@ -1055,6 +1330,7 @@
|
||||||
- Enable bulk memory by default
|
- Enable bulk memory by default
|
||||||
|
|
||||||
### New Features
|
### New Features
|
||||||
|
|
||||||
- Add control for the native stack check with hardware trap
|
- Add control for the native stack check with hardware trap
|
||||||
- Add memory watchpoint support to debugger
|
- Add memory watchpoint support to debugger
|
||||||
- Add wasm_module_obtain() to clone wasm_module_t
|
- Add wasm_module_obtain() to clone wasm_module_t
|
||||||
|
@ -1062,6 +1338,7 @@
|
||||||
- esp-idf: Add socket support for esp-idf platform
|
- esp-idf: Add socket support for esp-idf platform
|
||||||
|
|
||||||
### Bug Fixes
|
### Bug Fixes
|
||||||
|
|
||||||
- Fix XIP issue caused by rem_s on RISC-V
|
- Fix XIP issue caused by rem_s on RISC-V
|
||||||
- Fix XIP issues of fp to int cast and int rem/div
|
- Fix XIP issues of fp to int cast and int rem/div
|
||||||
- Fix missing float cmp for XIP
|
- Fix missing float cmp for XIP
|
||||||
|
@ -1081,6 +1358,7 @@
|
||||||
- Fix XIP issue of handling 64-bit const in 32-bit target
|
- Fix XIP issue of handling 64-bit const in 32-bit target
|
||||||
|
|
||||||
### Enhancements
|
### Enhancements
|
||||||
|
|
||||||
- Refactor the layout of interpreter and AOT module instance
|
- Refactor the layout of interpreter and AOT module instance
|
||||||
- Refactor LLVM JIT: remove mcjit and legacy pass manager, upgrade to ORCv2 JIT
|
- Refactor LLVM JIT: remove mcjit and legacy pass manager, upgrade to ORCv2 JIT
|
||||||
- Refine Fast JIT call indirect and call native process
|
- Refine Fast JIT call indirect and call native process
|
||||||
|
@ -1097,7 +1375,7 @@
|
||||||
- Refine the stack frame size check in interpreter
|
- Refine the stack frame size check in interpreter
|
||||||
- Enlarge the default wasm operand stack size to 64KB
|
- Enlarge the default wasm operand stack size to 64KB
|
||||||
- Use cmake POSITION_INDEPENDENT_CODE instead of hardcoding -pie -fPIE
|
- Use cmake POSITION_INDEPENDENT_CODE instead of hardcoding -pie -fPIE
|
||||||
- Implement R_ARM_THM_MOVT_[ABS|REPL] for thumb
|
- Implement R*ARM_THM_MOVT*[ABS|REPL] for thumb
|
||||||
- Suppress the warnings when building with GCC11
|
- Suppress the warnings when building with GCC11
|
||||||
- samples/native-lib: Add a bit more complicated example
|
- samples/native-lib: Add a bit more complicated example
|
||||||
- Add mutex initializer for wasm-c-api engine operations
|
- Add mutex initializer for wasm-c-api engine operations
|
||||||
|
@ -1125,6 +1403,7 @@
|
||||||
- Enable wasm cache loading in wasm-c-api
|
- Enable wasm cache loading in wasm-c-api
|
||||||
|
|
||||||
### Others
|
### Others
|
||||||
|
|
||||||
- Add CIs to release new version and publish binary files
|
- Add CIs to release new version and publish binary files
|
||||||
- Add more compilation groups of fast jit into CI
|
- Add more compilation groups of fast jit into CI
|
||||||
- Enable spec test on nuttx and daily run it
|
- Enable spec test on nuttx and daily run it
|
||||||
|
@ -1273,5 +1552,3 @@
|
||||||
### Others
|
### Others
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -117,12 +117,6 @@ def build_llvm(llvm_dir, platform, backends, projects, use_clang=False, extra_fl
|
||||||
LLVM_EXTRA_COMPILE_OPTIONS["arc"]
|
LLVM_EXTRA_COMPILE_OPTIONS["arc"]
|
||||||
)
|
)
|
||||||
|
|
||||||
if platform != "Xtensa" and "Xtensa" in backends:
|
|
||||||
print(
|
|
||||||
"Currently it's not supported to build Xtensa backend on non-Xtensa platform"
|
|
||||||
)
|
|
||||||
return None
|
|
||||||
|
|
||||||
LLVM_PROJECTS_TO_BUILD = [
|
LLVM_PROJECTS_TO_BUILD = [
|
||||||
'-DLLVM_ENABLE_PROJECTS:STRING="' + ";".join(projects) + '"' if projects else ""
|
'-DLLVM_ENABLE_PROJECTS:STRING="' + ";".join(projects) + '"' if projects else ""
|
||||||
]
|
]
|
||||||
|
@ -300,17 +294,17 @@ def main():
|
||||||
"arc": {
|
"arc": {
|
||||||
"repo": "https://github.com/llvm/llvm-project.git",
|
"repo": "https://github.com/llvm/llvm-project.git",
|
||||||
"repo_ssh": "git@github.com:llvm/llvm-project.git",
|
"repo_ssh": "git@github.com:llvm/llvm-project.git",
|
||||||
"branch": "release/15.x",
|
"branch": "release/18.x",
|
||||||
},
|
},
|
||||||
"xtensa": {
|
"xtensa": {
|
||||||
"repo": "https://github.com/espressif/llvm-project.git",
|
"repo": "https://github.com/espressif/llvm-project.git",
|
||||||
"repo_ssh": "git@github.com:espressif/llvm-project.git",
|
"repo_ssh": "git@github.com:espressif/llvm-project.git",
|
||||||
"branch": "xtensa_release_17.0.1",
|
"branch": "xtensa_release_18.1.2",
|
||||||
},
|
},
|
||||||
"default": {
|
"default": {
|
||||||
"repo": "https://github.com/llvm/llvm-project.git",
|
"repo": "https://github.com/llvm/llvm-project.git",
|
||||||
"repo_ssh": "git@github.com:llvm/llvm-project.git",
|
"repo_ssh": "git@github.com:llvm/llvm-project.git",
|
||||||
"branch": "release/15.x",
|
"branch": "release/18.x",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -131,6 +131,12 @@ else ()
|
||||||
unset (LLVM_AVAILABLE_LIBS)
|
unset (LLVM_AVAILABLE_LIBS)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
# Version
|
||||||
|
include (${WAMR_ROOT_DIR}/build-scripts/version.cmake)
|
||||||
|
|
||||||
|
# Package
|
||||||
|
include (${WAMR_ROOT_DIR}/build-scripts/package.cmake)
|
||||||
|
|
||||||
# Sanitizers
|
# Sanitizers
|
||||||
|
|
||||||
if (NOT DEFINED WAMR_BUILD_SANITIZER)
|
if (NOT DEFINED WAMR_BUILD_SANITIZER)
|
||||||
|
@ -151,6 +157,9 @@ elseif (WAMR_BUILD_SANITIZER STREQUAL "asan")
|
||||||
elseif (WAMR_BUILD_SANITIZER STREQUAL "tsan")
|
elseif (WAMR_BUILD_SANITIZER STREQUAL "tsan")
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -O0 -fno-omit-frame-pointer -fsanitize=thread -fno-sanitize-recover=all" )
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -O0 -fno-omit-frame-pointer -fsanitize=thread -fno-sanitize-recover=all" )
|
||||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=thread")
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=thread")
|
||||||
|
elseif (WAMR_BUILD_SANITIZER STREQUAL "posan")
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -O0 -fno-omit-frame-pointer -fsanitize=pointer-overflow -fno-sanitize-recover=all" )
|
||||||
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=pointer-overflow")
|
||||||
elseif (NOT (WAMR_BUILD_SANITIZER STREQUAL "") )
|
elseif (NOT (WAMR_BUILD_SANITIZER STREQUAL "") )
|
||||||
message(SEND_ERROR "Unsupported sanitizer: ${WAMR_BUILD_SANITIZER}")
|
message(SEND_ERROR "Unsupported sanitizer: ${WAMR_BUILD_SANITIZER}")
|
||||||
endif()
|
endif()
|
||||||
|
@ -167,16 +176,63 @@ if (NOT DEFINED WAMR_BUILD_SHRUNK_MEMORY)
|
||||||
set (WAMR_BUILD_SHRUNK_MEMORY 1)
|
set (WAMR_BUILD_SHRUNK_MEMORY 1)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
########################################
|
||||||
|
# Default values
|
||||||
|
########################################
|
||||||
|
if (NOT DEFINED WAMR_BUILD_BULK_MEMORY)
|
||||||
|
set (WAMR_BUILD_BULK_MEMORY 1)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (NOT DEFINED WAMR_BUILD_EXCE_HANDLING)
|
||||||
|
set (WAMR_BUILD_EXCE_HANDLING 0)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (NOT DEFINED WAMR_BUILD_GC)
|
||||||
|
set (WAMR_BUILD_GC 0)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (NOT DEFINED WAMR_BUILD_MEMORY64)
|
||||||
|
set (WAMR_BUILD_MEMORY64 0)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (NOT DEFINED WAMR_BUILD_MULTI_MEMORY)
|
||||||
|
set (WAMR_BUILD_MULTI_MEMORY 0)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (NOT DEFINED WAMR_BUILD_SHARED_MEMORY)
|
||||||
|
set(WAMR_BUILD_SHARED_MEMORY 0)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (NOT DEFINED WAMR_BUILD_STRINGREF)
|
||||||
|
set(WAMR_BUILD_STRINGREF 0)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (NOT DEFINED WAMR_BUILD_TAIL_CALL)
|
||||||
|
set (WAMR_BUILD_TAIL_CALL 0)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
########################################
|
||||||
|
# Compilation options to marco
|
||||||
########################################
|
########################################
|
||||||
|
|
||||||
message ("-- Build Configurations:")
|
message ("-- Build Configurations:")
|
||||||
message (" Build as target ${WAMR_BUILD_TARGET}")
|
message (" Build as target ${WAMR_BUILD_TARGET}")
|
||||||
|
message (" Build for platform ${WAMR_BUILD_PLATFORM}")
|
||||||
message (" CMAKE_BUILD_TYPE " ${CMAKE_BUILD_TYPE})
|
message (" CMAKE_BUILD_TYPE " ${CMAKE_BUILD_TYPE})
|
||||||
|
message (" BUILD_SHARED_LIBS " ${BUILD_SHARED_LIBS})
|
||||||
|
################## running mode ##################
|
||||||
if (WAMR_BUILD_INTERP EQUAL 1)
|
if (WAMR_BUILD_INTERP EQUAL 1)
|
||||||
message (" WAMR Interpreter enabled")
|
message (" WAMR Interpreter enabled")
|
||||||
else ()
|
else ()
|
||||||
message (" WAMR Interpreter disabled")
|
message (" WAMR Interpreter disabled")
|
||||||
endif ()
|
endif ()
|
||||||
|
if ((WAMR_BUILD_FAST_INTERP EQUAL 1) AND (WAMR_BUILD_INTERP EQUAL 1))
|
||||||
|
add_definitions (-DWASM_ENABLE_FAST_INTERP=1)
|
||||||
|
message (" Fast interpreter enabled")
|
||||||
|
else ()
|
||||||
|
add_definitions (-DWASM_ENABLE_FAST_INTERP=0)
|
||||||
|
message (" Fast interpreter disabled")
|
||||||
|
endif ()
|
||||||
if (WAMR_BUILD_AOT EQUAL 1)
|
if (WAMR_BUILD_AOT EQUAL 1)
|
||||||
message (" WAMR AOT enabled")
|
message (" WAMR AOT enabled")
|
||||||
else ()
|
else ()
|
||||||
|
@ -207,32 +263,7 @@ if (WAMR_BUILD_FAST_JIT EQUAL 1 AND WAMR_BUILD_JIT EQUAL 1
|
||||||
AND WAMR_BUILD_LAZY_JIT EQUAL 1)
|
AND WAMR_BUILD_LAZY_JIT EQUAL 1)
|
||||||
message (" Multi-tier JIT enabled")
|
message (" Multi-tier JIT enabled")
|
||||||
endif ()
|
endif ()
|
||||||
if (WAMR_BUILD_LIBC_BUILTIN EQUAL 1)
|
################## test modes ##################
|
||||||
message (" Libc builtin enabled")
|
|
||||||
else ()
|
|
||||||
message (" Libc builtin disabled")
|
|
||||||
endif ()
|
|
||||||
if (WAMR_BUILD_LIBC_UVWASI EQUAL 1)
|
|
||||||
message (" Libc WASI enabled with uvwasi implementation")
|
|
||||||
elseif (WAMR_BUILD_LIBC_WASI EQUAL 1)
|
|
||||||
message (" Libc WASI enabled")
|
|
||||||
else ()
|
|
||||||
message (" Libc WASI disabled")
|
|
||||||
endif ()
|
|
||||||
if ((WAMR_BUILD_FAST_INTERP EQUAL 1) AND (WAMR_BUILD_INTERP EQUAL 1))
|
|
||||||
add_definitions (-DWASM_ENABLE_FAST_INTERP=1)
|
|
||||||
message (" Fast interpreter enabled")
|
|
||||||
else ()
|
|
||||||
add_definitions (-DWASM_ENABLE_FAST_INTERP=0)
|
|
||||||
message (" Fast interpreter disabled")
|
|
||||||
endif ()
|
|
||||||
if (WAMR_BUILD_MULTI_MODULE EQUAL 1)
|
|
||||||
add_definitions (-DWASM_ENABLE_MULTI_MODULE=1)
|
|
||||||
message (" Multiple modules enabled")
|
|
||||||
else ()
|
|
||||||
add_definitions (-DWASM_ENABLE_MULTI_MODULE=0)
|
|
||||||
message (" Multiple modules disabled")
|
|
||||||
endif ()
|
|
||||||
if (WAMR_BUILD_SPEC_TEST EQUAL 1)
|
if (WAMR_BUILD_SPEC_TEST EQUAL 1)
|
||||||
add_definitions (-DWASM_ENABLE_SPEC_TEST=1)
|
add_definitions (-DWASM_ENABLE_SPEC_TEST=1)
|
||||||
message (" spec test compatible mode is on")
|
message (" spec test compatible mode is on")
|
||||||
|
@ -241,41 +272,23 @@ if (WAMR_BUILD_WASI_TEST EQUAL 1)
|
||||||
add_definitions (-DWASM_ENABLE_WASI_TEST=1)
|
add_definitions (-DWASM_ENABLE_WASI_TEST=1)
|
||||||
message (" wasi test compatible mode is on")
|
message (" wasi test compatible mode is on")
|
||||||
endif ()
|
endif ()
|
||||||
if (NOT DEFINED WAMR_BUILD_BULK_MEMORY)
|
################## native ##################
|
||||||
# Enable bulk memory by default
|
if (WAMR_BUILD_LIBC_BUILTIN EQUAL 1)
|
||||||
set (WAMR_BUILD_BULK_MEMORY 1)
|
message (" Libc builtin enabled")
|
||||||
endif ()
|
|
||||||
if (WAMR_BUILD_BULK_MEMORY EQUAL 1)
|
|
||||||
add_definitions (-DWASM_ENABLE_BULK_MEMORY=1)
|
|
||||||
message (" Bulk memory feature enabled")
|
|
||||||
else ()
|
else ()
|
||||||
add_definitions (-DWASM_ENABLE_BULK_MEMORY=0)
|
message (" Libc builtin disabled")
|
||||||
message (" Bulk memory feature disabled")
|
|
||||||
endif ()
|
endif ()
|
||||||
if (WAMR_BUILD_SHARED_MEMORY EQUAL 1)
|
if (WAMR_BUILD_LIBC_UVWASI EQUAL 1)
|
||||||
add_definitions (-DWASM_ENABLE_SHARED_MEMORY=1)
|
message (" Libc WASI enabled with uvwasi implementation\n"
|
||||||
message (" Shared memory enabled")
|
" WANRING:: uvwasi does not currently provide the comprehensive\n"
|
||||||
|
" file system security properties provided by some WASI runtimes.\n"
|
||||||
|
" Full support for secure file system sandboxing may or may not\n"
|
||||||
|
" be implemented in future. In the mean time, DO NOT RELY ON IT\n"
|
||||||
|
" TO RUN UNTRUSTED CODE.")
|
||||||
|
elseif (WAMR_BUILD_LIBC_WASI EQUAL 1)
|
||||||
|
message (" Libc WASI enabled")
|
||||||
else ()
|
else ()
|
||||||
add_definitions (-DWASM_ENABLE_SHARED_MEMORY=0)
|
message (" Libc WASI disabled")
|
||||||
endif ()
|
|
||||||
if (WAMR_BUILD_SHARED_HEAP EQUAL 1)
|
|
||||||
add_definitions (-DWASM_ENABLE_SHARED_HEAP=1)
|
|
||||||
message (" Shared heap enabled")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (WAMR_BUILD_MEMORY64 EQUAL 1)
|
|
||||||
# if native is 32-bit or cross-compiled to 32-bit
|
|
||||||
if (NOT WAMR_BUILD_TARGET MATCHES ".*64.*")
|
|
||||||
message (FATAL_ERROR "-- Memory64 is only available on the 64-bit platform/target")
|
|
||||||
endif()
|
|
||||||
add_definitions (-DWASM_ENABLE_MEMORY64=1)
|
|
||||||
set (WAMR_DISABLE_HW_BOUND_CHECK 1)
|
|
||||||
message (" Memory64 memory enabled")
|
|
||||||
endif ()
|
|
||||||
if (WAMR_BUILD_MULTI_MEMORY EQUAL 1)
|
|
||||||
add_definitions (-DWASM_ENABLE_MULTI_MEMORY=1)
|
|
||||||
message (" Multi memory enabled")
|
|
||||||
set (WAMR_BUILD_DEBUG_INTERP 0)
|
|
||||||
endif ()
|
endif ()
|
||||||
if (WAMR_BUILD_THREAD_MGR EQUAL 1)
|
if (WAMR_BUILD_THREAD_MGR EQUAL 1)
|
||||||
message (" Thread manager enabled")
|
message (" Thread manager enabled")
|
||||||
|
@ -295,6 +308,53 @@ endif ()
|
||||||
if (WAMR_BUILD_LIB_RATS EQUAL 1)
|
if (WAMR_BUILD_LIB_RATS EQUAL 1)
|
||||||
message (" Lib rats enabled")
|
message (" Lib rats enabled")
|
||||||
endif()
|
endif()
|
||||||
|
if ((WAMR_BUILD_LIB_SIMDE EQUAL 1))
|
||||||
|
message (" Lib simde enabled")
|
||||||
|
endif()
|
||||||
|
################## WAMR features ##################
|
||||||
|
if (WAMR_BUILD_MULTI_MODULE EQUAL 1)
|
||||||
|
add_definitions (-DWASM_ENABLE_MULTI_MODULE=1)
|
||||||
|
message (" Multiple modules enabled")
|
||||||
|
else ()
|
||||||
|
add_definitions (-DWASM_ENABLE_MULTI_MODULE=0)
|
||||||
|
message (" Multiple modules disabled")
|
||||||
|
endif ()
|
||||||
|
if (WAMR_BUILD_BULK_MEMORY EQUAL 1)
|
||||||
|
add_definitions (-DWASM_ENABLE_BULK_MEMORY=1)
|
||||||
|
else ()
|
||||||
|
add_definitions (-DWASM_ENABLE_BULK_MEMORY=0)
|
||||||
|
endif ()
|
||||||
|
if (WAMR_BUILD_SHARED_MEMORY EQUAL 1)
|
||||||
|
add_definitions (-DWASM_ENABLE_SHARED_MEMORY=1)
|
||||||
|
message (" Shared memory enabled")
|
||||||
|
else ()
|
||||||
|
add_definitions (-DWASM_ENABLE_SHARED_MEMORY=0)
|
||||||
|
endif ()
|
||||||
|
if (WAMR_BUILD_SHARED_HEAP EQUAL 1)
|
||||||
|
add_definitions (-DWASM_ENABLE_SHARED_HEAP=1)
|
||||||
|
message (" Shared heap enabled")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (WAMR_ENABLE_COPY_CALLSTACK EQUAL 1)
|
||||||
|
add_definitions (-DWAMR_ENABLE_COPY_CALLSTACK=1)
|
||||||
|
message(" Copy callstack enabled")
|
||||||
|
else ()
|
||||||
|
add_definitions (-DWAMR_ENABLE_COPY_CALLSTACK=0)
|
||||||
|
message(" Copy callstack disabled")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (WAMR_BUILD_MEMORY64 EQUAL 1)
|
||||||
|
# if native is 32-bit or cross-compiled to 32-bit
|
||||||
|
if (NOT WAMR_BUILD_TARGET MATCHES ".*64.*")
|
||||||
|
message (FATAL_ERROR "-- Memory64 is only available on the 64-bit platform/target")
|
||||||
|
endif()
|
||||||
|
add_definitions (-DWASM_ENABLE_MEMORY64=1)
|
||||||
|
set (WAMR_DISABLE_HW_BOUND_CHECK 1)
|
||||||
|
endif ()
|
||||||
|
if (WAMR_BUILD_MULTI_MEMORY EQUAL 1)
|
||||||
|
add_definitions (-DWASM_ENABLE_MULTI_MEMORY=1)
|
||||||
|
set (WAMR_BUILD_DEBUG_INTERP 0)
|
||||||
|
endif ()
|
||||||
if (WAMR_BUILD_MINI_LOADER EQUAL 1)
|
if (WAMR_BUILD_MINI_LOADER EQUAL 1)
|
||||||
add_definitions (-DWASM_ENABLE_MINI_LOADER=1)
|
add_definitions (-DWASM_ENABLE_MINI_LOADER=1)
|
||||||
message (" WASM mini loader enabled")
|
message (" WASM mini loader enabled")
|
||||||
|
@ -322,12 +382,14 @@ else ()
|
||||||
message (" Wakeup of blocking operations enabled")
|
message (" Wakeup of blocking operations enabled")
|
||||||
endif ()
|
endif ()
|
||||||
if (WAMR_BUILD_SIMD EQUAL 1)
|
if (WAMR_BUILD_SIMD EQUAL 1)
|
||||||
if (NOT WAMR_BUILD_TARGET MATCHES "RISCV64.*")
|
if (WAMR_BUILD_TARGET MATCHES "RISCV64.*")
|
||||||
add_definitions (-DWASM_ENABLE_SIMD=1)
|
set(SIMD_ENABLED 0)
|
||||||
message (" SIMD enabled")
|
|
||||||
else ()
|
|
||||||
message (" SIMD disabled due to not supported on target RISCV64")
|
message (" SIMD disabled due to not supported on target RISCV64")
|
||||||
|
else()
|
||||||
|
set(SIMD_ENABLED 1)
|
||||||
|
message (" SIMD enabled")
|
||||||
endif ()
|
endif ()
|
||||||
|
add_definitions(-DWASM_ENABLE_SIMD=${SIMD_ENABLED})
|
||||||
endif ()
|
endif ()
|
||||||
if (WAMR_BUILD_AOT_STACK_FRAME EQUAL 1)
|
if (WAMR_BUILD_AOT_STACK_FRAME EQUAL 1)
|
||||||
add_definitions (-DWASM_ENABLE_AOT_STACK_FRAME=1)
|
add_definitions (-DWASM_ENABLE_AOT_STACK_FRAME=1)
|
||||||
|
@ -354,16 +416,11 @@ if (WAMR_BUILD_DUMP_CALL_STACK EQUAL 1)
|
||||||
endif ()
|
endif ()
|
||||||
if (WAMR_BUILD_TAIL_CALL EQUAL 1)
|
if (WAMR_BUILD_TAIL_CALL EQUAL 1)
|
||||||
add_definitions (-DWASM_ENABLE_TAIL_CALL=1)
|
add_definitions (-DWASM_ENABLE_TAIL_CALL=1)
|
||||||
message (" Tail call enabled")
|
|
||||||
endif ()
|
endif ()
|
||||||
if (WAMR_BUILD_REF_TYPES EQUAL 1)
|
if (WAMR_BUILD_REF_TYPES EQUAL 1)
|
||||||
add_definitions (-DWASM_ENABLE_REF_TYPES=1)
|
add_definitions (-DWASM_ENABLE_REF_TYPES=1)
|
||||||
message (" Reference types enabled")
|
|
||||||
else ()
|
|
||||||
message (" Reference types disabled")
|
|
||||||
endif ()
|
endif ()
|
||||||
if (WAMR_BUILD_GC EQUAL 1)
|
if (WAMR_BUILD_GC EQUAL 1)
|
||||||
message (" GC enabled")
|
|
||||||
if (WAMR_TEST_GC EQUAL 1)
|
if (WAMR_TEST_GC EQUAL 1)
|
||||||
message(" GC testing enabled")
|
message(" GC testing enabled")
|
||||||
endif()
|
endif()
|
||||||
|
@ -375,7 +432,6 @@ else ()
|
||||||
message (" GC performance profiling disabled")
|
message (" GC performance profiling disabled")
|
||||||
endif ()
|
endif ()
|
||||||
if (WAMR_BUILD_STRINGREF EQUAL 1)
|
if (WAMR_BUILD_STRINGREF EQUAL 1)
|
||||||
message (" Stringref enabled")
|
|
||||||
if (NOT DEFINED WAMR_STRINGREF_IMPL_SOURCE)
|
if (NOT DEFINED WAMR_STRINGREF_IMPL_SOURCE)
|
||||||
message (" Using WAMR builtin implementation for stringref")
|
message (" Using WAMR builtin implementation for stringref")
|
||||||
else ()
|
else ()
|
||||||
|
@ -611,3 +667,44 @@ else ()
|
||||||
add_definitions (-DWASM_ENABLE_SHRUNK_MEMORY=0)
|
add_definitions (-DWASM_ENABLE_SHRUNK_MEMORY=0)
|
||||||
message (" Shrunk memory disabled")
|
message (" Shrunk memory disabled")
|
||||||
endif()
|
endif()
|
||||||
|
if (WAMR_BUILD_AOT_VALIDATOR EQUAL 1)
|
||||||
|
message (" AOT validator enabled")
|
||||||
|
add_definitions (-DWASM_ENABLE_AOT_VALIDATOR=1)
|
||||||
|
endif ()
|
||||||
|
if (WAMR_BUILD_INSTRUCTION_METERING EQUAL 1)
|
||||||
|
message (" Instruction metering enabled")
|
||||||
|
add_definitions (-DWASM_ENABLE_INSTRUCTION_METERING=1)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
########################################
|
||||||
|
# Show Phase4 Wasm proposals status.
|
||||||
|
########################################
|
||||||
|
|
||||||
|
message (
|
||||||
|
"-- About Wasm Proposals:\n"
|
||||||
|
" Always-on:\n"
|
||||||
|
" \"Multi-value\"\n"
|
||||||
|
" \"Non-trapping float-to-int conversions\"\n"
|
||||||
|
" \"Sign-extension operators\"\n"
|
||||||
|
" \"WebAssembly C and C++ API\"\n"
|
||||||
|
" Configurable. 0 is OFF. 1 is ON:\n"
|
||||||
|
" \"Bulk Memory Operation\" via WAMR_BUILD_BULK_MEMORY: ${WAMR_BUILD_BULK_MEMORY}\n"
|
||||||
|
" \"Fixed-width SIMD\" via WAMR_BUILD_SIMD: ${WAMR_BUILD_SIMD}\n"
|
||||||
|
" \"Garbage collection\" via WAMR_BUILD_GC: ${WAMR_BUILD_GC}\n"
|
||||||
|
" \"Legacy Exception handling\" via WAMR_BUILD_EXCE_HANDLING: ${WAMR_BUILD_EXCE_HANDLING}\n"
|
||||||
|
" \"Memory64\" via WAMR_BUILD_MEMORY64: ${WAMR_BUILD_MEMORY64}\n"
|
||||||
|
" \"Multiple memories\" via WAMR_BUILD_MULTI_MEMORY: ${WAMR_BUILD_MULTI_MEMORY}\n"
|
||||||
|
" \"Reference Types\" via WAMR_BUILD_REF_TYPES: ${WAMR_BUILD_REF_TYPES}\n"
|
||||||
|
" \"Reference-Typed Strings\" via WAMR_BUILD_STRINGREF: ${WAMR_BUILD_STRINGREF}\n"
|
||||||
|
" \"Tail call\" via WAMR_BUILD_TAIL_CALL: ${WAMR_BUILD_TAIL_CALL}\n"
|
||||||
|
" \"Threads\" via WAMR_BUILD_SHARED_MEMORY: ${WAMR_BUILD_SHARED_MEMORY}\n"
|
||||||
|
" \"Typed Function References\" via WAMR_BUILD_GC: ${WAMR_BUILD_GC}\n"
|
||||||
|
" Unsupported (>= Phase4):\n"
|
||||||
|
" \"Branch Hinting\"\n"
|
||||||
|
" \"Custom Annotation Syntax in the Text Format\"\n"
|
||||||
|
" \"Exception handling\"\n"
|
||||||
|
" \"Extended Constant Expressions\"\n"
|
||||||
|
" \"Import/Export of Mutable Globals\"\n"
|
||||||
|
" \"JS String Builtins\"\n"
|
||||||
|
" \"Relaxed SIMD\"\n"
|
||||||
|
)
|
||||||
|
|
|
@ -11,7 +11,7 @@ You can build an ESP-IDF project with wasm-micro-runtime as a component:
|
||||||
- In the newly created project folder edit the `CMakeList.txt`:
|
- In the newly created project folder edit the `CMakeList.txt`:
|
||||||
|
|
||||||
```
|
```
|
||||||
cmake_minimum_required(VERSION 3.5)
|
cmake_minimum_required(VERSION 3.14)
|
||||||
|
|
||||||
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
|
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,11 @@
|
||||||
if (NOT CMAKE_BUILD_EARLY_EXPANSION)
|
if (NOT CMAKE_BUILD_EARLY_EXPANSION)
|
||||||
|
|
||||||
if (CONFIG_IDF_TARGET_ARCH_RISCV)
|
if (CONFIG_IDF_TARGET_ARCH_RISCV)
|
||||||
set (WAMR_BUILD_TARGET "RISCV32")
|
if (CONFIG_IDF_TARGET_ESP32P4)
|
||||||
|
set (WAMR_BUILD_TARGET "RISCV32_ILP32F")
|
||||||
|
else ()
|
||||||
|
set (WAMR_BUILD_TARGET "RISCV32_ILP32")
|
||||||
|
endif ()
|
||||||
elseif (CONFIG_IDF_TARGET_ARCH_XTENSA)
|
elseif (CONFIG_IDF_TARGET_ARCH_XTENSA)
|
||||||
set (WAMR_BUILD_TARGET "XTENSA")
|
set (WAMR_BUILD_TARGET "XTENSA")
|
||||||
else ()
|
else ()
|
||||||
|
@ -89,7 +93,11 @@ idf_component_register(SRCS ${srcs}
|
||||||
target_compile_options(${COMPONENT_LIB} PRIVATE "-Wno-format")
|
target_compile_options(${COMPONENT_LIB} PRIVATE "-Wno-format")
|
||||||
|
|
||||||
if (CONFIG_IDF_TARGET_ARCH_RISCV)
|
if (CONFIG_IDF_TARGET_ARCH_RISCV)
|
||||||
|
if (CONFIG_IDF_TARGET_ESP32P4)
|
||||||
|
target_compile_definitions(${COMPONENT_LIB} PUBLIC -DBUILD_TARGET_RISCV32_ILP32F=1)
|
||||||
|
else ()
|
||||||
target_compile_definitions(${COMPONENT_LIB} PUBLIC -DBUILD_TARGET_RISCV32_ILP32=1)
|
target_compile_definitions(${COMPONENT_LIB} PUBLIC -DBUILD_TARGET_RISCV32_ILP32=1)
|
||||||
|
endif ()
|
||||||
elseif (CONFIG_IDF_TARGET_ARCH_XTENSA)
|
elseif (CONFIG_IDF_TARGET_ARCH_XTENSA)
|
||||||
target_compile_definitions(${COMPONENT_LIB} PUBLIC -DBUILD_TARGET_XTENSA=1)
|
target_compile_definitions(${COMPONENT_LIB} PUBLIC -DBUILD_TARGET_XTENSA=1)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
6
build-scripts/iwasmConfig.cmake.in
Normal file
6
build-scripts/iwasmConfig.cmake.in
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
# Copyright (C) 2019 Intel Corporation. All rights reserved.
|
||||||
|
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||||
|
|
||||||
|
@PACKAGE_INIT@
|
||||||
|
|
||||||
|
include("${CMAKE_CURRENT_LIST_DIR}/iwasmTargets.cmake")
|
30
build-scripts/package.cmake
Normal file
30
build-scripts/package.cmake
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
# Copyright (C) 2019 Intel Corporation. All rights reserved.
|
||||||
|
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||||
|
|
||||||
|
set(_WAMR_BUILD_SCRIPTS_DIR "${CMAKE_CURRENT_LIST_DIR}")
|
||||||
|
|
||||||
|
function(install_iwasm_package)
|
||||||
|
install (EXPORT iwasmTargets
|
||||||
|
FILE iwasmTargets.cmake
|
||||||
|
NAMESPACE iwasm::
|
||||||
|
DESTINATION lib/cmake/iwasm
|
||||||
|
)
|
||||||
|
|
||||||
|
include (CMakePackageConfigHelpers)
|
||||||
|
configure_package_config_file (${_WAMR_BUILD_SCRIPTS_DIR}/iwasmConfig.cmake.in
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/iwasmConfig.cmake"
|
||||||
|
INSTALL_DESTINATION lib/cmake/iwasm
|
||||||
|
)
|
||||||
|
|
||||||
|
write_basic_package_version_file(
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/iwasmConfigVersion.cmake"
|
||||||
|
VERSION ${WAMR_VERSION_MAJOR}.${WAMR_VERSION_MINOR}.${WAMR_VERSION_PATCH}
|
||||||
|
COMPATIBILITY SameMajorVersion
|
||||||
|
)
|
||||||
|
|
||||||
|
install (FILES
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/iwasmConfig.cmake"
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/iwasmConfigVersion.cmake"
|
||||||
|
DESTINATION lib/cmake/iwasm
|
||||||
|
)
|
||||||
|
endfunction()
|
|
@ -14,7 +14,7 @@ if (NOT DEFINED DEPS_DIR)
|
||||||
set (DEPS_DIR ${WAMR_ROOT_DIR}/core/deps)
|
set (DEPS_DIR ${WAMR_ROOT_DIR}/core/deps)
|
||||||
endif ()
|
endif ()
|
||||||
if (NOT DEFINED SHARED_PLATFORM_CONFIG)
|
if (NOT DEFINED SHARED_PLATFORM_CONFIG)
|
||||||
# CMake file for platform configuration. The PLATFORM_SHARED_SOURCE varable
|
# CMake file for platform configuration. The PLATFORM_SHARED_SOURCE variable
|
||||||
# should point to a list of platform-specfic source files to compile.
|
# should point to a list of platform-specfic source files to compile.
|
||||||
set (SHARED_PLATFORM_CONFIG ${SHARED_DIR}/platform/${WAMR_BUILD_PLATFORM}/shared_platform.cmake)
|
set (SHARED_PLATFORM_CONFIG ${SHARED_DIR}/platform/${WAMR_BUILD_PLATFORM}/shared_platform.cmake)
|
||||||
endif ()
|
endif ()
|
||||||
|
@ -168,6 +168,18 @@ endif ()
|
||||||
# include the build config template file
|
# include the build config template file
|
||||||
include (${CMAKE_CURRENT_LIST_DIR}/config_common.cmake)
|
include (${CMAKE_CURRENT_LIST_DIR}/config_common.cmake)
|
||||||
|
|
||||||
|
if (WAMR_BUILD_SIMD EQUAL 1 AND WAMR_BUILD_FAST_INTERP EQUAL 1)
|
||||||
|
if (WAMR_BUILD_PLATFORM STREQUAL "windows")
|
||||||
|
message(STATUS "SIMDe doesnt support platform " ${WAMR_BUILD_PLATFORM})
|
||||||
|
set(WAMR_BUILD_SIMDE 0)
|
||||||
|
else()
|
||||||
|
include (${IWASM_DIR}/libraries/simde/simde.cmake)
|
||||||
|
set (WAMR_BUILD_SIMDE 1)
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
set(WAMR_BUILD_SIMDE 0)
|
||||||
|
endif ()
|
||||||
|
|
||||||
include_directories (${IWASM_DIR}/include)
|
include_directories (${IWASM_DIR}/include)
|
||||||
|
|
||||||
file (GLOB header
|
file (GLOB header
|
||||||
|
@ -181,6 +193,13 @@ else()
|
||||||
enable_language (ASM)
|
enable_language (ASM)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# it will expose the runtime APIs.
|
||||||
|
# you'll use the following command to check the exported APIs
|
||||||
|
# dumpbin.exe /EXPORTS xxx
|
||||||
|
if (MSVC)
|
||||||
|
add_compile_definitions(COMPILING_WASM_RUNTIME_API=1)
|
||||||
|
endif ()
|
||||||
|
|
||||||
include (${SHARED_PLATFORM_CONFIG})
|
include (${SHARED_PLATFORM_CONFIG})
|
||||||
include (${SHARED_DIR}/mem-alloc/mem_alloc.cmake)
|
include (${SHARED_DIR}/mem-alloc/mem_alloc.cmake)
|
||||||
include (${IWASM_DIR}/common/iwasm_common.cmake)
|
include (${IWASM_DIR}/common/iwasm_common.cmake)
|
||||||
|
|
28
build-scripts/version.cmake
Normal file
28
build-scripts/version.cmake
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
# Copyright (C) 2019 Intel Corporation. All rights reserved.
|
||||||
|
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||||
|
|
||||||
|
if(NOT WAMR_ROOT_DIR)
|
||||||
|
# if from wamr-compiler
|
||||||
|
set(WAMR_ROOT_DIR ${CMAKE_CURRENT_LIST_DIR}/..)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(WAMR_VERSION_MAJOR 2)
|
||||||
|
set(WAMR_VERSION_MINOR 3)
|
||||||
|
set(WAMR_VERSION_PATCH 1)
|
||||||
|
|
||||||
|
message("-- WAMR version: ${WAMR_VERSION_MAJOR}.${WAMR_VERSION_MINOR}.${WAMR_VERSION_PATCH}")
|
||||||
|
|
||||||
|
# Configure the version header file
|
||||||
|
configure_file(
|
||||||
|
${WAMR_ROOT_DIR}/core/version.h.in
|
||||||
|
${WAMR_ROOT_DIR}/core/version.h
|
||||||
|
)
|
||||||
|
|
||||||
|
# Set the library version and SOVERSION
|
||||||
|
function(set_version_info target)
|
||||||
|
set_target_properties(${target}
|
||||||
|
PROPERTIES
|
||||||
|
VERSION ${WAMR_VERSION_MAJOR}.${WAMR_VERSION_MINOR}.${WAMR_VERSION_PATCH}
|
||||||
|
SOVERSION ${WAMR_VERSION_MAJOR}
|
||||||
|
)
|
||||||
|
endfunction()
|
|
@ -13,8 +13,8 @@ import subprocess
|
||||||
import sys
|
import sys
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
CLANG_FORMAT_CMD = "clang-format-12"
|
CLANG_FORMAT_CMD = "clang-format-14"
|
||||||
GIT_CLANG_FORMAT_CMD = "git-clang-format-12"
|
GIT_CLANG_FORMAT_CMD = "git-clang-format-14"
|
||||||
|
|
||||||
# glob style patterns
|
# glob style patterns
|
||||||
EXCLUDE_PATHS = [
|
EXCLUDE_PATHS = [
|
||||||
|
@ -32,7 +32,7 @@ EXCLUDE_PATHS = [
|
||||||
"**/tests/wamr-test-suites/workspace/*",
|
"**/tests/wamr-test-suites/workspace/*",
|
||||||
]
|
]
|
||||||
|
|
||||||
C_SUFFIXES = [".c", ".cpp", ".h"]
|
C_SUFFIXES = [".c", ".cc", ".cpp", ".h"]
|
||||||
INVALID_DIR_NAME_SEGMENT = r"([a-zA-Z0-9]+\_[a-zA-Z0-9]+)"
|
INVALID_DIR_NAME_SEGMENT = r"([a-zA-Z0-9]+\_[a-zA-Z0-9]+)"
|
||||||
INVALID_FILE_NAME_SEGMENT = r"([a-zA-Z0-9]+\-[a-zA-Z0-9]+)"
|
INVALID_FILE_NAME_SEGMENT = r"([a-zA-Z0-9]+\-[a-zA-Z0-9]+)"
|
||||||
|
|
||||||
|
@ -93,20 +93,29 @@ def run_clang_format(file_path: Path, root: Path) -> bool:
|
||||||
|
|
||||||
def run_clang_format_diff(root: Path, commits: str) -> bool:
|
def run_clang_format_diff(root: Path, commits: str) -> bool:
|
||||||
"""
|
"""
|
||||||
Use `clang-format-12` or `git-clang-format-12` to check code format of
|
Use `clang-format-14` or `git-clang-format-14` to check code format of
|
||||||
the PR, with a commit range specified. It is required to format the
|
the PR, with a commit range specified. It is required to format the
|
||||||
code before committing the PR, or it might fail to pass the CI check:
|
code before committing the PR, or it might fail to pass the CI check:
|
||||||
|
|
||||||
1. Install clang-format-12.0.0
|
1. Install clang-format-14.0.0
|
||||||
Normally we can install it by `sudo apt-get install clang-format-12`,
|
|
||||||
or download the `clang+llvm-12.0.0-xxx-tar.xz` package from
|
You can download the package from
|
||||||
https://github.com/llvm/llvm-project/releases/tag/llvmorg-12.0.0
|
https://github.com/llvm/llvm-project/releases
|
||||||
and install it
|
and install it.
|
||||||
|
|
||||||
|
For Debian/Ubuntu, we can probably use
|
||||||
|
`sudo apt-get install clang-format-14`.
|
||||||
|
|
||||||
|
Homebrew has it as a part of llvm@14.
|
||||||
|
```shell
|
||||||
|
brew install llvm@14
|
||||||
|
/usr/local/opt/llvm@14/bin/clang-format
|
||||||
|
```
|
||||||
|
|
||||||
2. Format the C/C++ source file
|
2. Format the C/C++ source file
|
||||||
``` shell
|
``` shell
|
||||||
cd path/to/wamr/root
|
cd path/to/wamr/root
|
||||||
clang-format-12 --style file -i path/to/file
|
clang-format-14 --style file -i path/to/file
|
||||||
```
|
```
|
||||||
|
|
||||||
The code wrapped by `/* clang-format off */` and `/* clang-format on */`
|
The code wrapped by `/* clang-format off */` and `/* clang-format on */`
|
||||||
|
@ -145,7 +154,7 @@ def run_clang_format_diff(root: Path, commits: str) -> bool:
|
||||||
found = False
|
found = False
|
||||||
for summary in [x for x in diff_content if x.startswith("diff --git")]:
|
for summary in [x for x in diff_content if x.startswith("diff --git")]:
|
||||||
# b/path/to/file -> path/to/file
|
# b/path/to/file -> path/to/file
|
||||||
with_invalid_format = re.split("\s+", summary)[-1][2:]
|
with_invalid_format = re.split(r"\s+", summary)[-1][2:]
|
||||||
if not is_excluded(with_invalid_format):
|
if not is_excluded(with_invalid_format):
|
||||||
print(f"--- {with_invalid_format} failed on code style checking.")
|
print(f"--- {with_invalid_format} failed on code style checking.")
|
||||||
found = True
|
found = True
|
||||||
|
|
|
@ -193,6 +193,10 @@
|
||||||
#error "Heap aux stack allocation must be enabled for WASI threads"
|
#error "Heap aux stack allocation must be enabled for WASI threads"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef WAMR_ENABLE_COPY_CALLSTACK
|
||||||
|
#define WAMR_ENABLE_COPY_CALLSTACK 0
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef WASM_ENABLE_BASE_LIB
|
#ifndef WASM_ENABLE_BASE_LIB
|
||||||
#define WASM_ENABLE_BASE_LIB 0
|
#define WASM_ENABLE_BASE_LIB 0
|
||||||
#endif
|
#endif
|
||||||
|
@ -318,6 +322,12 @@
|
||||||
#define WASM_ENABLE_SIMD 0
|
#define WASM_ENABLE_SIMD 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Disable SIMDe (used in the fast interpreter for SIMD opcodes)
|
||||||
|
unless used elsewhere */
|
||||||
|
#ifndef WASM_ENABLE_SIMDE
|
||||||
|
#define WASM_ENABLE_SIMDE 0
|
||||||
|
#endif
|
||||||
|
|
||||||
/* GC performance profiling */
|
/* GC performance profiling */
|
||||||
#ifndef WASM_ENABLE_GC_PERF_PROFILING
|
#ifndef WASM_ENABLE_GC_PERF_PROFILING
|
||||||
#define WASM_ENABLE_GC_PERF_PROFILING 0
|
#define WASM_ENABLE_GC_PERF_PROFILING 0
|
||||||
|
@ -702,4 +712,12 @@
|
||||||
#define WASM_ENABLE_SHRUNK_MEMORY 1
|
#define WASM_ENABLE_SHRUNK_MEMORY 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef WASM_ENABLE_AOT_VALIDATOR
|
||||||
|
#define WASM_ENABLE_AOT_VALIDATOR 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef WASM_ENABLE_INSTRUCTION_METERING
|
||||||
|
#define WASM_ENABLE_INSTRUCTION_METERING 0
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* end of _CONFIG_H_ */
|
#endif /* end of _CONFIG_H_ */
|
||||||
|
|
|
@ -194,7 +194,7 @@ aot_intrinsic_clz_i32(uint32 type)
|
||||||
return num;
|
return num;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32
|
uint64
|
||||||
aot_intrinsic_clz_i64(uint64 type)
|
aot_intrinsic_clz_i64(uint64 type)
|
||||||
{
|
{
|
||||||
uint32 num = 0;
|
uint32 num = 0;
|
||||||
|
@ -220,7 +220,7 @@ aot_intrinsic_ctz_i32(uint32 type)
|
||||||
return num;
|
return num;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32
|
uint64
|
||||||
aot_intrinsic_ctz_i64(uint64 type)
|
aot_intrinsic_ctz_i64(uint64 type)
|
||||||
{
|
{
|
||||||
uint32 num = 0;
|
uint32 num = 0;
|
||||||
|
@ -244,7 +244,7 @@ aot_intrinsic_popcnt_i32(uint32 u)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32
|
uint64
|
||||||
aot_intrinsic_popcnt_i64(uint64 u)
|
aot_intrinsic_popcnt_i64(uint64 u)
|
||||||
{
|
{
|
||||||
uint32 ret = 0;
|
uint32 ret = 0;
|
||||||
|
@ -485,6 +485,30 @@ aot_intrinsic_i64_bit_and(uint64 l, uint64 r)
|
||||||
return l & r;
|
return l & r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint64
|
||||||
|
aot_intrinsic_i64_mul(uint64 l, uint64 r)
|
||||||
|
{
|
||||||
|
return l * r;
|
||||||
|
}
|
||||||
|
|
||||||
|
uint64
|
||||||
|
aot_intrinsic_i64_shl(uint64 l, uint64 r)
|
||||||
|
{
|
||||||
|
return l << r;
|
||||||
|
}
|
||||||
|
|
||||||
|
uint64
|
||||||
|
aot_intrinsic_i64_shr_s(uint64 l, uint64 r)
|
||||||
|
{
|
||||||
|
return (int64)l >> r;
|
||||||
|
}
|
||||||
|
|
||||||
|
uint64
|
||||||
|
aot_intrinsic_i64_shr_u(uint64 l, uint64 r)
|
||||||
|
{
|
||||||
|
return l >> r;
|
||||||
|
}
|
||||||
|
|
||||||
#if WASM_ENABLE_WAMR_COMPILER != 0 || WASM_ENABLE_JIT != 0
|
#if WASM_ENABLE_WAMR_COMPILER != 0 || WASM_ENABLE_JIT != 0
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
@ -561,6 +585,10 @@ static const aot_intrinsic g_intrinsic_mapping[] = {
|
||||||
{ "i64.rem_u", "aot_intrinsic_i64_rem_u", AOT_INTRINSIC_FLAG_I64_REM_U},
|
{ "i64.rem_u", "aot_intrinsic_i64_rem_u", AOT_INTRINSIC_FLAG_I64_REM_U},
|
||||||
{ "i64.or", "aot_intrinsic_i64_bit_or", AOT_INTRINSIC_FLAG_I64_BIT_OR},
|
{ "i64.or", "aot_intrinsic_i64_bit_or", AOT_INTRINSIC_FLAG_I64_BIT_OR},
|
||||||
{ "i64.and", "aot_intrinsic_i64_bit_and", AOT_INTRINSIC_FLAG_I64_BIT_AND},
|
{ "i64.and", "aot_intrinsic_i64_bit_and", AOT_INTRINSIC_FLAG_I64_BIT_AND},
|
||||||
|
{ "i64.mul", "aot_intrinsic_i64_mul", AOT_INTRINSIC_FLAG_I64_MUL},
|
||||||
|
{ "i64.shl", "aot_intrinsic_i64_shl", AOT_INTRINSIC_FLAG_I64_SHL},
|
||||||
|
{ "i64.shr_s", "aot_intrinsic_i64_shr_s", AOT_INTRINSIC_FLAG_I64_SHR_S},
|
||||||
|
{ "i64.shr_u", "aot_intrinsic_i64_shr_u", AOT_INTRINSIC_FLAG_I64_SHR_U},
|
||||||
};
|
};
|
||||||
/* clang-format on */
|
/* clang-format on */
|
||||||
|
|
||||||
|
@ -601,6 +629,10 @@ add_i64_common_intrinsics(AOTCompContext *comp_ctx)
|
||||||
add_intrinsic_capability(comp_ctx, AOT_INTRINSIC_FLAG_I64_REM_U);
|
add_intrinsic_capability(comp_ctx, AOT_INTRINSIC_FLAG_I64_REM_U);
|
||||||
add_intrinsic_capability(comp_ctx, AOT_INTRINSIC_FLAG_I64_BIT_OR);
|
add_intrinsic_capability(comp_ctx, AOT_INTRINSIC_FLAG_I64_BIT_OR);
|
||||||
add_intrinsic_capability(comp_ctx, AOT_INTRINSIC_FLAG_I64_BIT_AND);
|
add_intrinsic_capability(comp_ctx, AOT_INTRINSIC_FLAG_I64_BIT_AND);
|
||||||
|
add_intrinsic_capability(comp_ctx, AOT_INTRINSIC_FLAG_I64_MUL);
|
||||||
|
add_intrinsic_capability(comp_ctx, AOT_INTRINSIC_FLAG_I64_SHL);
|
||||||
|
add_intrinsic_capability(comp_ctx, AOT_INTRINSIC_FLAG_I64_SHR_S);
|
||||||
|
add_intrinsic_capability(comp_ctx, AOT_INTRINSIC_FLAG_I64_SHR_U);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -866,6 +898,17 @@ aot_intrinsic_fill_capability_flags(AOTCompContext *comp_ctx)
|
||||||
if (!strncmp(comp_ctx->target_arch, "riscv32", 7)) {
|
if (!strncmp(comp_ctx->target_arch, "riscv32", 7)) {
|
||||||
add_i64_common_intrinsics(comp_ctx);
|
add_i64_common_intrinsics(comp_ctx);
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
|
* LLVM 16 and later expands cttz intrinsic to a table lookup,
|
||||||
|
* which involves some relocations. (unless ZBB is available,
|
||||||
|
* in which case the native instructions are preferred over
|
||||||
|
* the table-based lowering.)
|
||||||
|
* https://reviews.llvm.org/D128911
|
||||||
|
*/
|
||||||
|
#if LLVM_VERSION_MAJOR >= 16
|
||||||
|
add_intrinsic_capability(comp_ctx, AOT_INTRINSIC_FLAG_I32_CTZ);
|
||||||
|
add_intrinsic_capability(comp_ctx, AOT_INTRINSIC_FLAG_I64_CTZ);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
else if (!strncmp(comp_ctx->target_arch, "xtensa", 6)) {
|
else if (!strncmp(comp_ctx->target_arch, "xtensa", 6)) {
|
||||||
/*
|
/*
|
||||||
|
@ -878,9 +921,6 @@ aot_intrinsic_fill_capability_flags(AOTCompContext *comp_ctx)
|
||||||
add_i64_common_intrinsics(comp_ctx);
|
add_i64_common_intrinsics(comp_ctx);
|
||||||
add_common_float_integer_conversion(comp_ctx);
|
add_common_float_integer_conversion(comp_ctx);
|
||||||
add_intrinsic_capability(comp_ctx, AOT_INTRINSIC_FLAG_F32_CONST);
|
add_intrinsic_capability(comp_ctx, AOT_INTRINSIC_FLAG_F32_CONST);
|
||||||
add_intrinsic_capability(comp_ctx, AOT_INTRINSIC_FLAG_F64_CONST);
|
|
||||||
add_intrinsic_capability(comp_ctx, AOT_INTRINSIC_FLAG_I32_CONST);
|
|
||||||
add_intrinsic_capability(comp_ctx, AOT_INTRINSIC_FLAG_I64_CONST);
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -98,6 +98,10 @@ extern "C" {
|
||||||
#define AOT_INTRINSIC_FLAG_I64_REM_U AOT_INTRINSIC_FLAG(1, 31)
|
#define AOT_INTRINSIC_FLAG_I64_REM_U AOT_INTRINSIC_FLAG(1, 31)
|
||||||
#define AOT_INTRINSIC_FLAG_I64_BIT_OR AOT_INTRINSIC_FLAG(1, 32)
|
#define AOT_INTRINSIC_FLAG_I64_BIT_OR AOT_INTRINSIC_FLAG(1, 32)
|
||||||
#define AOT_INTRINSIC_FLAG_I64_BIT_AND AOT_INTRINSIC_FLAG(1, 33)
|
#define AOT_INTRINSIC_FLAG_I64_BIT_AND AOT_INTRINSIC_FLAG(1, 33)
|
||||||
|
#define AOT_INTRINSIC_FLAG_I64_MUL AOT_INTRINSIC_FLAG(1, 34)
|
||||||
|
#define AOT_INTRINSIC_FLAG_I64_SHL AOT_INTRINSIC_FLAG(1, 35)
|
||||||
|
#define AOT_INTRINSIC_FLAG_I64_SHR_S AOT_INTRINSIC_FLAG(1, 36)
|
||||||
|
#define AOT_INTRINSIC_FLAG_I64_SHR_U AOT_INTRINSIC_FLAG(1, 37)
|
||||||
|
|
||||||
/* clang-format on */
|
/* clang-format on */
|
||||||
|
|
||||||
|
@ -182,19 +186,19 @@ aot_intrinsic_fmax_f64(float64 a, float64 b);
|
||||||
uint32
|
uint32
|
||||||
aot_intrinsic_clz_i32(uint32 type);
|
aot_intrinsic_clz_i32(uint32 type);
|
||||||
|
|
||||||
uint32
|
uint64
|
||||||
aot_intrinsic_clz_i64(uint64 type);
|
aot_intrinsic_clz_i64(uint64 type);
|
||||||
|
|
||||||
uint32
|
uint32
|
||||||
aot_intrinsic_ctz_i32(uint32 type);
|
aot_intrinsic_ctz_i32(uint32 type);
|
||||||
|
|
||||||
uint32
|
uint64
|
||||||
aot_intrinsic_ctz_i64(uint64 type);
|
aot_intrinsic_ctz_i64(uint64 type);
|
||||||
|
|
||||||
uint32
|
uint32
|
||||||
aot_intrinsic_popcnt_i32(uint32 u);
|
aot_intrinsic_popcnt_i32(uint32 u);
|
||||||
|
|
||||||
uint32
|
uint64
|
||||||
aot_intrinsic_popcnt_i64(uint64 u);
|
aot_intrinsic_popcnt_i64(uint64 u);
|
||||||
|
|
||||||
float32
|
float32
|
||||||
|
@ -287,6 +291,18 @@ aot_intrinsic_i64_bit_or(uint64 l, uint64 r);
|
||||||
uint64
|
uint64
|
||||||
aot_intrinsic_i64_bit_and(uint64 l, uint64 r);
|
aot_intrinsic_i64_bit_and(uint64 l, uint64 r);
|
||||||
|
|
||||||
|
uint64
|
||||||
|
aot_intrinsic_i64_mul(uint64 l, uint64 r);
|
||||||
|
|
||||||
|
uint64
|
||||||
|
aot_intrinsic_i64_shl(uint64 l, uint64 r);
|
||||||
|
|
||||||
|
uint64
|
||||||
|
aot_intrinsic_i64_shr_s(uint64 l, uint64 r);
|
||||||
|
|
||||||
|
uint64
|
||||||
|
aot_intrinsic_i64_shr_u(uint64 l, uint64 r);
|
||||||
|
|
||||||
#if WASM_ENABLE_WAMR_COMPILER != 0 || WASM_ENABLE_JIT != 0
|
#if WASM_ENABLE_WAMR_COMPILER != 0 || WASM_ENABLE_JIT != 0
|
||||||
const char *
|
const char *
|
||||||
aot_intrinsic_get_symbol(const char *llvm_intrinsic);
|
aot_intrinsic_get_symbol(const char *llvm_intrinsic);
|
||||||
|
|
|
@ -10,6 +10,9 @@
|
||||||
#include "../common/wasm_native.h"
|
#include "../common/wasm_native.h"
|
||||||
#include "../common/wasm_loader_common.h"
|
#include "../common/wasm_loader_common.h"
|
||||||
#include "../compilation/aot.h"
|
#include "../compilation/aot.h"
|
||||||
|
#if WASM_ENABLE_AOT_VALIDATOR != 0
|
||||||
|
#include "aot_validator.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#if WASM_ENABLE_DEBUG_AOT != 0
|
#if WASM_ENABLE_DEBUG_AOT != 0
|
||||||
#include "debug/elf_parser.h"
|
#include "debug/elf_parser.h"
|
||||||
|
@ -314,9 +317,12 @@ loader_mmap(uint32 size, bool prot_exec, char *error_buf, uint32 error_buf_size)
|
||||||
map_flags = MMAP_MAP_32BIT;
|
map_flags = MMAP_MAP_32BIT;
|
||||||
if ((mem = os_mmap(NULL, size, map_prot, map_flags,
|
if ((mem = os_mmap(NULL, size, map_prot, map_flags,
|
||||||
os_get_invalid_handle()))) {
|
os_get_invalid_handle()))) {
|
||||||
/* The mmapped memory must be in the first 2 Gigabytes of the
|
/* Test whether the mmapped memory in the first 2 Gigabytes of the
|
||||||
process address space */
|
process address space */
|
||||||
bh_assert((uintptr_t)mem < INT32_MAX);
|
if ((uintptr_t)mem >= INT32_MAX)
|
||||||
|
LOG_WARNING(
|
||||||
|
"Warning: loader mmap memory address is not in the first 2 "
|
||||||
|
"Gigabytes of the process address space.");
|
||||||
return mem;
|
return mem;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -584,7 +590,8 @@ load_target_info_section(const uint8 *buf, const uint8 *buf_end,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* for backwards compatibility with previous wamrc aot files */
|
/* for backwards compatibility with previous wamrc aot files */
|
||||||
if (!strcmp(target_info.arch, "arm64"))
|
if (!strcmp(target_info.arch, "arm64")
|
||||||
|
|| !strcmp(target_info.arch, "aarch64"))
|
||||||
bh_strcpy_s(target_info.arch, sizeof(target_info.arch), "aarch64v8");
|
bh_strcpy_s(target_info.arch, sizeof(target_info.arch), "aarch64v8");
|
||||||
|
|
||||||
/* Check machine info */
|
/* Check machine info */
|
||||||
|
@ -1106,9 +1113,6 @@ load_memory_info(const uint8 **p_buf, const uint8 *buf_end, AOTModule *module,
|
||||||
const uint8 *buf = *p_buf;
|
const uint8 *buf = *p_buf;
|
||||||
|
|
||||||
read_uint32(buf, buf_end, module->import_memory_count);
|
read_uint32(buf, buf_end, module->import_memory_count);
|
||||||
/* We don't support import_memory_count > 0 currently */
|
|
||||||
if (module->import_memory_count > 0)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
read_uint32(buf, buf_end, module->memory_count);
|
read_uint32(buf, buf_end, module->memory_count);
|
||||||
total_size = sizeof(AOTMemory) * (uint64)module->memory_count;
|
total_size = sizeof(AOTMemory) * (uint64)module->memory_count;
|
||||||
|
@ -1251,6 +1255,7 @@ load_init_expr(const uint8 **p_buf, const uint8 *buf_end, AOTModule *module,
|
||||||
}
|
}
|
||||||
free_if_fail = true;
|
free_if_fail = true;
|
||||||
init_values->count = field_count;
|
init_values->count = field_count;
|
||||||
|
init_values->type_idx = type_idx;
|
||||||
expr->u.data = init_values;
|
expr->u.data = init_values;
|
||||||
|
|
||||||
if (type_idx >= module->type_count) {
|
if (type_idx >= module->type_count) {
|
||||||
|
@ -1710,7 +1715,7 @@ load_types(const uint8 **p_buf, const uint8 *buf_end, AOTModule *module,
|
||||||
read_uint16(buf, buf_end, type_flag);
|
read_uint16(buf, buf_end, type_flag);
|
||||||
|
|
||||||
read_uint8(buf, buf_end, is_equivalence_type);
|
read_uint8(buf, buf_end, is_equivalence_type);
|
||||||
/* If there is an equivalence type, re-use it */
|
/* If there is an equivalence type, reuse it */
|
||||||
if (is_equivalence_type) {
|
if (is_equivalence_type) {
|
||||||
uint8 u8;
|
uint8 u8;
|
||||||
/* padding */
|
/* padding */
|
||||||
|
@ -3184,10 +3189,12 @@ do_text_relocation(AOTModule *module, AOTRelocationGroup *group,
|
||||||
symbol_addr = module->code;
|
symbol_addr = module->code;
|
||||||
}
|
}
|
||||||
else if (!strcmp(symbol, ".data") || !strcmp(symbol, ".sdata")
|
else if (!strcmp(symbol, ".data") || !strcmp(symbol, ".sdata")
|
||||||
|| !strcmp(symbol, ".rdata")
|
|| !strcmp(symbol, ".rdata") || !strcmp(symbol, ".rodata")
|
||||||
|| !strcmp(symbol, ".rodata")
|
|| !strcmp(symbol, ".srodata")
|
||||||
/* ".rodata.cst4/8/16/.." */
|
/* ".rodata.cst4/8/16/.." */
|
||||||
|| !strncmp(symbol, ".rodata.cst", strlen(".rodata.cst"))
|
|| !strncmp(symbol, ".rodata.cst", strlen(".rodata.cst"))
|
||||||
|
/* ".srodata.cst4/8/16/.." */
|
||||||
|
|| !strncmp(symbol, ".srodata.cst", strlen(".srodata.cst"))
|
||||||
/* ".rodata.strn.m" */
|
/* ".rodata.strn.m" */
|
||||||
|| !strncmp(symbol, ".rodata.str", strlen(".rodata.str"))
|
|| !strncmp(symbol, ".rodata.str", strlen(".rodata.str"))
|
||||||
|| !strcmp(symbol, AOT_STACK_SIZES_SECTION_NAME)
|
|| !strcmp(symbol, AOT_STACK_SIZES_SECTION_NAME)
|
||||||
|
@ -4120,6 +4127,18 @@ create_module(char *name, char *error_buf, uint32 error_buf_size)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if WASM_ENABLE_LIBC_WASI != 0
|
||||||
|
#if WASM_ENABLE_UVWASI == 0
|
||||||
|
module->wasi_args.stdio[0] = os_invalid_raw_handle();
|
||||||
|
module->wasi_args.stdio[1] = os_invalid_raw_handle();
|
||||||
|
module->wasi_args.stdio[2] = os_invalid_raw_handle();
|
||||||
|
#else
|
||||||
|
module->wasi_args.stdio[0] = os_get_invalid_handle();
|
||||||
|
module->wasi_args.stdio[1] = os_get_invalid_handle();
|
||||||
|
module->wasi_args.stdio[2] = os_get_invalid_handle();
|
||||||
|
#endif /* WASM_ENABLE_UVWASI == 0 */
|
||||||
|
#endif /* WASM_ENABLE_LIBC_WASI != 0 */
|
||||||
|
|
||||||
return module;
|
return module;
|
||||||
#if WASM_ENABLE_GC != 0
|
#if WASM_ENABLE_GC != 0
|
||||||
fail2:
|
fail2:
|
||||||
|
@ -4403,6 +4422,13 @@ aot_load_from_aot_file(const uint8 *buf, uint32 size, const LoadArgs *args,
|
||||||
os_thread_jit_write_protect_np(true); /* Make memory executable */
|
os_thread_jit_write_protect_np(true); /* Make memory executable */
|
||||||
os_icache_flush(module->code, module->code_size);
|
os_icache_flush(module->code, module->code_size);
|
||||||
|
|
||||||
|
#if WASM_ENABLE_AOT_VALIDATOR != 0
|
||||||
|
if (!aot_module_validate(module, error_buf, error_buf_size)) {
|
||||||
|
aot_unload(module);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
#endif /* WASM_ENABLE_AOT_VALIDATOR != 0 */
|
||||||
|
|
||||||
LOG_VERBOSE("Load module success.\n");
|
LOG_VERBOSE("Load module success.\n");
|
||||||
return module;
|
return module;
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,6 @@
|
||||||
#include "bh_log.h"
|
#include "bh_log.h"
|
||||||
#include "bh_platform.h"
|
#include "bh_platform.h"
|
||||||
|
|
||||||
#if WASM_ENABLE_LINUX_PERF != 0
|
|
||||||
struct func_info {
|
struct func_info {
|
||||||
uint32 idx;
|
uint32 idx;
|
||||||
void *ptr;
|
void *ptr;
|
||||||
|
@ -32,8 +31,15 @@ get_func_size(const AOTModule *module, struct func_info *sorted_func_ptrs,
|
||||||
static int
|
static int
|
||||||
compare_func_ptrs(const void *f1, const void *f2)
|
compare_func_ptrs(const void *f1, const void *f2)
|
||||||
{
|
{
|
||||||
return (intptr_t)((struct func_info *)f1)->ptr
|
uintptr_t ptr1 = (uintptr_t)((struct func_info *)f1)->ptr;
|
||||||
- (intptr_t)((struct func_info *)f2)->ptr;
|
uintptr_t ptr2 = (uintptr_t)((struct func_info *)f2)->ptr;
|
||||||
|
|
||||||
|
if (ptr1 < ptr2)
|
||||||
|
return -1;
|
||||||
|
else if (ptr1 > ptr2)
|
||||||
|
return 1;
|
||||||
|
else
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct func_info *
|
static struct func_info *
|
||||||
|
@ -46,7 +52,7 @@ sort_func_ptrs(const AOTModule *module, char *error_buf, uint32 error_buf_size)
|
||||||
content_len = (uint64)sizeof(struct func_info) * module->func_count;
|
content_len = (uint64)sizeof(struct func_info) * module->func_count;
|
||||||
sorted_func_ptrs = wasm_runtime_malloc(content_len);
|
sorted_func_ptrs = wasm_runtime_malloc(content_len);
|
||||||
if (!sorted_func_ptrs) {
|
if (!sorted_func_ptrs) {
|
||||||
snprintf(error_buf, error_buf_size,
|
(void)snprintf(error_buf, error_buf_size,
|
||||||
"allocate memory failed when creating perf map");
|
"allocate memory failed when creating perf map");
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -78,7 +84,8 @@ aot_create_perf_map(const AOTModule *module, char *error_buf,
|
||||||
if (!sorted_func_ptrs)
|
if (!sorted_func_ptrs)
|
||||||
goto quit;
|
goto quit;
|
||||||
|
|
||||||
snprintf(perf_map_path, sizeof(perf_map_path) - 1, "/tmp/perf-%d.map", pid);
|
(void)snprintf(perf_map_path, sizeof(perf_map_path) - 1, "/tmp/perf-%d.map",
|
||||||
|
pid);
|
||||||
perf_map = fopen(perf_map_path, "a");
|
perf_map = fopen(perf_map_path, "a");
|
||||||
if (!perf_map) {
|
if (!perf_map) {
|
||||||
LOG_WARNING("warning: can't create /tmp/perf-%d.map, because %s", pid,
|
LOG_WARNING("warning: can't create /tmp/perf-%d.map, because %s", pid,
|
||||||
|
@ -89,19 +96,23 @@ aot_create_perf_map(const AOTModule *module, char *error_buf,
|
||||||
const char *module_name = aot_get_module_name((AOTModule *)module);
|
const char *module_name = aot_get_module_name((AOTModule *)module);
|
||||||
for (i = 0; i < module->func_count; i++) {
|
for (i = 0; i < module->func_count; i++) {
|
||||||
memset(perf_map_info, 0, 128);
|
memset(perf_map_info, 0, 128);
|
||||||
if (strlen(module_name) > 0)
|
if (strlen(module_name) > 0) {
|
||||||
snprintf(perf_map_info, 128, "%lx %x [%s]#aot_func#%u\n",
|
(void)snprintf(perf_map_info, 128,
|
||||||
|
"%" PRIxPTR " %x [%s]#aot_func#%u\n",
|
||||||
(uintptr_t)sorted_func_ptrs[i].ptr,
|
(uintptr_t)sorted_func_ptrs[i].ptr,
|
||||||
get_func_size(module, sorted_func_ptrs, i), module_name,
|
get_func_size(module, sorted_func_ptrs, i),
|
||||||
sorted_func_ptrs[i].idx);
|
module_name, sorted_func_ptrs[i].idx);
|
||||||
else
|
}
|
||||||
snprintf(perf_map_info, 128, "%lx %x aot_func#%u\n",
|
else {
|
||||||
|
(void)snprintf(perf_map_info, 128,
|
||||||
|
"%" PRIxPTR " %x aot_func#%u\n",
|
||||||
(uintptr_t)sorted_func_ptrs[i].ptr,
|
(uintptr_t)sorted_func_ptrs[i].ptr,
|
||||||
get_func_size(module, sorted_func_ptrs, i),
|
get_func_size(module, sorted_func_ptrs, i),
|
||||||
sorted_func_ptrs[i].idx);
|
sorted_func_ptrs[i].idx);
|
||||||
|
}
|
||||||
|
|
||||||
/* fwrite() is thread safe */
|
/* fwrite() is thread safe */
|
||||||
fwrite(perf_map_info, 1, strlen(perf_map_info), perf_map);
|
(void)fwrite(perf_map_info, 1, strlen(perf_map_info), perf_map);
|
||||||
}
|
}
|
||||||
|
|
||||||
LOG_VERBOSE("write map information from %s into /tmp/perf-%d.map",
|
LOG_VERBOSE("write map information from %s into /tmp/perf-%d.map",
|
||||||
|
@ -113,8 +124,7 @@ quit:
|
||||||
wasm_runtime_free(sorted_func_ptrs);
|
wasm_runtime_free(sorted_func_ptrs);
|
||||||
|
|
||||||
if (perf_map)
|
if (perf_map)
|
||||||
fclose(perf_map);
|
(void)fclose(perf_map);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
#endif /* WASM_ENABLE_LINUX_PERF != 0 */
|
|
|
@ -122,6 +122,10 @@ typedef struct {
|
||||||
REG_SYM(aot_intrinsic_i64_rem_u), \
|
REG_SYM(aot_intrinsic_i64_rem_u), \
|
||||||
REG_SYM(aot_intrinsic_i64_bit_or), \
|
REG_SYM(aot_intrinsic_i64_bit_or), \
|
||||||
REG_SYM(aot_intrinsic_i64_bit_and), \
|
REG_SYM(aot_intrinsic_i64_bit_and), \
|
||||||
|
REG_SYM(aot_intrinsic_i64_mul), \
|
||||||
|
REG_SYM(aot_intrinsic_i64_shl), \
|
||||||
|
REG_SYM(aot_intrinsic_i64_shr_s), \
|
||||||
|
REG_SYM(aot_intrinsic_i64_shr_u), \
|
||||||
REG_SYM(aot_intrinsic_i32_div_s), \
|
REG_SYM(aot_intrinsic_i32_div_s), \
|
||||||
REG_SYM(aot_intrinsic_i32_div_u), \
|
REG_SYM(aot_intrinsic_i32_div_u), \
|
||||||
REG_SYM(aot_intrinsic_i32_rem_s), \
|
REG_SYM(aot_intrinsic_i32_rem_s), \
|
||||||
|
|
|
@ -2317,13 +2317,6 @@ invoke_native_with_hw_bound_check(WASMExecEnv *exec_env, void *func_ptr,
|
||||||
#endif
|
#endif
|
||||||
bool ret;
|
bool ret;
|
||||||
|
|
||||||
/* Check native stack overflow firstly to ensure we have enough
|
|
||||||
native stack to run the following codes before actually calling
|
|
||||||
the aot function in invokeNative function. */
|
|
||||||
if (!wasm_runtime_detect_native_stack_overflow(exec_env)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!exec_env_tls) {
|
if (!exec_env_tls) {
|
||||||
if (!os_thread_signal_inited()) {
|
if (!os_thread_signal_inited()) {
|
||||||
aot_set_exception(module_inst, "thread signal env not inited");
|
aot_set_exception(module_inst, "thread signal env not inited");
|
||||||
|
@ -2342,6 +2335,13 @@ invoke_native_with_hw_bound_check(WASMExecEnv *exec_env, void *func_ptr,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Check native stack overflow firstly to ensure we have enough
|
||||||
|
native stack to run the following codes before actually calling
|
||||||
|
the aot function in invokeNative function. */
|
||||||
|
if (!wasm_runtime_detect_native_stack_overflow(exec_env)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
wasm_exec_env_push_jmpbuf(exec_env, &jmpbuf_node);
|
wasm_exec_env_push_jmpbuf(exec_env, &jmpbuf_node);
|
||||||
|
|
||||||
if (os_setjmp(jmpbuf_node.jmpbuf) == 0) {
|
if (os_setjmp(jmpbuf_node.jmpbuf) == 0) {
|
||||||
|
@ -2632,7 +2632,7 @@ aot_call_function(WASMExecEnv *exec_env, AOTFunctionInstance *function,
|
||||||
ret = invoke_native_internal(exec_env, func_ptr, func_type, NULL,
|
ret = invoke_native_internal(exec_env, func_ptr, func_type, NULL,
|
||||||
attachment, argv, argc, argv);
|
attachment, argv, argc, argv);
|
||||||
|
|
||||||
if (aot_copy_exception(module_inst, NULL)) {
|
if (!ret) {
|
||||||
#ifdef AOT_STACK_FRAME_DEBUG
|
#ifdef AOT_STACK_FRAME_DEBUG
|
||||||
if (aot_stack_frame_callback) {
|
if (aot_stack_frame_callback) {
|
||||||
aot_stack_frame_callback(exec_env);
|
aot_stack_frame_callback(exec_env);
|
||||||
|
@ -2653,7 +2653,7 @@ aot_call_function(WASMExecEnv *exec_env, AOTFunctionInstance *function,
|
||||||
aot_free_frame(exec_env);
|
aot_free_frame(exec_env);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return ret && !aot_copy_exception(module_inst, NULL) ? true : false;
|
return ret;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3287,8 +3287,25 @@ aot_call_indirect(WASMExecEnv *exec_env, uint32 tbl_idx, uint32 table_elem_idx,
|
||||||
cell_num += wasm_value_type_cell_num(ext_ret_types[i]);
|
cell_num += wasm_value_type_cell_num(ext_ret_types[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if WASM_ENABLE_AOT_STACK_FRAME != 0
|
||||||
|
void *prev_frame = get_top_frame(exec_env);
|
||||||
|
if (!is_frame_per_function(exec_env)
|
||||||
|
&& !aot_alloc_frame(exec_env, func_idx)) {
|
||||||
|
if (argv1 != argv1_buf)
|
||||||
|
wasm_runtime_free(argv1);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
ret = invoke_native_internal(exec_env, func_ptr, func_type, signature,
|
ret = invoke_native_internal(exec_env, func_ptr, func_type, signature,
|
||||||
attachment, argv1, argc, argv);
|
attachment, argv1, argc, argv);
|
||||||
|
#if WASM_ENABLE_AOT_STACK_FRAME != 0
|
||||||
|
/* Free all frames allocated, note that some frames
|
||||||
|
may be allocated in AOT code and haven't been
|
||||||
|
freed if exception occurred */
|
||||||
|
while (get_top_frame(exec_env) != prev_frame)
|
||||||
|
aot_free_frame(exec_env);
|
||||||
|
#endif
|
||||||
|
|
||||||
if (!ret) {
|
if (!ret) {
|
||||||
if (argv1 != argv1_buf)
|
if (argv1 != argv1_buf)
|
||||||
wasm_runtime_free(argv1);
|
wasm_runtime_free(argv1);
|
||||||
|
@ -3329,8 +3346,25 @@ aot_call_indirect(WASMExecEnv *exec_env, uint32 tbl_idx, uint32 table_elem_idx,
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
#if WASM_ENABLE_AOT_STACK_FRAME != 0
|
||||||
|
void *prev_frame = get_top_frame(exec_env);
|
||||||
|
/* Only allocate frame for frame-per-call mode; in the
|
||||||
|
frame-per-function mode the frame is allocated at the
|
||||||
|
beginning of the function. */
|
||||||
|
if (!is_frame_per_function(exec_env)
|
||||||
|
&& !aot_alloc_frame(exec_env, func_idx)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
ret = invoke_native_internal(exec_env, func_ptr, func_type, signature,
|
ret = invoke_native_internal(exec_env, func_ptr, func_type, signature,
|
||||||
attachment, argv, argc, argv);
|
attachment, argv, argc, argv);
|
||||||
|
#if WASM_ENABLE_AOT_STACK_FRAME != 0
|
||||||
|
/* Free all frames allocated, note that some frames
|
||||||
|
may be allocated in AOT code and haven't been
|
||||||
|
freed if exception occurred */
|
||||||
|
while (get_top_frame(exec_env) != prev_frame)
|
||||||
|
aot_free_frame(exec_env);
|
||||||
|
#endif
|
||||||
if (!ret)
|
if (!ret)
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
|
@ -4105,6 +4139,136 @@ aot_frame_update_profile_info(WASMExecEnv *exec_env, bool alloc_frame)
|
||||||
}
|
}
|
||||||
#endif /* end of WASM_ENABLE_AOT_STACK_FRAME != 0 */
|
#endif /* end of WASM_ENABLE_AOT_STACK_FRAME != 0 */
|
||||||
|
|
||||||
|
#if WAMR_ENABLE_COPY_CALLSTACK != 0
|
||||||
|
uint32
|
||||||
|
aot_copy_callstack_tiny_frame(WASMExecEnv *exec_env, wasm_frame_t *buffer,
|
||||||
|
const uint32 length, const uint32 skip_n,
|
||||||
|
char *error_buf, uint32 error_buf_size)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* Note for devs: please refrain from such modifications inside of
|
||||||
|
* aot_copy_callstack_tiny_frame
|
||||||
|
* - any allocations/freeing memory
|
||||||
|
* - dereferencing any pointers other than: exec_env, exec_env->module_inst,
|
||||||
|
* exec_env->module_inst->module, pointers between stack's bottom and
|
||||||
|
* top_boundary For more details check wasm_copy_callstack in
|
||||||
|
* wasm_export.h
|
||||||
|
*/
|
||||||
|
uint8 *top_boundary = exec_env->wasm_stack.top_boundary;
|
||||||
|
uint8 *top = exec_env->wasm_stack.top;
|
||||||
|
uint8 *bottom = exec_env->wasm_stack.bottom;
|
||||||
|
uint32 count = 0;
|
||||||
|
|
||||||
|
bool is_top_index_in_range =
|
||||||
|
top_boundary >= top && top >= (bottom + sizeof(AOTTinyFrame));
|
||||||
|
if (!is_top_index_in_range) {
|
||||||
|
char *err_msg =
|
||||||
|
"Top of the stack pointer is outside of the stack boundaries";
|
||||||
|
strncpy(error_buf, err_msg, error_buf_size);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
bool is_top_aligned_with_bottom =
|
||||||
|
(unsigned long)(top - bottom) % sizeof(AOTTinyFrame) == 0;
|
||||||
|
if (!is_top_aligned_with_bottom) {
|
||||||
|
char *err_msg = "Top of the stack is not aligned with the bottom";
|
||||||
|
strncpy(error_buf, err_msg, error_buf_size);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
AOTTinyFrame *frame = (AOTTinyFrame *)(top - sizeof(AOTTinyFrame));
|
||||||
|
WASMCApiFrame record_frame;
|
||||||
|
while (frame && (uint8_t *)frame >= bottom && count < (skip_n + length)) {
|
||||||
|
if (count < skip_n) {
|
||||||
|
++count;
|
||||||
|
frame -= 1;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
record_frame.instance = exec_env->module_inst;
|
||||||
|
record_frame.module_offset = 0;
|
||||||
|
record_frame.func_index = frame->func_index;
|
||||||
|
record_frame.func_offset = frame->ip_offset;
|
||||||
|
buffer[count - skip_n] = record_frame;
|
||||||
|
frame -= 1;
|
||||||
|
++count;
|
||||||
|
}
|
||||||
|
return count >= skip_n ? count - skip_n : 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
uint32
|
||||||
|
aot_copy_callstack_standard_frame(WASMExecEnv *exec_env, wasm_frame_t *buffer,
|
||||||
|
const uint32 length, const uint32 skip_n,
|
||||||
|
char *error_buf, uint32_t error_buf_size)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* Note for devs: please refrain from such modifications inside of
|
||||||
|
* aot_iterate_callstack_standard_frame
|
||||||
|
* - any allocations/freeing memory
|
||||||
|
* - dereferencing any pointers other than: exec_env, exec_env->module_inst,
|
||||||
|
* exec_env->module_inst->module, pointers between stack's bottom and
|
||||||
|
* top_boundary For more details check wasm_iterate_callstack in
|
||||||
|
* wasm_export.h
|
||||||
|
*/
|
||||||
|
|
||||||
|
uint32 count = 0;
|
||||||
|
#if WASM_ENABLE_GC == 0
|
||||||
|
WASMModuleInstance *module_inst =
|
||||||
|
(WASMModuleInstance *)wasm_exec_env_get_module_inst(exec_env);
|
||||||
|
AOTFrame *cur_frame = (AOTFrame *)wasm_exec_env_get_cur_frame(exec_env);
|
||||||
|
uint8 *top_boundary = exec_env->wasm_stack.top_boundary;
|
||||||
|
uint8 *bottom = exec_env->wasm_stack.bottom;
|
||||||
|
uint32 frame_size = (uint32)offsetof(AOTFrame, lp);
|
||||||
|
|
||||||
|
WASMCApiFrame record_frame;
|
||||||
|
while (cur_frame && (uint8_t *)cur_frame >= bottom
|
||||||
|
&& (uint8_t *)cur_frame + frame_size <= top_boundary
|
||||||
|
&& count < (skip_n + length)) {
|
||||||
|
if (count < skip_n) {
|
||||||
|
++count;
|
||||||
|
cur_frame = cur_frame->prev_frame;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
record_frame.instance = module_inst;
|
||||||
|
record_frame.module_offset = 0;
|
||||||
|
record_frame.func_index = (uint32)cur_frame->func_index;
|
||||||
|
record_frame.func_offset = (uint32)cur_frame->ip_offset;
|
||||||
|
buffer[count - skip_n] = record_frame;
|
||||||
|
cur_frame = cur_frame->prev_frame;
|
||||||
|
++count;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
/*
|
||||||
|
* TODO: add support for standard frames when GC is enabled
|
||||||
|
* now it poses a risk due to variable size of the frame
|
||||||
|
*/
|
||||||
|
#endif
|
||||||
|
return count >= skip_n ? count - skip_n : 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
uint32
|
||||||
|
aot_copy_callstack(WASMExecEnv *exec_env, wasm_frame_t *buffer,
|
||||||
|
const uint32 length, const uint32 skip_n, char *error_buf,
|
||||||
|
uint32_t error_buf_size)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* Note for devs: please refrain from such modifications inside of
|
||||||
|
* aot_iterate_callstack
|
||||||
|
* - any allocations/freeing memory
|
||||||
|
* - dereferencing any pointers other than: exec_env, exec_env->module_inst,
|
||||||
|
* exec_env->module_inst->module, pointers between stack's bottom and
|
||||||
|
* top_boundary For more details check wasm_iterate_callstack in
|
||||||
|
* wasm_export.h
|
||||||
|
*/
|
||||||
|
if (!is_tiny_frame(exec_env)) {
|
||||||
|
return aot_copy_callstack_standard_frame(
|
||||||
|
exec_env, buffer, length, skip_n, error_buf, error_buf_size);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return aot_copy_callstack_tiny_frame(exec_env, buffer, length, skip_n,
|
||||||
|
error_buf, error_buf_size);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif // WAMR_ENABLE_COPY_CALLSTACK
|
||||||
|
|
||||||
#if WASM_ENABLE_DUMP_CALL_STACK != 0
|
#if WASM_ENABLE_DUMP_CALL_STACK != 0
|
||||||
bool
|
bool
|
||||||
aot_create_call_stack(struct WASMExecEnv *exec_env)
|
aot_create_call_stack(struct WASMExecEnv *exec_env)
|
||||||
|
|
|
@ -776,6 +776,13 @@ aot_frame_update_profile_info(WASMExecEnv *exec_env, bool alloc_frame);
|
||||||
bool
|
bool
|
||||||
aot_create_call_stack(struct WASMExecEnv *exec_env);
|
aot_create_call_stack(struct WASMExecEnv *exec_env);
|
||||||
|
|
||||||
|
#if WAMR_ENABLE_COPY_CALLSTACK != 0
|
||||||
|
uint32
|
||||||
|
aot_copy_callstack(WASMExecEnv *exec_env, wasm_frame_t *buffer,
|
||||||
|
const uint32 length, const uint32 skip_n, char *error_buf,
|
||||||
|
uint32_t error_buf_size);
|
||||||
|
#endif // WAMR_ENABLE_COPY_CALLSTACK
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Dump wasm call stack or get the size
|
* @brief Dump wasm call stack or get the size
|
||||||
*
|
*
|
||||||
|
|
45
core/iwasm/aot/aot_validator.c
Normal file
45
core/iwasm/aot/aot_validator.c
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2025 Intel Corporation. All rights reserved.
|
||||||
|
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "aot_validator.h"
|
||||||
|
|
||||||
|
static void
|
||||||
|
set_error_buf(char *error_buf, uint32 error_buf_size, const char *string)
|
||||||
|
{
|
||||||
|
if (error_buf != NULL) {
|
||||||
|
snprintf(error_buf, error_buf_size,
|
||||||
|
"AOT module load failed: from validator. %s", string);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool
|
||||||
|
aot_memory_info_validate(const AOTModule *module, char *error_buf,
|
||||||
|
uint32 error_buf_size)
|
||||||
|
{
|
||||||
|
if (module->import_memory_count > 0) {
|
||||||
|
set_error_buf(error_buf, error_buf_size,
|
||||||
|
"import memory is not supported");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (module->memory_count < 1) {
|
||||||
|
set_error_buf(error_buf, error_buf_size,
|
||||||
|
"there should be >=1 memory in one aot module");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
aot_module_validate(const AOTModule *module, char *error_buf,
|
||||||
|
uint32 error_buf_size)
|
||||||
|
{
|
||||||
|
if (!aot_memory_info_validate(module, error_buf, error_buf_size)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
15
core/iwasm/aot/aot_validator.h
Normal file
15
core/iwasm/aot/aot_validator.h
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2025 Intel Corporation. All rights reserved.
|
||||||
|
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _AOT_VALIDATOR_H_
|
||||||
|
#define _AOT_VALIDATOR_H_
|
||||||
|
|
||||||
|
#include "aot_runtime.h"
|
||||||
|
|
||||||
|
bool
|
||||||
|
aot_module_validate(const AOTModule *module, char *error_buf,
|
||||||
|
uint32 error_buf_size);
|
||||||
|
|
||||||
|
#endif /* _AOT_VALIDATOR_H_ */
|
|
@ -63,7 +63,7 @@ get_current_target(char *target_buf, uint32 target_buf_size)
|
||||||
/* Set to "aarch64v8" by default if sub version isn't specified */
|
/* Set to "aarch64v8" by default if sub version isn't specified */
|
||||||
if (strcmp(s, "AARCH64") == 0) {
|
if (strcmp(s, "AARCH64") == 0) {
|
||||||
s = "aarch64v8";
|
s = "aarch64v8";
|
||||||
s_size = 9; /* strlen("aarch64v8"); */
|
s_size = 10; /* sizeof("aarch64v8"); */
|
||||||
}
|
}
|
||||||
if (target_buf_size < s_size) {
|
if (target_buf_size < s_size) {
|
||||||
s_size = target_buf_size;
|
s_size = target_buf_size;
|
||||||
|
|
39
core/iwasm/aot/arch/aot_reloc_dummy.c
Normal file
39
core/iwasm/aot/arch/aot_reloc_dummy.c
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2020 Intel Corporation. All rights reserved.
|
||||||
|
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "aot_reloc.h"
|
||||||
|
|
||||||
|
SymbolMap *
|
||||||
|
get_target_symbol_map(uint32 *sym_num)
|
||||||
|
{
|
||||||
|
abort();
|
||||||
|
}
|
||||||
|
|
||||||
|
uint32
|
||||||
|
get_plt_table_size(void)
|
||||||
|
{
|
||||||
|
abort();
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
init_plt_table(uint8 *plt)
|
||||||
|
{
|
||||||
|
abort();
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
get_current_target(char *target_buf, uint32 target_buf_size)
|
||||||
|
{
|
||||||
|
abort();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
apply_relocation(AOTModule *module, uint8 *target_section_addr,
|
||||||
|
uint32 target_section_size, uint64 reloc_offset,
|
||||||
|
int64 reloc_addend, uint32 reloc_type, void *symbol_addr,
|
||||||
|
int32 symbol_index, char *error_buf, uint32 error_buf_size)
|
||||||
|
{
|
||||||
|
abort();
|
||||||
|
}
|
|
@ -30,36 +30,39 @@ void __umoddi3();
|
||||||
#pragma function(floor)
|
#pragma function(floor)
|
||||||
#pragma function(ceil)
|
#pragma function(ceil)
|
||||||
|
|
||||||
static int64
|
static int64 __stdcall __divdi3(int64 a, int64 b)
|
||||||
__divdi3(int64 a, int64 b)
|
|
||||||
{
|
{
|
||||||
return a / b;
|
return a / b;
|
||||||
}
|
}
|
||||||
|
|
||||||
static uint64
|
static uint64 __stdcall __udivdi3(uint64 a, uint64 b)
|
||||||
__udivdi3(uint64 a, uint64 b)
|
|
||||||
{
|
{
|
||||||
return a / b;
|
return a / b;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int64
|
static int64 __stdcall __moddi3(int64 a, int64 b)
|
||||||
__moddi3(int64 a, int64 b)
|
|
||||||
{
|
{
|
||||||
return a % b;
|
return a % b;
|
||||||
}
|
}
|
||||||
|
|
||||||
static uint64
|
static uint64 __stdcall __umoddi3(uint64 a, uint64 b)
|
||||||
__umoddi3(uint64 a, uint64 b)
|
|
||||||
{
|
{
|
||||||
return a % b;
|
return a % b;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
static uint64
|
static uint64 __stdcall __aulldiv(uint64 a, uint64 b)
|
||||||
__aulldiv(uint64 a, uint64 b)
|
|
||||||
{
|
{
|
||||||
return a / b;
|
return a / b;
|
||||||
}
|
}
|
||||||
|
static int64 __stdcall __alldiv(int64 a, int64 b)
|
||||||
|
{
|
||||||
|
return a / b;
|
||||||
|
}
|
||||||
|
static int64 __stdcall __allrem(int64 a, int64 b)
|
||||||
|
{
|
||||||
|
return a % b;
|
||||||
|
}
|
||||||
|
#endif /* !defined(_WIN32) && !defined(_WIN32_) */
|
||||||
|
|
||||||
/* clang-format off */
|
/* clang-format off */
|
||||||
static SymbolMap target_sym_map[] = {
|
static SymbolMap target_sym_map[] = {
|
||||||
|
@ -69,7 +72,11 @@ static SymbolMap target_sym_map[] = {
|
||||||
REG_SYM(__udivdi3),
|
REG_SYM(__udivdi3),
|
||||||
REG_SYM(__moddi3),
|
REG_SYM(__moddi3),
|
||||||
REG_SYM(__umoddi3),
|
REG_SYM(__umoddi3),
|
||||||
REG_SYM(__aulldiv)
|
#if defined(_WIN32) || defined(_WIN32_)
|
||||||
|
REG_SYM(__aulldiv),
|
||||||
|
REG_SYM(__alldiv),
|
||||||
|
REG_SYM(__allrem)
|
||||||
|
#endif /* defined(_WIN32) || defined(_WIN32_) */
|
||||||
};
|
};
|
||||||
/* clang-format on */
|
/* clang-format on */
|
||||||
|
|
||||||
|
|
|
@ -154,7 +154,7 @@ check_reloc_offset(uint32 target_section_size, uint64 reloc_offset,
|
||||||
* CPU like esp32 can read and write data through the instruction bus, but only
|
* CPU like esp32 can read and write data through the instruction bus, but only
|
||||||
* in a word aligned manner; non-word-aligned access will cause a CPU exception.
|
* in a word aligned manner; non-word-aligned access will cause a CPU exception.
|
||||||
* This function uses a world aligned manner to write 16bit value to instruction
|
* This function uses a world aligned manner to write 16bit value to instruction
|
||||||
* addreess.
|
* address.
|
||||||
*/
|
*/
|
||||||
static void
|
static void
|
||||||
put_imm16_to_addr(int16 imm16, int16 *addr)
|
put_imm16_to_addr(int16 imm16, int16 *addr)
|
||||||
|
|
|
@ -1,15 +1,37 @@
|
||||||
# Copyright (C) 2019 Intel Corporation. All rights reserved.
|
# Copyright (C) 2019 Intel Corporation. All rights reserved.
|
||||||
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||||
|
|
||||||
|
# Yes. To solve the compatibility issue with CMAKE (>= 4.0), we need to update
|
||||||
|
# our `cmake_minimum_required()` to 3.5. However, there are CMakeLists.txt
|
||||||
|
# from 3rd parties that we should not alter. Therefore, in addition to
|
||||||
|
# changing the `cmake_minimum_required()`, we should also add a configuration
|
||||||
|
# here that is compatible with earlier versions.
|
||||||
|
set(CMAKE_POLICY_VERSION_MINIMUM 3.5 FORCE)
|
||||||
|
|
||||||
set (IWASM_AOT_DIR ${CMAKE_CURRENT_LIST_DIR})
|
set (IWASM_AOT_DIR ${CMAKE_CURRENT_LIST_DIR})
|
||||||
|
|
||||||
add_definitions (-DWASM_ENABLE_AOT=1)
|
add_definitions (-DWASM_ENABLE_AOT=1)
|
||||||
|
|
||||||
include_directories (${IWASM_AOT_DIR})
|
include_directories (${IWASM_AOT_DIR})
|
||||||
|
|
||||||
file (GLOB c_source_all ${IWASM_AOT_DIR}/*.c)
|
list (APPEND c_source_all
|
||||||
|
${IWASM_AOT_DIR}/aot_intrinsic.c
|
||||||
|
${IWASM_AOT_DIR}/aot_loader.c
|
||||||
|
${IWASM_AOT_DIR}/aot_runtime.c
|
||||||
|
)
|
||||||
|
|
||||||
if (WAMR_BUILD_TARGET STREQUAL "X86_64" OR WAMR_BUILD_TARGET STREQUAL "AMD_64")
|
if (WAMR_BUILD_LINUX_PERF EQUAL 1)
|
||||||
|
list (APPEND c_source_all ${IWASM_AOT_DIR}/aot_perf_map.c)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (WAMR_BUILD_AOT_VALIDATOR EQUAL 1)
|
||||||
|
list (APPEND c_source_all ${IWASM_AOT_DIR}/aot_validator.c)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (WAMR_BUILD_WAMR_COMPILER EQUAL 1)
|
||||||
|
# AOT reloc functions are not used during AOT compilation
|
||||||
|
set (arch_source ${IWASM_AOT_DIR}/arch/aot_reloc_dummy.c)
|
||||||
|
elseif (WAMR_BUILD_TARGET STREQUAL "X86_64" OR WAMR_BUILD_TARGET STREQUAL "AMD_64")
|
||||||
set (arch_source ${IWASM_AOT_DIR}/arch/aot_reloc_x86_64.c)
|
set (arch_source ${IWASM_AOT_DIR}/arch/aot_reloc_x86_64.c)
|
||||||
elseif (WAMR_BUILD_TARGET STREQUAL "X86_32")
|
elseif (WAMR_BUILD_TARGET STREQUAL "X86_32")
|
||||||
set (arch_source ${IWASM_AOT_DIR}/arch/aot_reloc_x86_32.c)
|
set (arch_source ${IWASM_AOT_DIR}/arch/aot_reloc_x86_32.c)
|
||||||
|
|
|
@ -45,7 +45,7 @@ _invokeNative:
|
||||||
|
|
||||||
/* Now x20 points to stack args */
|
/* Now x20 points to stack args */
|
||||||
|
|
||||||
/* Directly call the fucntion if no args in stack */
|
/* Directly call the function if no args in stack */
|
||||||
cmp x21, #0
|
cmp x21, #0
|
||||||
beq call_func
|
beq call_func
|
||||||
|
|
||||||
|
@ -69,7 +69,7 @@ loop_stack_args: /* copy stack arguments to stack */
|
||||||
call_func:
|
call_func:
|
||||||
mov x20, x30 /* save x30(lr) */
|
mov x20, x30 /* save x30(lr) */
|
||||||
blr x19
|
blr x19
|
||||||
mov sp, x22 /* restore sp which is saved before calling fuction*/
|
mov sp, x22 /* restore sp which is saved before calling function*/
|
||||||
|
|
||||||
return:
|
return:
|
||||||
mov x30, x20 /* restore x30(lr) */
|
mov x30, x20 /* restore x30(lr) */
|
||||||
|
|
|
@ -43,7 +43,7 @@ _invokeNative:
|
||||||
|
|
||||||
/* Now x20 points to stack args */
|
/* Now x20 points to stack args */
|
||||||
|
|
||||||
/* Directly call the fucntion if no args in stack */
|
/* Directly call the function if no args in stack */
|
||||||
cmp x21, #0
|
cmp x21, #0
|
||||||
beq call_func
|
beq call_func
|
||||||
|
|
||||||
|
@ -67,7 +67,7 @@ loop_stack_args: /* copy stack arguments to stack */
|
||||||
call_func:
|
call_func:
|
||||||
mov x20, x30 /* save x30(lr) */
|
mov x20, x30 /* save x30(lr) */
|
||||||
blr x19
|
blr x19
|
||||||
mov sp, x22 /* restore sp which is saved before calling fuction*/
|
mov sp, x22 /* restore sp which is saved before calling function*/
|
||||||
|
|
||||||
return:
|
return:
|
||||||
mov x30, x20 /* restore x30(lr) */
|
mov x30, x20 /* restore x30(lr) */
|
||||||
|
|
|
@ -53,7 +53,7 @@ _invokeNative:
|
||||||
vldr s13, [r4, #52]
|
vldr s13, [r4, #52]
|
||||||
vldr s14, [r4, #56]
|
vldr s14, [r4, #56]
|
||||||
vldr s15, [r4, #60]
|
vldr s15, [r4, #60]
|
||||||
/* Directly call the fucntion if no args in stack */
|
/* Directly call the function if no args in stack */
|
||||||
cmp r5, #0
|
cmp r5, #0
|
||||||
beq call_func
|
beq call_func
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The float abi macros used bellow are from risc-v c api:
|
* The float abi macros used below are from risc-v c api:
|
||||||
* https://github.com/riscv/riscv-c-api-doc/blob/master/riscv-c-api.md
|
* https://github.com/riscv/riscv-c-api-doc/blob/master/riscv-c-api.md
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
@ -130,7 +130,7 @@ _invokeNative:
|
||||||
loop_stack_args:
|
loop_stack_args:
|
||||||
beq t2, x0, call_func
|
beq t2, x0, call_func
|
||||||
RV_OP_LOADREG t5, 0(t1) /* load stack argument, t5 = argv[i] */
|
RV_OP_LOADREG t5, 0(t1) /* load stack argument, t5 = argv[i] */
|
||||||
RV_OP_STOREREG t5, 0(t4) /* store t5 to reseved stack, sp[j] = t5 */
|
RV_OP_STOREREG t5, 0(t4) /* store t5 to reserved stack, sp[j] = t5 */
|
||||||
addi t1, t1, RV_REG_SIZE /* move to next stack argument */
|
addi t1, t1, RV_REG_SIZE /* move to next stack argument */
|
||||||
addi t4, t4, RV_REG_SIZE /* move to next stack pointer */
|
addi t4, t4, RV_REG_SIZE /* move to next stack pointer */
|
||||||
addi t2, t2, -1 /* decrease t2 every loop, nstacks = nstacks -1 */
|
addi t2, t2, -1 /* decrease t2 every loop, nstacks = nstacks -1 */
|
||||||
|
@ -142,7 +142,7 @@ call_func:
|
||||||
/* restore registers pushed in stack or saved in another register */
|
/* restore registers pushed in stack or saved in another register */
|
||||||
return:
|
return:
|
||||||
mv sp, fp /* restore sp saved in fp before function call */
|
mv sp, fp /* restore sp saved in fp before function call */
|
||||||
RV_OP_LOADREG fp, 0 * RV_REG_SIZE(sp) /* load previous frame poniter to fp register */
|
RV_OP_LOADREG fp, 0 * RV_REG_SIZE(sp) /* load previous frame pointer to fp register */
|
||||||
RV_OP_LOADREG ra, 1 * RV_REG_SIZE(sp) /* load previous return address to ra register */
|
RV_OP_LOADREG ra, 1 * RV_REG_SIZE(sp) /* load previous return address to ra register */
|
||||||
addi sp, sp, 2 * RV_REG_SIZE /* pop frame, restore sp */
|
addi sp, sp, 2 * RV_REG_SIZE /* pop frame, restore sp */
|
||||||
jr ra
|
jr ra
|
||||||
|
|
|
@ -55,7 +55,7 @@ _invokeNative:
|
||||||
vldr s13, [r4, #52]
|
vldr s13, [r4, #52]
|
||||||
vldr s14, [r4, #56]
|
vldr s14, [r4, #56]
|
||||||
vldr s15, [r4, #60]
|
vldr s15, [r4, #60]
|
||||||
/* Directly call the fucntion if no args in stack */
|
/* Directly call the function if no args in stack */
|
||||||
cmp r5, #0
|
cmp r5, #0
|
||||||
beq call_func
|
beq call_func
|
||||||
|
|
||||||
|
|
|
@ -1145,6 +1145,14 @@ wasm_reftype_is_subtype_of(uint8 type1, const WASMRefType *ref_type1,
|
||||||
return true;
|
return true;
|
||||||
else {
|
else {
|
||||||
int32 heap_type = ref_type1->ref_ht_common.heap_type;
|
int32 heap_type = ref_type1->ref_ht_common.heap_type;
|
||||||
|
// We dont care whether type2 is nullable or not. So
|
||||||
|
// we normalize it into its related one-byte type.
|
||||||
|
if (type2 == REF_TYPE_HT_NULLABLE
|
||||||
|
|| type2 == REF_TYPE_HT_NON_NULLABLE) {
|
||||||
|
bh_assert(ref_type2);
|
||||||
|
type2 = (uint8)(ref_type2->ref_ht_common.heap_type
|
||||||
|
+ REF_TYPE_FUNCREF - HEAP_TYPE_FUNC);
|
||||||
|
}
|
||||||
if (heap_type == HEAP_TYPE_ANY) {
|
if (heap_type == HEAP_TYPE_ANY) {
|
||||||
/* (ref any) <: anyref */
|
/* (ref any) <: anyref */
|
||||||
return type2 == REF_TYPE_ANYREF ? true : false;
|
return type2 == REF_TYPE_ANYREF ? true : false;
|
||||||
|
@ -1188,19 +1196,15 @@ wasm_reftype_is_subtype_of(uint8 type1, const WASMRefType *ref_type1,
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
else if (heap_type == HEAP_TYPE_NONE) {
|
else if (heap_type == HEAP_TYPE_NONE) {
|
||||||
/* (ref none) */
|
return wasm_is_reftype_supers_of_none(type2, NULL, types,
|
||||||
/* TODO */
|
type_count);
|
||||||
bh_assert(0);
|
|
||||||
}
|
}
|
||||||
else if (heap_type == HEAP_TYPE_NOEXTERN) {
|
else if (heap_type == HEAP_TYPE_NOEXTERN) {
|
||||||
/* (ref noextern) */
|
return wasm_is_reftype_supers_of_noextern(type2);
|
||||||
/* TODO */
|
|
||||||
bh_assert(0);
|
|
||||||
}
|
}
|
||||||
else if (heap_type == HEAP_TYPE_NOFUNC) {
|
else if (heap_type == HEAP_TYPE_NOFUNC) {
|
||||||
/* (ref nofunc) */
|
return wasm_is_reftype_supers_of_nofunc(type2, NULL, types,
|
||||||
/* TODO */
|
type_count);
|
||||||
bh_assert(0);
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
bh_assert(0);
|
bh_assert(0);
|
||||||
|
|
|
@ -118,7 +118,7 @@ execute_main(WASMModuleInstanceCommon *module_inst, int32 argc, char *argv[])
|
||||||
|
|
||||||
#if WASM_ENABLE_LIBC_WASI != 0
|
#if WASM_ENABLE_LIBC_WASI != 0
|
||||||
/* In wasi mode, we should call the function named "_start"
|
/* In wasi mode, we should call the function named "_start"
|
||||||
which initializes the wasi envrionment and then calls
|
which initializes the wasi environment and then calls
|
||||||
the actual main function. Directly calling main function
|
the actual main function. Directly calling main function
|
||||||
may cause exception thrown. */
|
may cause exception thrown. */
|
||||||
if ((func = wasm_runtime_lookup_wasi_start_function(module_inst))) {
|
if ((func = wasm_runtime_lookup_wasi_start_function(module_inst))) {
|
||||||
|
|
|
@ -2257,7 +2257,7 @@ wasm_module_new_ex(wasm_store_t *store, wasm_byte_vec_t *binary, LoadArgs *args)
|
||||||
if (!store || !binary || binary->size == 0 || binary->size > UINT32_MAX)
|
if (!store || !binary || binary->size == 0 || binary->size > UINT32_MAX)
|
||||||
goto quit;
|
goto quit;
|
||||||
|
|
||||||
/* whether the combination of compilation flags are compatable with the
|
/* whether the combination of compilation flags are compatible with the
|
||||||
* package type */
|
* package type */
|
||||||
{
|
{
|
||||||
PackageType pkg_type;
|
PackageType pkg_type;
|
||||||
|
|
|
@ -85,6 +85,10 @@ wasm_exec_env_create_internal(struct WASMModuleInstanceCommon *module_inst,
|
||||||
wasm_runtime_dump_exec_env_mem_consumption(exec_env);
|
wasm_runtime_dump_exec_env_mem_consumption(exec_env);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if WASM_ENABLE_INSTRUCTION_METERING != 0
|
||||||
|
exec_env->instructions_to_execute = -1;
|
||||||
|
#endif
|
||||||
|
|
||||||
return exec_env;
|
return exec_env;
|
||||||
|
|
||||||
#ifdef OS_ENABLE_HW_BOUND_CHECK
|
#ifdef OS_ENABLE_HW_BOUND_CHECK
|
||||||
|
@ -202,7 +206,7 @@ wasm_exec_env_destroy(WASMExecEnv *exec_env)
|
||||||
wasm_cluster_wait_for_all_except_self(cluster, exec_env);
|
wasm_cluster_wait_for_all_except_self(cluster, exec_env);
|
||||||
#if WASM_ENABLE_DEBUG_INTERP != 0
|
#if WASM_ENABLE_DEBUG_INTERP != 0
|
||||||
/* Must fire exit event after other threads exits, otherwise
|
/* Must fire exit event after other threads exits, otherwise
|
||||||
the stopped thread will be overriden by other threads */
|
the stopped thread will be overridden by other threads */
|
||||||
wasm_cluster_thread_exited(exec_env);
|
wasm_cluster_thread_exited(exec_env);
|
||||||
#endif
|
#endif
|
||||||
/* We have waited for other threads, this is the only alive thread, so
|
/* We have waited for other threads, this is the only alive thread, so
|
||||||
|
@ -276,8 +280,6 @@ wasm_exec_env_restore_module_inst(
|
||||||
void
|
void
|
||||||
wasm_exec_env_set_thread_info(WASMExecEnv *exec_env)
|
wasm_exec_env_set_thread_info(WASMExecEnv *exec_env)
|
||||||
{
|
{
|
||||||
uint8 *stack_boundary = os_thread_get_stack_boundary();
|
|
||||||
|
|
||||||
#if WASM_ENABLE_THREAD_MGR != 0
|
#if WASM_ENABLE_THREAD_MGR != 0
|
||||||
os_mutex_lock(&exec_env->wait_lock);
|
os_mutex_lock(&exec_env->wait_lock);
|
||||||
#endif
|
#endif
|
||||||
|
@ -286,9 +288,11 @@ wasm_exec_env_set_thread_info(WASMExecEnv *exec_env)
|
||||||
/* WASM_STACK_GUARD_SIZE isn't added for flexibility to developer,
|
/* WASM_STACK_GUARD_SIZE isn't added for flexibility to developer,
|
||||||
he must ensure that enough guard bytes are kept. */
|
he must ensure that enough guard bytes are kept. */
|
||||||
exec_env->native_stack_boundary = exec_env->user_native_stack_boundary;
|
exec_env->native_stack_boundary = exec_env->user_native_stack_boundary;
|
||||||
else
|
else {
|
||||||
|
uint8 *stack_boundary = os_thread_get_stack_boundary();
|
||||||
exec_env->native_stack_boundary =
|
exec_env->native_stack_boundary =
|
||||||
stack_boundary ? stack_boundary + WASM_STACK_GUARD_SIZE : NULL;
|
stack_boundary ? stack_boundary + WASM_STACK_GUARD_SIZE : NULL;
|
||||||
|
}
|
||||||
exec_env->native_stack_top_min = (void *)UINTPTR_MAX;
|
exec_env->native_stack_top_min = (void *)UINTPTR_MAX;
|
||||||
#if WASM_ENABLE_THREAD_MGR != 0
|
#if WASM_ENABLE_THREAD_MGR != 0
|
||||||
os_mutex_unlock(&exec_env->wait_lock);
|
os_mutex_unlock(&exec_env->wait_lock);
|
||||||
|
|
|
@ -87,6 +87,11 @@ typedef struct WASMExecEnv {
|
||||||
uint8 *bottom;
|
uint8 *bottom;
|
||||||
} wasm_stack;
|
} wasm_stack;
|
||||||
|
|
||||||
|
#if WASM_ENABLE_INSTRUCTION_METERING != 0
|
||||||
|
/* instructions to execute */
|
||||||
|
int instructions_to_execute;
|
||||||
|
#endif
|
||||||
|
|
||||||
#if WASM_ENABLE_FAST_JIT != 0
|
#if WASM_ENABLE_FAST_JIT != 0
|
||||||
/**
|
/**
|
||||||
* Cache for
|
* Cache for
|
||||||
|
|
|
@ -151,11 +151,13 @@ is_valid_value_type(uint8 type)
|
||||||
bool
|
bool
|
||||||
is_valid_value_type_for_interpreter(uint8 value_type)
|
is_valid_value_type_for_interpreter(uint8 value_type)
|
||||||
{
|
{
|
||||||
#if (WASM_ENABLE_WAMR_COMPILER == 0) && (WASM_ENABLE_JIT == 0)
|
#if (WASM_ENABLE_WAMR_COMPILER == 0) && (WASM_ENABLE_JIT == 0) \
|
||||||
|
&& (WASM_ENABLE_SIMDE == 0)
|
||||||
/*
|
/*
|
||||||
* Note: regardless of WASM_ENABLE_SIMD, our interpreters don't have
|
* Note: regardless of WASM_ENABLE_SIMD, our classic interpreters don't
|
||||||
* SIMD implemented. It's safer to reject v128, especially for the
|
* have SIMD implemented.
|
||||||
* fast interpreter.
|
*
|
||||||
|
* WASM_ENABLE_SIMDE is used to control SIMD feaure in fast interpreter
|
||||||
*/
|
*/
|
||||||
if (value_type == VALUE_TYPE_V128)
|
if (value_type == VALUE_TYPE_V128)
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -1475,6 +1475,14 @@ wasm_mremap_linear_memory(void *mapped_mem, uint64 old_size, uint64 new_size,
|
||||||
bh_assert(new_size > 0);
|
bh_assert(new_size > 0);
|
||||||
bh_assert(new_size > old_size);
|
bh_assert(new_size > old_size);
|
||||||
|
|
||||||
|
#if UINTPTR_MAX == UINT32_MAX
|
||||||
|
if (new_size == 4 * (uint64)BH_GB) {
|
||||||
|
LOG_WARNING("On 32 bit platform, linear memory can't reach maximum "
|
||||||
|
"size of 4GB\n");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (mapped_mem) {
|
if (mapped_mem) {
|
||||||
new_mem = os_mremap(mapped_mem, old_size, new_size);
|
new_mem = os_mremap(mapped_mem, old_size, new_size);
|
||||||
}
|
}
|
||||||
|
@ -1589,7 +1597,7 @@ wasm_enlarge_memory_internal(WASMModuleInstanceCommon *module,
|
||||||
if (!(memory_data_new =
|
if (!(memory_data_new =
|
||||||
realloc_func(Alloc_For_LinearMemory, full_size_mmaped,
|
realloc_func(Alloc_For_LinearMemory, full_size_mmaped,
|
||||||
#if WASM_MEM_ALLOC_WITH_USER_DATA != 0
|
#if WASM_MEM_ALLOC_WITH_USER_DATA != 0
|
||||||
NULL,
|
allocator_user_data,
|
||||||
#endif
|
#endif
|
||||||
memory_data_old, total_size_new))) {
|
memory_data_old, total_size_new))) {
|
||||||
ret = false;
|
ret = false;
|
||||||
|
@ -1611,7 +1619,7 @@ wasm_enlarge_memory_internal(WASMModuleInstanceCommon *module,
|
||||||
if (full_size_mmaped) {
|
if (full_size_mmaped) {
|
||||||
#ifdef BH_PLATFORM_WINDOWS
|
#ifdef BH_PLATFORM_WINDOWS
|
||||||
if (!os_mem_commit(memory->memory_data_end,
|
if (!os_mem_commit(memory->memory_data_end,
|
||||||
(mem_offset_t)(total_size_new - total_size_old),
|
total_size_new - total_size_old,
|
||||||
MMAP_PROT_READ | MMAP_PROT_WRITE)) {
|
MMAP_PROT_READ | MMAP_PROT_WRITE)) {
|
||||||
ret = false;
|
ret = false;
|
||||||
goto return_func;
|
goto return_func;
|
||||||
|
@ -1619,12 +1627,12 @@ wasm_enlarge_memory_internal(WASMModuleInstanceCommon *module,
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (os_mprotect(memory->memory_data_end,
|
if (os_mprotect(memory->memory_data_end,
|
||||||
(mem_offset_t)(total_size_new - total_size_old),
|
total_size_new - total_size_old,
|
||||||
MMAP_PROT_READ | MMAP_PROT_WRITE)
|
MMAP_PROT_READ | MMAP_PROT_WRITE)
|
||||||
!= 0) {
|
!= 0) {
|
||||||
#ifdef BH_PLATFORM_WINDOWS
|
#ifdef BH_PLATFORM_WINDOWS
|
||||||
os_mem_decommit(memory->memory_data_end,
|
os_mem_decommit(memory->memory_data_end,
|
||||||
(mem_offset_t)(total_size_new - total_size_old));
|
total_size_new - total_size_old);
|
||||||
#endif
|
#endif
|
||||||
ret = false;
|
ret = false;
|
||||||
goto return_func;
|
goto return_func;
|
||||||
|
@ -1902,7 +1910,7 @@ wasm_deallocate_linear_memory(WASMMemoryInstance *memory_inst)
|
||||||
(void)map_size;
|
(void)map_size;
|
||||||
free_func(Alloc_For_LinearMemory,
|
free_func(Alloc_For_LinearMemory,
|
||||||
#if WASM_MEM_ALLOC_WITH_USER_DATA != 0
|
#if WASM_MEM_ALLOC_WITH_USER_DATA != 0
|
||||||
NULL,
|
allocator_user_data,
|
||||||
#endif
|
#endif
|
||||||
memory_inst->memory_data);
|
memory_inst->memory_data);
|
||||||
#else
|
#else
|
||||||
|
@ -1955,7 +1963,7 @@ wasm_allocate_linear_memory(uint8 **data, bool is_shared_memory,
|
||||||
(void)wasm_mmap_linear_memory;
|
(void)wasm_mmap_linear_memory;
|
||||||
if (!(*data = malloc_func(Alloc_For_LinearMemory,
|
if (!(*data = malloc_func(Alloc_For_LinearMemory,
|
||||||
#if WASM_MEM_ALLOC_WITH_USER_DATA != 0
|
#if WASM_MEM_ALLOC_WITH_USER_DATA != 0
|
||||||
NULL,
|
allocator_user_data,
|
||||||
#endif
|
#endif
|
||||||
*memory_data_size))) {
|
*memory_data_size))) {
|
||||||
return BHT_ERROR;
|
return BHT_ERROR;
|
||||||
|
|
|
@ -757,7 +757,10 @@ wasm_runtime_full_init_internal(RuntimeInitArgs *init_args)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if WASM_ENABLE_GC != 0
|
#if WASM_ENABLE_GC != 0
|
||||||
gc_heap_size_default = init_args->gc_heap_size;
|
uint32 gc_heap_size = init_args->gc_heap_size;
|
||||||
|
if (gc_heap_size > 0) {
|
||||||
|
gc_heap_size_default = gc_heap_size;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if WASM_ENABLE_JIT != 0
|
#if WASM_ENABLE_JIT != 0
|
||||||
|
@ -1501,7 +1504,7 @@ wasm_runtime_load_ex(uint8 *buf, uint32 size, const LoadArgs *args,
|
||||||
error_buf_size);
|
error_buf_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
WASM_RUNTIME_API_EXTERN bool
|
bool
|
||||||
wasm_runtime_resolve_symbols(WASMModuleCommon *module)
|
wasm_runtime_resolve_symbols(WASMModuleCommon *module)
|
||||||
{
|
{
|
||||||
#if WASM_ENABLE_INTERP != 0
|
#if WASM_ENABLE_INTERP != 0
|
||||||
|
@ -1740,6 +1743,45 @@ wasm_runtime_destroy_exec_env(WASMExecEnv *exec_env)
|
||||||
wasm_exec_env_destroy(exec_env);
|
wasm_exec_env_destroy(exec_env);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if WAMR_ENABLE_COPY_CALLSTACK != 0
|
||||||
|
uint32
|
||||||
|
wasm_copy_callstack(const wasm_exec_env_t exec_env, wasm_frame_t *buffer,
|
||||||
|
const uint32 length, const uint32 skip_n, char *error_buf,
|
||||||
|
uint32_t error_buf_size)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* Note for devs: please refrain from such modifications inside of
|
||||||
|
* wasm_copy_callstack to preserve async-signal-safety
|
||||||
|
* - any allocations/freeing memory
|
||||||
|
* - dereferencing any pointers other than: exec_env, exec_env->module_inst,
|
||||||
|
* exec_env->module_inst->module, pointers between stack's bottom and
|
||||||
|
* top_boundary For more details check wasm_copy_callstack in
|
||||||
|
* wasm_export.h
|
||||||
|
*/
|
||||||
|
#if WASM_ENABLE_DUMP_CALL_STACK
|
||||||
|
WASMModuleInstance *module_inst =
|
||||||
|
(WASMModuleInstance *)get_module_inst(exec_env);
|
||||||
|
|
||||||
|
#if WASM_ENABLE_INTERP != 0
|
||||||
|
if (module_inst->module_type == Wasm_Module_Bytecode) {
|
||||||
|
return wasm_interp_copy_callstack(exec_env, buffer, length, skip_n,
|
||||||
|
error_buf, error_buf_size);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if WASM_ENABLE_AOT != 0
|
||||||
|
if (module_inst->module_type == Wasm_Module_AoT) {
|
||||||
|
return aot_copy_callstack(exec_env, buffer, length, skip_n, error_buf,
|
||||||
|
error_buf_size);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
char *err_msg = "No copy_callstack API was actually executed";
|
||||||
|
strncpy(error_buf, err_msg, error_buf_size);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
#endif // WAMR_ENABLE_COPY_CALLSTACK
|
||||||
|
|
||||||
bool
|
bool
|
||||||
wasm_runtime_init_thread_env(void)
|
wasm_runtime_init_thread_env(void)
|
||||||
{
|
{
|
||||||
|
@ -2243,6 +2285,15 @@ wasm_runtime_access_exce_check_guard_page()
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if WASM_ENABLE_INSTRUCTION_METERING != 0
|
||||||
|
void
|
||||||
|
wasm_runtime_set_instruction_count_limit(WASMExecEnv *exec_env,
|
||||||
|
int instructions_to_execute)
|
||||||
|
{
|
||||||
|
exec_env->instructions_to_execute = instructions_to_execute;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
WASMFuncType *
|
WASMFuncType *
|
||||||
wasm_runtime_get_function_type(const WASMFunctionInstanceCommon *function,
|
wasm_runtime_get_function_type(const WASMFunctionInstanceCommon *function,
|
||||||
uint32 module_type)
|
uint32 module_type)
|
||||||
|
@ -3835,11 +3886,15 @@ wasm_runtime_init_wasi(WASMModuleInstanceCommon *module_inst,
|
||||||
init_options.allocator = &uvwasi_allocator;
|
init_options.allocator = &uvwasi_allocator;
|
||||||
init_options.argc = argc;
|
init_options.argc = argc;
|
||||||
init_options.argv = (const char **)argv;
|
init_options.argv = (const char **)argv;
|
||||||
init_options.in = (stdinfd != -1) ? (uvwasi_fd_t)stdinfd : init_options.in;
|
init_options.in = (stdinfd != os_get_invalid_handle())
|
||||||
init_options.out =
|
? (uvwasi_fd_t)stdinfd
|
||||||
(stdoutfd != -1) ? (uvwasi_fd_t)stdoutfd : init_options.out;
|
: init_options.in;
|
||||||
init_options.err =
|
init_options.out = (stdoutfd != os_get_invalid_handle())
|
||||||
(stderrfd != -1) ? (uvwasi_fd_t)stderrfd : init_options.err;
|
? (uvwasi_fd_t)stdoutfd
|
||||||
|
: init_options.out;
|
||||||
|
init_options.err = (stderrfd != os_get_invalid_handle())
|
||||||
|
? (uvwasi_fd_t)stderrfd
|
||||||
|
: init_options.err;
|
||||||
|
|
||||||
if (dir_count > 0) {
|
if (dir_count > 0) {
|
||||||
init_options.preopenc = dir_count;
|
init_options.preopenc = dir_count;
|
||||||
|
@ -4458,8 +4513,9 @@ wasm_func_type_get_param_valkind(WASMFuncType *const func_type,
|
||||||
return WASM_V128;
|
return WASM_V128;
|
||||||
case VALUE_TYPE_FUNCREF:
|
case VALUE_TYPE_FUNCREF:
|
||||||
return WASM_FUNCREF;
|
return WASM_FUNCREF;
|
||||||
|
|
||||||
case VALUE_TYPE_EXTERNREF:
|
case VALUE_TYPE_EXTERNREF:
|
||||||
|
return WASM_EXTERNREF;
|
||||||
|
|
||||||
case VALUE_TYPE_VOID:
|
case VALUE_TYPE_VOID:
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
|
@ -7793,7 +7849,7 @@ wasm_runtime_detect_native_stack_overflow_size(WASMExecEnv *exec_env,
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
WASM_RUNTIME_API_EXTERN bool
|
bool
|
||||||
wasm_runtime_is_underlying_binary_freeable(WASMModuleCommon *const module)
|
wasm_runtime_is_underlying_binary_freeable(WASMModuleCommon *const module)
|
||||||
{
|
{
|
||||||
#if WASM_ENABLE_INTERP != 0
|
#if WASM_ENABLE_INTERP != 0
|
||||||
|
|
|
@ -37,6 +37,10 @@ extern "C" {
|
||||||
do { \
|
do { \
|
||||||
*(int64 *)(addr) = (int64)(value); \
|
*(int64 *)(addr) = (int64)(value); \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
#define PUT_V128_TO_ADDR(addr, value) \
|
||||||
|
do { \
|
||||||
|
*(V128 *)(addr) = (value); \
|
||||||
|
} while (0)
|
||||||
#define PUT_F64_TO_ADDR(addr, value) \
|
#define PUT_F64_TO_ADDR(addr, value) \
|
||||||
do { \
|
do { \
|
||||||
*(float64 *)(addr) = (float64)(value); \
|
*(float64 *)(addr) = (float64)(value); \
|
||||||
|
@ -49,6 +53,7 @@ extern "C" {
|
||||||
#define GET_I64_FROM_ADDR(addr) (*(int64 *)(addr))
|
#define GET_I64_FROM_ADDR(addr) (*(int64 *)(addr))
|
||||||
#define GET_F64_FROM_ADDR(addr) (*(float64 *)(addr))
|
#define GET_F64_FROM_ADDR(addr) (*(float64 *)(addr))
|
||||||
#define GET_REF_FROM_ADDR(addr) (*(void **)(addr))
|
#define GET_REF_FROM_ADDR(addr) (*(void **)(addr))
|
||||||
|
#define GET_V128_FROM_ADDR(addr) (*(V128 *)(addr))
|
||||||
|
|
||||||
/* For STORE opcodes */
|
/* For STORE opcodes */
|
||||||
#define STORE_I64 PUT_I64_TO_ADDR
|
#define STORE_I64 PUT_I64_TO_ADDR
|
||||||
|
@ -68,6 +73,12 @@ STORE_U8(void *addr, uint8_t value)
|
||||||
*(uint8 *)addr = value;
|
*(uint8 *)addr = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
STORE_V128(void *addr, V128 value)
|
||||||
|
{
|
||||||
|
*(V128 *)addr = value;
|
||||||
|
}
|
||||||
|
|
||||||
/* For LOAD opcodes */
|
/* For LOAD opcodes */
|
||||||
#define LOAD_I64(addr) (*(int64 *)(addr))
|
#define LOAD_I64(addr) (*(int64 *)(addr))
|
||||||
#define LOAD_F64(addr) (*(float64 *)(addr))
|
#define LOAD_F64(addr) (*(float64 *)(addr))
|
||||||
|
@ -75,6 +86,7 @@ STORE_U8(void *addr, uint8_t value)
|
||||||
#define LOAD_U32(addr) (*(uint32 *)(addr))
|
#define LOAD_U32(addr) (*(uint32 *)(addr))
|
||||||
#define LOAD_I16(addr) (*(int16 *)(addr))
|
#define LOAD_I16(addr) (*(int16 *)(addr))
|
||||||
#define LOAD_U16(addr) (*(uint16 *)(addr))
|
#define LOAD_U16(addr) (*(uint16 *)(addr))
|
||||||
|
#define LOAD_V128(addr) (*(V128 *)(addr))
|
||||||
|
|
||||||
#define STORE_PTR(addr, ptr) \
|
#define STORE_PTR(addr, ptr) \
|
||||||
do { \
|
do { \
|
||||||
|
@ -83,6 +95,15 @@ STORE_U8(void *addr, uint8_t value)
|
||||||
|
|
||||||
#else /* WASM_CPU_SUPPORTS_UNALIGNED_ADDR_ACCESS != 0 */
|
#else /* WASM_CPU_SUPPORTS_UNALIGNED_ADDR_ACCESS != 0 */
|
||||||
|
|
||||||
|
#define PUT_V128_TO_ADDR(addr, value) \
|
||||||
|
do { \
|
||||||
|
uint32 *addr_u32 = (uint32 *)(addr); \
|
||||||
|
addr_u32[0] = (value).i32x4[0]; \
|
||||||
|
addr_u32[1] = (value).i32x4[1]; \
|
||||||
|
addr_u32[2] = (value).i32x4[2]; \
|
||||||
|
addr_u32[3] = (value).i32x4[3]; \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
#define PUT_I64_TO_ADDR(addr, value) \
|
#define PUT_I64_TO_ADDR(addr, value) \
|
||||||
do { \
|
do { \
|
||||||
uint32 *addr_u32 = (uint32 *)(addr); \
|
uint32 *addr_u32 = (uint32 *)(addr); \
|
||||||
|
@ -124,6 +145,17 @@ STORE_U8(void *addr, uint8_t value)
|
||||||
} while (0)
|
} while (0)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static inline V128
|
||||||
|
GET_V128_FROM_ADDR(uint32 *addr)
|
||||||
|
{
|
||||||
|
V128 ret;
|
||||||
|
ret.i32x4[0] = addr[0];
|
||||||
|
ret.i32x4[1] = addr[1];
|
||||||
|
ret.i32x4[2] = addr[2];
|
||||||
|
ret.i32x4[3] = addr[3];
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
static inline int64
|
static inline int64
|
||||||
GET_I64_FROM_ADDR(uint32 *addr)
|
GET_I64_FROM_ADDR(uint32 *addr)
|
||||||
{
|
{
|
||||||
|
@ -239,7 +271,94 @@ STORE_U16(void *addr, uint16_t value)
|
||||||
((uint8_t *)(addr))[0] = u.u8[0];
|
((uint8_t *)(addr))[0] = u.u8[0];
|
||||||
((uint8_t *)(addr))[1] = u.u8[1];
|
((uint8_t *)(addr))[1] = u.u8[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
STORE_V128(void *addr, V128 value)
|
||||||
|
{
|
||||||
|
uintptr_t addr_ = (uintptr_t)(addr);
|
||||||
|
union {
|
||||||
|
V128 val;
|
||||||
|
uint64 u64[2];
|
||||||
|
uint32 u32[4];
|
||||||
|
uint16 u16[8];
|
||||||
|
uint8 u8[16];
|
||||||
|
} u;
|
||||||
|
|
||||||
|
if ((addr_ & (uintptr_t)15) == 0) {
|
||||||
|
*(V128 *)addr = value;
|
||||||
|
}
|
||||||
|
else if ((addr_ & (uintptr_t)7) == 0) {
|
||||||
|
u.val = value;
|
||||||
|
((uint64 *)(addr))[0] = u.u64[0];
|
||||||
|
((uint64 *)(addr))[1] = u.u64[1];
|
||||||
|
}
|
||||||
|
else if ((addr_ & (uintptr_t)3) == 0) {
|
||||||
|
u.val = value;
|
||||||
|
((uint32 *)addr)[0] = u.u32[0];
|
||||||
|
((uint32 *)addr)[1] = u.u32[1];
|
||||||
|
((uint32 *)addr)[2] = u.u32[2];
|
||||||
|
((uint32 *)addr)[3] = u.u32[3];
|
||||||
|
}
|
||||||
|
else if ((addr_ & (uintptr_t)1) == 0) {
|
||||||
|
u.val = value;
|
||||||
|
((uint16 *)addr)[0] = u.u16[0];
|
||||||
|
((uint16 *)addr)[1] = u.u16[1];
|
||||||
|
((uint16 *)addr)[2] = u.u16[2];
|
||||||
|
((uint16 *)addr)[3] = u.u16[3];
|
||||||
|
((uint16 *)addr)[4] = u.u16[4];
|
||||||
|
((uint16 *)addr)[5] = u.u16[5];
|
||||||
|
((uint16 *)addr)[6] = u.u16[6];
|
||||||
|
((uint16 *)addr)[7] = u.u16[7];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
u.val = value;
|
||||||
|
for (int i = 0; i < 16; i++)
|
||||||
|
((uint8 *)addr)[i] = u.u8[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* For LOAD opcodes */
|
/* For LOAD opcodes */
|
||||||
|
static inline V128
|
||||||
|
LOAD_V128(void *addr)
|
||||||
|
{
|
||||||
|
uintptr_t addr1 = (uintptr_t)addr;
|
||||||
|
union {
|
||||||
|
V128 val;
|
||||||
|
uint64 u64[2];
|
||||||
|
uint32 u32[4];
|
||||||
|
uint16 u16[8];
|
||||||
|
uint8 u8[16];
|
||||||
|
} u;
|
||||||
|
if ((addr1 & (uintptr_t)15) == 0)
|
||||||
|
return *(V128 *)addr;
|
||||||
|
|
||||||
|
if ((addr1 & (uintptr_t)7) == 0) {
|
||||||
|
u.u64[0] = ((uint64 *)addr)[0];
|
||||||
|
u.u64[1] = ((uint64 *)addr)[1];
|
||||||
|
}
|
||||||
|
else if ((addr1 & (uintptr_t)3) == 0) {
|
||||||
|
u.u32[0] = ((uint32 *)addr)[0];
|
||||||
|
u.u32[1] = ((uint32 *)addr)[1];
|
||||||
|
u.u32[2] = ((uint32 *)addr)[2];
|
||||||
|
u.u32[3] = ((uint32 *)addr)[3];
|
||||||
|
}
|
||||||
|
else if ((addr1 & (uintptr_t)1) == 0) {
|
||||||
|
u.u16[0] = ((uint16 *)addr)[0];
|
||||||
|
u.u16[1] = ((uint16 *)addr)[1];
|
||||||
|
u.u16[2] = ((uint16 *)addr)[2];
|
||||||
|
u.u16[3] = ((uint16 *)addr)[3];
|
||||||
|
u.u16[4] = ((uint16 *)addr)[4];
|
||||||
|
u.u16[5] = ((uint16 *)addr)[5];
|
||||||
|
u.u16[6] = ((uint16 *)addr)[6];
|
||||||
|
u.u16[7] = ((uint16 *)addr)[7];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
for (int i = 0; i < 16; i++)
|
||||||
|
u.u8[i] = ((uint8 *)addr)[i];
|
||||||
|
}
|
||||||
|
return u.val;
|
||||||
|
}
|
||||||
|
|
||||||
static inline int64
|
static inline int64
|
||||||
LOAD_I64(void *addr)
|
LOAD_I64(void *addr)
|
||||||
{
|
{
|
||||||
|
@ -464,19 +583,6 @@ typedef struct WASMRegisteredModule {
|
||||||
typedef package_type_t PackageType;
|
typedef package_type_t PackageType;
|
||||||
typedef wasm_section_t WASMSection, AOTSection;
|
typedef wasm_section_t WASMSection, AOTSection;
|
||||||
|
|
||||||
typedef struct wasm_frame_t {
|
|
||||||
/* wasm_instance_t */
|
|
||||||
void *instance;
|
|
||||||
uint32 module_offset;
|
|
||||||
uint32 func_index;
|
|
||||||
uint32 func_offset;
|
|
||||||
const char *func_name_wp;
|
|
||||||
|
|
||||||
uint32 *sp;
|
|
||||||
uint8 *frame_ref;
|
|
||||||
uint32 *lp;
|
|
||||||
} WASMCApiFrame;
|
|
||||||
|
|
||||||
#if WASM_ENABLE_JIT != 0
|
#if WASM_ENABLE_JIT != 0
|
||||||
typedef struct LLVMJITOptions {
|
typedef struct LLVMJITOptions {
|
||||||
uint32 opt_level;
|
uint32 opt_level;
|
||||||
|
@ -652,6 +758,13 @@ wasm_runtime_create_exec_env(WASMModuleInstanceCommon *module_inst,
|
||||||
WASM_RUNTIME_API_EXTERN void
|
WASM_RUNTIME_API_EXTERN void
|
||||||
wasm_runtime_destroy_exec_env(WASMExecEnv *exec_env);
|
wasm_runtime_destroy_exec_env(WASMExecEnv *exec_env);
|
||||||
|
|
||||||
|
#if WAMR_ENABLE_COPY_CALLSTACK != 0
|
||||||
|
WASM_RUNTIME_API_EXTERN uint32_t
|
||||||
|
wasm_copy_callstack(const wasm_exec_env_t exec_env, wasm_frame_t *buffer,
|
||||||
|
const uint32 length, const uint32 skip_n, char *error_buf,
|
||||||
|
uint32 error_buf_size);
|
||||||
|
#endif // WAMR_ENABLE_COPY_CALLSTACK
|
||||||
|
|
||||||
/* See wasm_export.h for description */
|
/* See wasm_export.h for description */
|
||||||
WASM_RUNTIME_API_EXTERN WASMModuleInstanceCommon *
|
WASM_RUNTIME_API_EXTERN WASMModuleInstanceCommon *
|
||||||
wasm_runtime_get_module_inst(WASMExecEnv *exec_env);
|
wasm_runtime_get_module_inst(WASMExecEnv *exec_env);
|
||||||
|
@ -678,9 +791,17 @@ WASM_RUNTIME_API_EXTERN void
|
||||||
wasm_runtime_set_native_stack_boundary(WASMExecEnv *exec_env,
|
wasm_runtime_set_native_stack_boundary(WASMExecEnv *exec_env,
|
||||||
uint8 *native_stack_boundary);
|
uint8 *native_stack_boundary);
|
||||||
|
|
||||||
#if WASM_CONFIGURABLE_BOUNDS_CHECKS != 0
|
#if WASM_ENABLE_INSTRUCTION_METERING != 0
|
||||||
/* See wasm_export.h for description */
|
/* See wasm_export.h for description */
|
||||||
WASM_RUNTIME_API_EXTERN void
|
WASM_RUNTIME_API_EXTERN void
|
||||||
|
wasm_runtime_set_instruction_count_limit(WASMExecEnv *exec_env,
|
||||||
|
int instructions_to_execute);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if WASM_CONFIGURABLE_BOUNDS_CHECKS != 0
|
||||||
|
/* See wasm_export.h for description */
|
||||||
|
WASM_RUNTIME_API_EXTERN
|
||||||
|
void
|
||||||
wasm_runtime_set_bounds_checks(WASMModuleInstanceCommon *module_inst,
|
wasm_runtime_set_bounds_checks(WASMModuleInstanceCommon *module_inst,
|
||||||
bool enable);
|
bool enable);
|
||||||
|
|
||||||
|
|
|
@ -1316,6 +1316,13 @@ aot_compile_func(AOTCompContext *comp_ctx, uint32 func_index)
|
||||||
return false;
|
return false;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
#if WASM_ENABLE_SIMD != 0
|
||||||
|
case WASM_OP_SELECT_128:
|
||||||
|
if (!aot_compile_op_select(comp_ctx, func_ctx, true))
|
||||||
|
return false;
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
|
||||||
#if WASM_ENABLE_REF_TYPES != 0 || WASM_ENABLE_GC != 0
|
#if WASM_ENABLE_REF_TYPES != 0 || WASM_ENABLE_GC != 0
|
||||||
case WASM_OP_SELECT_T:
|
case WASM_OP_SELECT_T:
|
||||||
{
|
{
|
||||||
|
|
|
@ -790,7 +790,7 @@ set_local_gc_ref(AOTCompFrame *frame, int n, LLVMValueRef value, uint8 ref_type)
|
||||||
} \
|
} \
|
||||||
else { \
|
else { \
|
||||||
char *func_name = #name; \
|
char *func_name = #name; \
|
||||||
/* AOT mode, delcare the function */ \
|
/* AOT mode, declare the function */ \
|
||||||
if (!(func = LLVMGetNamedFunction(func_ctx->module, func_name)) \
|
if (!(func = LLVMGetNamedFunction(func_ctx->module, func_name)) \
|
||||||
&& !(func = LLVMAddFunction(func_ctx->module, func_name, \
|
&& !(func = LLVMAddFunction(func_ctx->module, func_name, \
|
||||||
func_type))) { \
|
func_type))) { \
|
||||||
|
|
|
@ -920,9 +920,11 @@ get_relocations_size(AOTObjectData *obj_data,
|
||||||
/* ignore the relocations to aot_func_internal#n in text section
|
/* ignore the relocations to aot_func_internal#n in text section
|
||||||
for windows platform since they will be applied in
|
for windows platform since they will be applied in
|
||||||
aot_emit_text_section */
|
aot_emit_text_section */
|
||||||
|
|
||||||
|
const char *name = relocation->symbol_name;
|
||||||
if ((!strcmp(relocation_group->section_name, ".text")
|
if ((!strcmp(relocation_group->section_name, ".text")
|
||||||
|| !strcmp(relocation_group->section_name, ".ltext"))
|
|| !strcmp(relocation_group->section_name, ".ltext"))
|
||||||
&& !strncmp(relocation->symbol_name, AOT_FUNC_INTERNAL_PREFIX,
|
&& !strncmp(name, AOT_FUNC_INTERNAL_PREFIX,
|
||||||
strlen(AOT_FUNC_INTERNAL_PREFIX))
|
strlen(AOT_FUNC_INTERNAL_PREFIX))
|
||||||
&& ((!strncmp(obj_data->comp_ctx->target_arch, "x86_64", 6)
|
&& ((!strncmp(obj_data->comp_ctx->target_arch, "x86_64", 6)
|
||||||
/* Windows AOT_COFF64_BIN_TYPE */
|
/* Windows AOT_COFF64_BIN_TYPE */
|
||||||
|
@ -1790,8 +1792,10 @@ aot_emit_mem_info(uint8 *buf, uint8 *buf_end, uint32 *p_offset,
|
||||||
&init_datas[i]->offset))
|
&init_datas[i]->offset))
|
||||||
return false;
|
return false;
|
||||||
EMIT_U32(init_datas[i]->byte_count);
|
EMIT_U32(init_datas[i]->byte_count);
|
||||||
|
if (init_datas[i]->byte_count) {
|
||||||
EMIT_BUF(init_datas[i]->bytes, init_datas[i]->byte_count);
|
EMIT_BUF(init_datas[i]->bytes, init_datas[i]->byte_count);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (offset - *p_offset != get_mem_info_size(comp_ctx, comp_data)) {
|
if (offset - *p_offset != get_mem_info_size(comp_ctx, comp_data)) {
|
||||||
aot_set_last_error("emit memory info failed.");
|
aot_set_last_error("emit memory info failed.");
|
||||||
|
@ -2487,8 +2491,8 @@ aot_emit_text_section(uint8 *buf, uint8 *buf_end, uint32 *p_offset,
|
||||||
relocation_count = relocation_group->relocation_count;
|
relocation_count = relocation_group->relocation_count;
|
||||||
for (j = 0; j < relocation_count; j++) {
|
for (j = 0; j < relocation_count; j++) {
|
||||||
/* relocation to aot_func_internal#n */
|
/* relocation to aot_func_internal#n */
|
||||||
if (str_starts_with(relocation->symbol_name,
|
const char *name = relocation->symbol_name;
|
||||||
AOT_FUNC_INTERNAL_PREFIX)
|
if (str_starts_with(name, AOT_FUNC_INTERNAL_PREFIX)
|
||||||
&& ((obj_data->target_info.bin_type
|
&& ((obj_data->target_info.bin_type
|
||||||
== 6 /* AOT_COFF64_BIN_TYPE */
|
== 6 /* AOT_COFF64_BIN_TYPE */
|
||||||
&& relocation->relocation_type
|
&& relocation->relocation_type
|
||||||
|
@ -2498,8 +2502,7 @@ aot_emit_text_section(uint8 *buf, uint8 *buf_end, uint32 *p_offset,
|
||||||
&& relocation->relocation_type
|
&& relocation->relocation_type
|
||||||
== 20 /* IMAGE_REL_I386_REL32 */))) {
|
== 20 /* IMAGE_REL_I386_REL32 */))) {
|
||||||
uint32 func_idx =
|
uint32 func_idx =
|
||||||
atoi(relocation->symbol_name
|
atoi(name + strlen(AOT_FUNC_INTERNAL_PREFIX));
|
||||||
+ strlen(AOT_FUNC_INTERNAL_PREFIX));
|
|
||||||
uint64 text_offset, reloc_offset, reloc_addend;
|
uint64 text_offset, reloc_offset, reloc_addend;
|
||||||
|
|
||||||
bh_assert(func_idx < obj_data->func_count);
|
bh_assert(func_idx < obj_data->func_count);
|
||||||
|
@ -3050,6 +3053,27 @@ typedef struct elf64_rela {
|
||||||
#define SET_TARGET_INFO_FIELD(f, v, type, little) \
|
#define SET_TARGET_INFO_FIELD(f, v, type, little) \
|
||||||
SET_TARGET_INFO_VALUE(f, elf_header->v, type, little)
|
SET_TARGET_INFO_VALUE(f, elf_header->v, type, little)
|
||||||
|
|
||||||
|
/* in windows 32, the symbol name may start with '_' */
|
||||||
|
static char *
|
||||||
|
LLVMGetSymbolNameAndUnDecorate(LLVMSymbolIteratorRef si,
|
||||||
|
AOTTargetInfo target_info)
|
||||||
|
{
|
||||||
|
char *original_name = (char *)LLVMGetSymbolName(si);
|
||||||
|
if (!original_name) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (target_info.bin_type != AOT_COFF32_BIN_TYPE) {
|
||||||
|
return original_name;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (*original_name == '_') {
|
||||||
|
return ++original_name;
|
||||||
|
}
|
||||||
|
|
||||||
|
return original_name;
|
||||||
|
}
|
||||||
|
|
||||||
static bool
|
static bool
|
||||||
aot_resolve_target_info(AOTCompContext *comp_ctx, AOTObjectData *obj_data)
|
aot_resolve_target_info(AOTCompContext *comp_ctx, AOTObjectData *obj_data)
|
||||||
{
|
{
|
||||||
|
@ -3246,8 +3270,17 @@ is_data_section(AOTObjectData *obj_data, LLVMSectionIteratorRef sec_itr,
|
||||||
|
|
||||||
return (!strcmp(section_name, ".data") || !strcmp(section_name, ".sdata")
|
return (!strcmp(section_name, ".data") || !strcmp(section_name, ".sdata")
|
||||||
|| !strcmp(section_name, ".rodata")
|
|| !strcmp(section_name, ".rodata")
|
||||||
|
#if LLVM_VERSION_MAJOR >= 19
|
||||||
|
/* https://github.com/llvm/llvm-project/pull/82214 */
|
||||||
|
|| !strcmp(section_name, ".srodata")
|
||||||
|
#endif
|
||||||
/* ".rodata.cst4/8/16/.." */
|
/* ".rodata.cst4/8/16/.." */
|
||||||
|| !strncmp(section_name, ".rodata.cst", strlen(".rodata.cst"))
|
|| !strncmp(section_name, ".rodata.cst", strlen(".rodata.cst"))
|
||||||
|
#if LLVM_VERSION_MAJOR >= 19
|
||||||
|
/* https://github.com/llvm/llvm-project/pull/82214
|
||||||
|
* ".srodata.cst4/8/16/.." */
|
||||||
|
|| !strncmp(section_name, ".srodata.cst", strlen(".srodata.cst"))
|
||||||
|
#endif
|
||||||
/* ".rodata.strn.m" */
|
/* ".rodata.strn.m" */
|
||||||
|| !strncmp(section_name, ".rodata.str", strlen(".rodata.str"))
|
|| !strncmp(section_name, ".rodata.str", strlen(".rodata.str"))
|
||||||
|| (!strcmp(section_name, ".rdata")
|
|| (!strcmp(section_name, ".rdata")
|
||||||
|
@ -3524,12 +3557,9 @@ aot_resolve_stack_sizes(AOTCompContext *comp_ctx, AOTObjectData *obj_data)
|
||||||
}
|
}
|
||||||
|
|
||||||
while (!LLVMObjectFileIsSymbolIteratorAtEnd(obj_data->binary, sym_itr)) {
|
while (!LLVMObjectFileIsSymbolIteratorAtEnd(obj_data->binary, sym_itr)) {
|
||||||
if ((name = LLVMGetSymbolName(sym_itr))
|
if ((name =
|
||||||
&& (!strcmp(name, aot_stack_sizes_alias_name)
|
LLVMGetSymbolNameAndUnDecorate(sym_itr, obj_data->target_info))
|
||||||
/* symbol of COFF32 starts with "_" */
|
&& (!strcmp(name, aot_stack_sizes_alias_name))) {
|
||||||
|| (obj_data->target_info.bin_type == AOT_COFF32_BIN_TYPE
|
|
||||||
&& !strncmp(name, "_", 1)
|
|
||||||
&& !strcmp(name + 1, aot_stack_sizes_alias_name)))) {
|
|
||||||
#if 0 /* cf. https://github.com/llvm/llvm-project/issues/67765 */
|
#if 0 /* cf. https://github.com/llvm/llvm-project/issues/67765 */
|
||||||
uint64 sz = LLVMGetSymbolSize(sym_itr);
|
uint64 sz = LLVMGetSymbolSize(sym_itr);
|
||||||
if (sz != sizeof(uint32) * obj_data->func_count
|
if (sz != sizeof(uint32) * obj_data->func_count
|
||||||
|
@ -3693,8 +3723,8 @@ aot_resolve_functions(AOTCompContext *comp_ctx, AOTObjectData *obj_data)
|
||||||
}
|
}
|
||||||
|
|
||||||
while (!LLVMObjectFileIsSymbolIteratorAtEnd(obj_data->binary, sym_itr)) {
|
while (!LLVMObjectFileIsSymbolIteratorAtEnd(obj_data->binary, sym_itr)) {
|
||||||
if ((name = (char *)LLVMGetSymbolName(sym_itr))
|
name = LLVMGetSymbolNameAndUnDecorate(sym_itr, obj_data->target_info);
|
||||||
&& str_starts_with(name, prefix)) {
|
if (name && str_starts_with(name, prefix)) {
|
||||||
/* symbol aot_func#n */
|
/* symbol aot_func#n */
|
||||||
func_index = (uint32)atoi(name + strlen(prefix));
|
func_index = (uint32)atoi(name + strlen(prefix));
|
||||||
if (func_index < obj_data->func_count) {
|
if (func_index < obj_data->func_count) {
|
||||||
|
@ -3732,8 +3762,7 @@ aot_resolve_functions(AOTCompContext *comp_ctx, AOTObjectData *obj_data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ((name = (char *)LLVMGetSymbolName(sym_itr))
|
else if (name && str_starts_with(name, AOT_FUNC_INTERNAL_PREFIX)) {
|
||||||
&& str_starts_with(name, AOT_FUNC_INTERNAL_PREFIX)) {
|
|
||||||
/* symbol aot_func_internal#n */
|
/* symbol aot_func_internal#n */
|
||||||
func_index = (uint32)atoi(name + strlen(AOT_FUNC_INTERNAL_PREFIX));
|
func_index = (uint32)atoi(name + strlen(AOT_FUNC_INTERNAL_PREFIX));
|
||||||
if (func_index < obj_data->func_count) {
|
if (func_index < obj_data->func_count) {
|
||||||
|
@ -3844,7 +3873,7 @@ aot_resolve_object_relocation_group(AOTObjectData *obj_data,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* pares each relocation */
|
/* parse each relocation */
|
||||||
if (!(rel_itr = LLVMGetRelocations(rel_sec))) {
|
if (!(rel_itr = LLVMGetRelocations(rel_sec))) {
|
||||||
aot_set_last_error("llvm get relocations failed.");
|
aot_set_last_error("llvm get relocations failed.");
|
||||||
return false;
|
return false;
|
||||||
|
@ -3881,7 +3910,8 @@ aot_resolve_object_relocation_group(AOTObjectData *obj_data,
|
||||||
|
|
||||||
/* set relocation fields */
|
/* set relocation fields */
|
||||||
relocation->relocation_type = (uint32)type;
|
relocation->relocation_type = (uint32)type;
|
||||||
relocation->symbol_name = (char *)LLVMGetSymbolName(rel_sym);
|
relocation->symbol_name =
|
||||||
|
LLVMGetSymbolNameAndUnDecorate(rel_sym, obj_data->target_info);
|
||||||
relocation->relocation_offset = offset;
|
relocation->relocation_offset = offset;
|
||||||
if (!strcmp(group->section_name, ".rela.text.unlikely.")
|
if (!strcmp(group->section_name, ".rela.text.unlikely.")
|
||||||
|| !strcmp(group->section_name, ".rel.text.unlikely.")) {
|
|| !strcmp(group->section_name, ".rel.text.unlikely.")) {
|
||||||
|
@ -3908,12 +3938,7 @@ aot_resolve_object_relocation_group(AOTObjectData *obj_data,
|
||||||
* Note: aot_stack_sizes_section_name section only contains
|
* Note: aot_stack_sizes_section_name section only contains
|
||||||
* stack_sizes table.
|
* stack_sizes table.
|
||||||
*/
|
*/
|
||||||
if (!strcmp(relocation->symbol_name, aot_stack_sizes_name)
|
if (!strcmp(relocation->symbol_name, aot_stack_sizes_name)) {
|
||||||
/* in windows 32, the symbol name may start with '_' */
|
|
||||||
|| (strlen(relocation->symbol_name) > 0
|
|
||||||
&& relocation->symbol_name[0] == '_'
|
|
||||||
&& !strcmp(relocation->symbol_name + 1,
|
|
||||||
aot_stack_sizes_name))) {
|
|
||||||
/* discard const */
|
/* discard const */
|
||||||
relocation->symbol_name = (char *)aot_stack_sizes_section_name;
|
relocation->symbol_name = (char *)aot_stack_sizes_section_name;
|
||||||
}
|
}
|
||||||
|
@ -3982,8 +4007,21 @@ aot_resolve_object_relocation_group(AOTObjectData *obj_data,
|
||||||
&& (str_starts_with(relocation->symbol_name, ".LCPI")
|
&& (str_starts_with(relocation->symbol_name, ".LCPI")
|
||||||
|| str_starts_with(relocation->symbol_name, ".LJTI")
|
|| str_starts_with(relocation->symbol_name, ".LJTI")
|
||||||
|| str_starts_with(relocation->symbol_name, ".LBB")
|
|| str_starts_with(relocation->symbol_name, ".LBB")
|
||||||
|| str_starts_with(relocation->symbol_name,
|
|| str_starts_with(relocation->symbol_name, ".Lswitch.table.")
|
||||||
".Lswitch.table."))) {
|
#if LLVM_VERSION_MAJOR >= 16
|
||||||
|
/* cf. https://reviews.llvm.org/D123264 */
|
||||||
|
|| str_starts_with(relocation->symbol_name, ".Lpcrel_hi")
|
||||||
|
#endif
|
||||||
|
#if LLVM_VERSION_MAJOR >= 19
|
||||||
|
/* cf.
|
||||||
|
* https://github.com/llvm/llvm-project/pull/95031
|
||||||
|
* https://github.com/llvm/llvm-project/pull/89693
|
||||||
|
*
|
||||||
|
* note: the trailing space in ".L0 " is intentional. */
|
||||||
|
|| !strcmp(relocation->symbol_name, "")
|
||||||
|
|| !strcmp(relocation->symbol_name, ".L0 ")
|
||||||
|
#endif
|
||||||
|
)) {
|
||||||
/* change relocation->relocation_addend and
|
/* change relocation->relocation_addend and
|
||||||
relocation->symbol_name */
|
relocation->symbol_name */
|
||||||
LLVMSectionIteratorRef contain_section;
|
LLVMSectionIteratorRef contain_section;
|
||||||
|
|
|
@ -1218,6 +1218,28 @@ aot_compile_op_br_table(AOTCompContext *comp_ctx, AOTFuncContext *func_ctx,
|
||||||
return aot_handle_next_reachable_block(comp_ctx, func_ctx, p_frame_ip);
|
return aot_handle_next_reachable_block(comp_ctx, func_ctx, p_frame_ip);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* if (value_cmp > br_count)
|
||||||
|
* value_cmp = br_count;
|
||||||
|
*/
|
||||||
|
LLVMValueRef br_count_value = I32_CONST(br_count);
|
||||||
|
CHECK_LLVM_CONST(br_count_value);
|
||||||
|
|
||||||
|
LLVMValueRef clap_value_cmp_cond =
|
||||||
|
LLVMBuildICmp(comp_ctx->builder, LLVMIntUGT, value_cmp, br_count_value,
|
||||||
|
"cmp_w_br_count");
|
||||||
|
if (!clap_value_cmp_cond) {
|
||||||
|
aot_set_last_error("llvm build icmp failed.");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
value_cmp = LLVMBuildSelect(comp_ctx->builder, clap_value_cmp_cond,
|
||||||
|
br_count_value, value_cmp, "clap_value_cmp");
|
||||||
|
if (!value_cmp) {
|
||||||
|
aot_set_last_error("llvm build select failed.");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if (!LLVMIsEfficientConstInt(value_cmp)) {
|
if (!LLVMIsEfficientConstInt(value_cmp)) {
|
||||||
if (comp_ctx->aot_frame) {
|
if (comp_ctx->aot_frame) {
|
||||||
if (comp_ctx->enable_gc
|
if (comp_ctx->enable_gc
|
||||||
|
|
|
@ -347,17 +347,8 @@ aot_compile_op_i32_trunc_f32(AOTCompContext *comp_ctx, AOTFuncContext *func_ctx,
|
||||||
|
|
||||||
POP_F32(value);
|
POP_F32(value);
|
||||||
|
|
||||||
if (!comp_ctx->is_indirect_mode) {
|
if (comp_ctx->is_indirect_mode
|
||||||
if (sign) {
|
&& aot_intrinsic_check_capability(comp_ctx, "f32.const")) {
|
||||||
min_value = F32_CONST(-2147483904.0f);
|
|
||||||
max_value = F32_CONST(2147483648.0f);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
min_value = F32_CONST(-1.0f);
|
|
||||||
max_value = F32_CONST(4294967296.0f);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
WASMValue wasm_value;
|
WASMValue wasm_value;
|
||||||
if (sign) {
|
if (sign) {
|
||||||
wasm_value.f32 = -2147483904.0f;
|
wasm_value.f32 = -2147483904.0f;
|
||||||
|
@ -376,6 +367,16 @@ aot_compile_op_i32_trunc_f32(AOTCompContext *comp_ctx, AOTFuncContext *func_ctx,
|
||||||
comp_ctx, func_ctx->native_symbol, &wasm_value, VALUE_TYPE_F32);
|
comp_ctx, func_ctx->native_symbol, &wasm_value, VALUE_TYPE_F32);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
if (sign) {
|
||||||
|
min_value = F32_CONST(-2147483904.0f);
|
||||||
|
max_value = F32_CONST(2147483648.0f);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
min_value = F32_CONST(-1.0f);
|
||||||
|
max_value = F32_CONST(4294967296.0f);
|
||||||
|
}
|
||||||
|
}
|
||||||
CHECK_LLVM_CONST(min_value);
|
CHECK_LLVM_CONST(min_value);
|
||||||
CHECK_LLVM_CONST(max_value);
|
CHECK_LLVM_CONST(max_value);
|
||||||
|
|
||||||
|
@ -400,17 +401,8 @@ aot_compile_op_i32_trunc_f64(AOTCompContext *comp_ctx, AOTFuncContext *func_ctx,
|
||||||
|
|
||||||
POP_F64(value);
|
POP_F64(value);
|
||||||
|
|
||||||
if (!comp_ctx->is_indirect_mode) {
|
if (comp_ctx->is_indirect_mode
|
||||||
if (sign) {
|
&& aot_intrinsic_check_capability(comp_ctx, "f64.const")) {
|
||||||
min_value = F64_CONST(-2147483649.0);
|
|
||||||
max_value = F64_CONST(2147483648.0);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
min_value = F64_CONST(-1.0);
|
|
||||||
max_value = F64_CONST(4294967296.0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
WASMValue wasm_value;
|
WASMValue wasm_value;
|
||||||
if (sign) {
|
if (sign) {
|
||||||
wasm_value.f64 = -2147483649.0;
|
wasm_value.f64 = -2147483649.0;
|
||||||
|
@ -429,6 +421,16 @@ aot_compile_op_i32_trunc_f64(AOTCompContext *comp_ctx, AOTFuncContext *func_ctx,
|
||||||
comp_ctx, func_ctx->native_symbol, &wasm_value, VALUE_TYPE_F64);
|
comp_ctx, func_ctx->native_symbol, &wasm_value, VALUE_TYPE_F64);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
if (sign) {
|
||||||
|
min_value = F64_CONST(-2147483649.0);
|
||||||
|
max_value = F64_CONST(2147483648.0);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
min_value = F64_CONST(-1.0);
|
||||||
|
max_value = F64_CONST(4294967296.0);
|
||||||
|
}
|
||||||
|
}
|
||||||
CHECK_LLVM_CONST(min_value);
|
CHECK_LLVM_CONST(min_value);
|
||||||
CHECK_LLVM_CONST(max_value);
|
CHECK_LLVM_CONST(max_value);
|
||||||
|
|
||||||
|
@ -554,17 +556,8 @@ aot_compile_op_i64_trunc_f32(AOTCompContext *comp_ctx, AOTFuncContext *func_ctx,
|
||||||
|
|
||||||
POP_F32(value);
|
POP_F32(value);
|
||||||
|
|
||||||
if (!comp_ctx->is_indirect_mode) {
|
if (comp_ctx->is_indirect_mode
|
||||||
if (sign) {
|
&& aot_intrinsic_check_capability(comp_ctx, "f32.const")) {
|
||||||
min_value = F32_CONST(-9223373136366403584.0f);
|
|
||||||
max_value = F32_CONST(9223372036854775808.0f);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
min_value = F32_CONST(-1.0f);
|
|
||||||
max_value = F32_CONST(18446744073709551616.0f);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
WASMValue wasm_value;
|
WASMValue wasm_value;
|
||||||
if (sign) {
|
if (sign) {
|
||||||
wasm_value.f32 = -9223373136366403584.0f;
|
wasm_value.f32 = -9223373136366403584.0f;
|
||||||
|
@ -583,6 +576,16 @@ aot_compile_op_i64_trunc_f32(AOTCompContext *comp_ctx, AOTFuncContext *func_ctx,
|
||||||
comp_ctx, func_ctx->native_symbol, &wasm_value, VALUE_TYPE_F32);
|
comp_ctx, func_ctx->native_symbol, &wasm_value, VALUE_TYPE_F32);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
if (sign) {
|
||||||
|
min_value = F32_CONST(-9223373136366403584.0f);
|
||||||
|
max_value = F32_CONST(9223372036854775808.0f);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
min_value = F32_CONST(-1.0f);
|
||||||
|
max_value = F32_CONST(18446744073709551616.0f);
|
||||||
|
}
|
||||||
|
}
|
||||||
CHECK_LLVM_CONST(min_value);
|
CHECK_LLVM_CONST(min_value);
|
||||||
CHECK_LLVM_CONST(max_value);
|
CHECK_LLVM_CONST(max_value);
|
||||||
|
|
||||||
|
@ -607,17 +610,8 @@ aot_compile_op_i64_trunc_f64(AOTCompContext *comp_ctx, AOTFuncContext *func_ctx,
|
||||||
|
|
||||||
POP_F64(value);
|
POP_F64(value);
|
||||||
|
|
||||||
if (!comp_ctx->is_indirect_mode) {
|
if (comp_ctx->is_indirect_mode
|
||||||
if (sign) {
|
&& aot_intrinsic_check_capability(comp_ctx, "f64.const")) {
|
||||||
min_value = F64_CONST(-9223372036854777856.0);
|
|
||||||
max_value = F64_CONST(9223372036854775808.0);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
min_value = F64_CONST(-1.0);
|
|
||||||
max_value = F64_CONST(18446744073709551616.0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
WASMValue wasm_value;
|
WASMValue wasm_value;
|
||||||
if (sign) {
|
if (sign) {
|
||||||
wasm_value.f64 = -9223372036854777856.0;
|
wasm_value.f64 = -9223372036854777856.0;
|
||||||
|
@ -636,6 +630,16 @@ aot_compile_op_i64_trunc_f64(AOTCompContext *comp_ctx, AOTFuncContext *func_ctx,
|
||||||
comp_ctx, func_ctx->native_symbol, &wasm_value, VALUE_TYPE_F64);
|
comp_ctx, func_ctx->native_symbol, &wasm_value, VALUE_TYPE_F64);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
if (sign) {
|
||||||
|
min_value = F64_CONST(-9223372036854777856.0);
|
||||||
|
max_value = F64_CONST(9223372036854775808.0);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
min_value = F64_CONST(-1.0);
|
||||||
|
max_value = F64_CONST(18446744073709551616.0);
|
||||||
|
}
|
||||||
|
}
|
||||||
CHECK_LLVM_CONST(min_value);
|
CHECK_LLVM_CONST(min_value);
|
||||||
CHECK_LLVM_CONST(max_value);
|
CHECK_LLVM_CONST(max_value);
|
||||||
|
|
||||||
|
|
|
@ -345,7 +345,7 @@ aot_check_memory_overflow(AOTCompContext *comp_ctx, AOTFuncContext *func_ctx,
|
||||||
memory allocator, the hmu node includes hmu header and hmu
|
memory allocator, the hmu node includes hmu header and hmu
|
||||||
memory, only the latter is returned to the caller as the
|
memory, only the latter is returned to the caller as the
|
||||||
allocated memory, the hmu header isn't returned so the
|
allocated memory, the hmu header isn't returned so the
|
||||||
first byte of the shared heap won't be accesed, (2) using
|
first byte of the shared heap won't be accessed, (2) using
|
||||||
IntUGT gets better performance than IntUGE in some cases */
|
IntUGT gets better performance than IntUGE in some cases */
|
||||||
BUILD_ICMP(LLVMIntUGT, offset1, func_ctx->shared_heap_start_off,
|
BUILD_ICMP(LLVMIntUGT, offset1, func_ctx->shared_heap_start_off,
|
||||||
is_in_shared_heap, "is_in_shared_heap");
|
is_in_shared_heap, "is_in_shared_heap");
|
||||||
|
@ -1101,7 +1101,7 @@ aot_compile_op_memory_grow(AOTCompContext *comp_ctx, AOTFuncContext *func_ctx)
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
char *func_name = "aot_enlarge_memory";
|
char *func_name = "aot_enlarge_memory";
|
||||||
/* AOT mode, delcare the function */
|
/* AOT mode, declare the function */
|
||||||
if (!(func = LLVMGetNamedFunction(func_ctx->module, func_name))
|
if (!(func = LLVMGetNamedFunction(func_ctx->module, func_name))
|
||||||
&& !(func =
|
&& !(func =
|
||||||
LLVMAddFunction(func_ctx->module, func_name, func_type))) {
|
LLVMAddFunction(func_ctx->module, func_name, func_type))) {
|
||||||
|
@ -1184,7 +1184,7 @@ check_bulk_memory_overflow(AOTCompContext *comp_ctx, AOTFuncContext *func_ctx,
|
||||||
* Note: not throw the integer-overflow-exception here since it must
|
* Note: not throw the integer-overflow-exception here since it must
|
||||||
* have been thrown when converting float to integer before
|
* have been thrown when converting float to integer before
|
||||||
*/
|
*/
|
||||||
/* return addres directly if constant offset and inside memory space */
|
/* return address directly if constant offset and inside memory space */
|
||||||
if (LLVMIsEfficientConstInt(offset) && LLVMIsEfficientConstInt(bytes)) {
|
if (LLVMIsEfficientConstInt(offset) && LLVMIsEfficientConstInt(bytes)) {
|
||||||
uint64 mem_offset = (uint64)LLVMConstIntGetZExtValue(offset);
|
uint64 mem_offset = (uint64)LLVMConstIntGetZExtValue(offset);
|
||||||
uint64 mem_len = (uint64)LLVMConstIntGetZExtValue(bytes);
|
uint64 mem_len = (uint64)LLVMConstIntGetZExtValue(bytes);
|
||||||
|
|
|
@ -653,15 +653,22 @@ compile_int_sub(AOTCompContext *comp_ctx, LLVMValueRef left, LLVMValueRef right,
|
||||||
}
|
}
|
||||||
|
|
||||||
static LLVMValueRef
|
static LLVMValueRef
|
||||||
compile_int_mul(AOTCompContext *comp_ctx, LLVMValueRef left, LLVMValueRef right,
|
compile_int_mul(AOTCompContext *comp_ctx, AOTFuncContext *func_ctx,
|
||||||
bool is_i32)
|
LLVMValueRef left, LLVMValueRef right, bool is_i32)
|
||||||
{
|
{
|
||||||
/* If one of the operands is 0, just return constant 0 */
|
/* If one of the operands is 0, just return constant 0 */
|
||||||
if (IS_CONST_ZERO(left) || IS_CONST_ZERO(right))
|
if (IS_CONST_ZERO(left) || IS_CONST_ZERO(right))
|
||||||
return is_i32 ? I32_ZERO : I64_ZERO;
|
return is_i32 ? I32_ZERO : I64_ZERO;
|
||||||
|
|
||||||
/* Build mul */
|
/* Build mul */
|
||||||
return LLVMBuildMul(comp_ctx->builder, left, right, "mul");
|
LLVMTypeRef param_types[2];
|
||||||
|
param_types[1] = param_types[0] = is_i32 ? I32_TYPE : I64_TYPE;
|
||||||
|
|
||||||
|
LLVMValueRef res;
|
||||||
|
LLVM_BUILD_OP_OR_INTRINSIC(Mul, left, right, res,
|
||||||
|
is_i32 ? "i32.mul" : "i64.mul", "mul", false);
|
||||||
|
|
||||||
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool
|
static bool
|
||||||
|
@ -679,7 +686,8 @@ compile_op_int_arithmetic(AOTCompContext *comp_ctx, AOTFuncContext *func_ctx,
|
||||||
"compile int sub fail.");
|
"compile int sub fail.");
|
||||||
return true;
|
return true;
|
||||||
case INT_MUL:
|
case INT_MUL:
|
||||||
DEF_INT_BINARY_OP(compile_int_mul(comp_ctx, left, right, is_i32),
|
DEF_INT_BINARY_OP(
|
||||||
|
compile_int_mul(comp_ctx, func_ctx, left, right, is_i32),
|
||||||
"compile int mul fail.");
|
"compile int mul fail.");
|
||||||
return true;
|
return true;
|
||||||
case INT_DIV_S:
|
case INT_DIV_S:
|
||||||
|
@ -726,43 +734,57 @@ fail:
|
||||||
}
|
}
|
||||||
|
|
||||||
static LLVMValueRef
|
static LLVMValueRef
|
||||||
compile_int_shl(AOTCompContext *comp_ctx, LLVMValueRef left, LLVMValueRef right,
|
compile_int_shl(AOTCompContext *comp_ctx, AOTFuncContext *func_ctx,
|
||||||
bool is_i32)
|
LLVMValueRef left, LLVMValueRef right, bool is_i32)
|
||||||
{
|
{
|
||||||
LLVMValueRef res;
|
LLVMValueRef res;
|
||||||
|
|
||||||
SHIFT_COUNT_MASK;
|
SHIFT_COUNT_MASK;
|
||||||
|
|
||||||
/* Build shl */
|
/* Build shl */
|
||||||
LLVM_BUILD_OP(Shl, left, right, res, "shl", NULL);
|
LLVMTypeRef param_types[2];
|
||||||
|
param_types[1] = param_types[0] = is_i32 ? I32_TYPE : I64_TYPE;
|
||||||
|
|
||||||
|
LLVM_BUILD_OP_OR_INTRINSIC(Shl, left, right, res,
|
||||||
|
is_i32 ? "i32.shl" : "i64.shl", "shl", false);
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
static LLVMValueRef
|
static LLVMValueRef
|
||||||
compile_int_shr_s(AOTCompContext *comp_ctx, LLVMValueRef left,
|
compile_int_shr_s(AOTCompContext *comp_ctx, AOTFuncContext *func_ctx,
|
||||||
LLVMValueRef right, bool is_i32)
|
LLVMValueRef left, LLVMValueRef right, bool is_i32)
|
||||||
{
|
{
|
||||||
LLVMValueRef res;
|
LLVMValueRef res;
|
||||||
|
|
||||||
SHIFT_COUNT_MASK;
|
SHIFT_COUNT_MASK;
|
||||||
|
|
||||||
/* Build shl */
|
/* Build shl */
|
||||||
LLVM_BUILD_OP(AShr, left, right, res, "shr_s", NULL);
|
LLVMTypeRef param_types[2];
|
||||||
|
param_types[1] = param_types[0] = is_i32 ? I32_TYPE : I64_TYPE;
|
||||||
|
|
||||||
|
LLVM_BUILD_OP_OR_INTRINSIC(AShr, left, right, res,
|
||||||
|
is_i32 ? "i32.shr_s" : "i64.shr_s", "shr_s",
|
||||||
|
false);
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
static LLVMValueRef
|
static LLVMValueRef
|
||||||
compile_int_shr_u(AOTCompContext *comp_ctx, LLVMValueRef left,
|
compile_int_shr_u(AOTCompContext *comp_ctx, AOTFuncContext *func_ctx,
|
||||||
LLVMValueRef right, bool is_i32)
|
LLVMValueRef left, LLVMValueRef right, bool is_i32)
|
||||||
{
|
{
|
||||||
LLVMValueRef res;
|
LLVMValueRef res;
|
||||||
|
|
||||||
SHIFT_COUNT_MASK;
|
SHIFT_COUNT_MASK;
|
||||||
|
|
||||||
/* Build shl */
|
/* Build shl */
|
||||||
LLVM_BUILD_OP(LShr, left, right, res, "shr_u", NULL);
|
LLVMTypeRef param_types[2];
|
||||||
|
param_types[1] = param_types[0] = is_i32 ? I32_TYPE : I64_TYPE;
|
||||||
|
|
||||||
|
LLVM_BUILD_OP_OR_INTRINSIC(LShr, left, right, res,
|
||||||
|
is_i32 ? "i32.shr_u" : "i64.shr_u", "shr_u",
|
||||||
|
false);
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
@ -814,15 +836,17 @@ compile_op_int_shift(AOTCompContext *comp_ctx, AOTFuncContext *func_ctx,
|
||||||
{
|
{
|
||||||
switch (shift_op) {
|
switch (shift_op) {
|
||||||
case INT_SHL:
|
case INT_SHL:
|
||||||
DEF_INT_BINARY_OP(compile_int_shl(comp_ctx, left, right, is_i32),
|
DEF_INT_BINARY_OP(
|
||||||
NULL);
|
compile_int_shl(comp_ctx, func_ctx, left, right, is_i32), NULL);
|
||||||
return true;
|
return true;
|
||||||
case INT_SHR_S:
|
case INT_SHR_S:
|
||||||
DEF_INT_BINARY_OP(compile_int_shr_s(comp_ctx, left, right, is_i32),
|
DEF_INT_BINARY_OP(
|
||||||
|
compile_int_shr_s(comp_ctx, func_ctx, left, right, is_i32),
|
||||||
NULL);
|
NULL);
|
||||||
return true;
|
return true;
|
||||||
case INT_SHR_U:
|
case INT_SHR_U:
|
||||||
DEF_INT_BINARY_OP(compile_int_shr_u(comp_ctx, left, right, is_i32),
|
DEF_INT_BINARY_OP(
|
||||||
|
compile_int_shr_u(comp_ctx, func_ctx, left, right, is_i32),
|
||||||
NULL);
|
NULL);
|
||||||
return true;
|
return true;
|
||||||
case INT_ROTL:
|
case INT_ROTL:
|
||||||
|
|
|
@ -711,8 +711,7 @@ aot_add_llvm_func(AOTCompContext *comp_ctx, LLVMModuleRef module,
|
||||||
prefix)))
|
prefix)))
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
if (comp_ctx->is_indirect_mode) {
|
if (comp_ctx->disable_llvm_jump_tables) {
|
||||||
/* avoid LUT relocations ("switch-table") */
|
|
||||||
LLVMAttributeRef attr_no_jump_tables = LLVMCreateStringAttribute(
|
LLVMAttributeRef attr_no_jump_tables = LLVMCreateStringAttribute(
|
||||||
comp_ctx->context, "no-jump-tables",
|
comp_ctx->context, "no-jump-tables",
|
||||||
(uint32)strlen("no-jump-tables"), "true", (uint32)strlen("true"));
|
(uint32)strlen("no-jump-tables"), "true", (uint32)strlen("true"));
|
||||||
|
@ -1720,7 +1719,7 @@ aot_create_stack_sizes(const AOTCompData *comp_data, AOTCompContext *comp_ctx)
|
||||||
* This value is a placeholder, which will be replaced
|
* This value is a placeholder, which will be replaced
|
||||||
* after the corresponding functions are compiled.
|
* after the corresponding functions are compiled.
|
||||||
*
|
*
|
||||||
* Don't use zeros becasue LLVM can optimize them to
|
* Don't use zeros because LLVM can optimize them to
|
||||||
* zeroinitializer.
|
* zeroinitializer.
|
||||||
*/
|
*/
|
||||||
values[i] = I32_NEG_ONE;
|
values[i] = I32_NEG_ONE;
|
||||||
|
@ -2354,7 +2353,7 @@ create_target_machine_detect_host(AOTCompContext *comp_ctx)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!LLVMTargetHasJIT(target)) {
|
if (!LLVMTargetHasJIT(target)) {
|
||||||
aot_set_last_error("unspported JIT on this platform.");
|
aot_set_last_error("unsupported JIT on this platform.");
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2521,7 +2520,8 @@ aot_compiler_init(void)
|
||||||
LLVMInitializeCore(LLVMGetGlobalPassRegistry());
|
LLVMInitializeCore(LLVMGetGlobalPassRegistry());
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if WASM_ENABLE_WAMR_COMPILER != 0
|
/* fuzzing only use host targets for simple */
|
||||||
|
#if WASM_ENABLE_WAMR_COMPILER != 0 && WASM_ENABLE_FUZZ_TEST == 0
|
||||||
/* Init environment of all targets for AOT compiler */
|
/* Init environment of all targets for AOT compiler */
|
||||||
LLVMInitializeAllTargetInfos();
|
LLVMInitializeAllTargetInfos();
|
||||||
LLVMInitializeAllTargets();
|
LLVMInitializeAllTargets();
|
||||||
|
@ -2664,12 +2664,18 @@ aot_create_comp_context(const AOTCompData *comp_data, aot_comp_option_t option)
|
||||||
if (option->enable_aux_stack_check)
|
if (option->enable_aux_stack_check)
|
||||||
comp_ctx->enable_aux_stack_check = true;
|
comp_ctx->enable_aux_stack_check = true;
|
||||||
|
|
||||||
if (option->is_indirect_mode)
|
if (option->is_indirect_mode) {
|
||||||
comp_ctx->is_indirect_mode = true;
|
comp_ctx->is_indirect_mode = true;
|
||||||
|
/* avoid LUT relocations ("switch-table") */
|
||||||
|
comp_ctx->disable_llvm_jump_tables = true;
|
||||||
|
}
|
||||||
|
|
||||||
if (option->disable_llvm_intrinsics)
|
if (option->disable_llvm_intrinsics)
|
||||||
comp_ctx->disable_llvm_intrinsics = true;
|
comp_ctx->disable_llvm_intrinsics = true;
|
||||||
|
|
||||||
|
if (option->disable_llvm_jump_tables)
|
||||||
|
comp_ctx->disable_llvm_jump_tables = true;
|
||||||
|
|
||||||
if (option->disable_llvm_lto)
|
if (option->disable_llvm_lto)
|
||||||
comp_ctx->disable_llvm_lto = true;
|
comp_ctx->disable_llvm_lto = true;
|
||||||
|
|
||||||
|
@ -2736,10 +2742,23 @@ aot_create_comp_context(const AOTCompData *comp_data, aot_comp_option_t option)
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
/* Create LLVM target machine */
|
/* Create LLVM target machine */
|
||||||
|
if (!option->target_arch || !strstr(option->target_arch, "-")) {
|
||||||
|
/* Retrieve the target triple based on user input */
|
||||||
|
triple = NULL;
|
||||||
arch = option->target_arch;
|
arch = option->target_arch;
|
||||||
abi = option->target_abi;
|
abi = option->target_abi;
|
||||||
cpu = option->target_cpu;
|
cpu = option->target_cpu;
|
||||||
features = option->cpu_features;
|
features = option->cpu_features;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
/* Form a target triple */
|
||||||
|
triple = option->target_arch;
|
||||||
|
arch = NULL;
|
||||||
|
abi = NULL;
|
||||||
|
cpu = NULL;
|
||||||
|
features = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
opt_level = option->opt_level;
|
opt_level = option->opt_level;
|
||||||
size_level = option->size_level;
|
size_level = option->size_level;
|
||||||
|
|
||||||
|
@ -2980,6 +2999,7 @@ aot_create_comp_context(const AOTCompData *comp_data, aot_comp_option_t option)
|
||||||
aot_set_last_error(buf);
|
aot_set_last_error(buf);
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
LOG_VERBOSE("triple: %s => normailized: %s", triple, triple_norm);
|
||||||
if (!cpu)
|
if (!cpu)
|
||||||
cpu = "";
|
cpu = "";
|
||||||
}
|
}
|
||||||
|
@ -3334,6 +3354,11 @@ aot_destroy_comp_context(AOTCompContext *comp_ctx)
|
||||||
if (comp_ctx->builder)
|
if (comp_ctx->builder)
|
||||||
LLVMDisposeBuilder(comp_ctx->builder);
|
LLVMDisposeBuilder(comp_ctx->builder);
|
||||||
|
|
||||||
|
#if WASM_ENABLE_DEBUG_AOT != 0
|
||||||
|
if (comp_ctx->debug_builder)
|
||||||
|
LLVMDisposeDIBuilder(comp_ctx->debug_builder);
|
||||||
|
#endif
|
||||||
|
|
||||||
if (comp_ctx->orc_thread_safe_context)
|
if (comp_ctx->orc_thread_safe_context)
|
||||||
LLVMOrcDisposeThreadSafeContext(comp_ctx->orc_thread_safe_context);
|
LLVMOrcDisposeThreadSafeContext(comp_ctx->orc_thread_safe_context);
|
||||||
|
|
||||||
|
@ -3407,7 +3432,7 @@ aot_get_native_symbol_index(AOTCompContext *comp_ctx, const char *symbol)
|
||||||
|
|
||||||
sym = bh_list_first_elem(&comp_ctx->native_symbols);
|
sym = bh_list_first_elem(&comp_ctx->native_symbols);
|
||||||
|
|
||||||
/* Lookup an existing symobl record */
|
/* Lookup an existing symbol record */
|
||||||
|
|
||||||
while (sym) {
|
while (sym) {
|
||||||
if (strcmp(sym->symbol, symbol) == 0) {
|
if (strcmp(sym->symbol, symbol) == 0) {
|
||||||
|
|
|
@ -448,6 +448,9 @@ typedef struct AOTCompContext {
|
||||||
/* Disable LLVM built-in intrinsics */
|
/* Disable LLVM built-in intrinsics */
|
||||||
bool disable_llvm_intrinsics;
|
bool disable_llvm_intrinsics;
|
||||||
|
|
||||||
|
/* Disable LLVM jump tables */
|
||||||
|
bool disable_llvm_jump_tables;
|
||||||
|
|
||||||
/* Disable LLVM link time optimization */
|
/* Disable LLVM link time optimization */
|
||||||
bool disable_llvm_lto;
|
bool disable_llvm_lto;
|
||||||
|
|
||||||
|
|
|
@ -318,10 +318,15 @@ aot_apply_llvm_new_pass_manager(AOTCompContext *comp_ctx, LLVMModuleRef module)
|
||||||
ModulePassManager MPM;
|
ModulePassManager MPM;
|
||||||
|
|
||||||
if (comp_ctx->is_jit_mode) {
|
if (comp_ctx->is_jit_mode) {
|
||||||
|
#if LLVM_VERSION_MAJOR >= 18
|
||||||
|
#define INSTCOMBINE "instcombine<no-verify-fixpoint>"
|
||||||
|
#else
|
||||||
|
#define INSTCOMBINE "instcombine"
|
||||||
|
#endif
|
||||||
const char *Passes =
|
const char *Passes =
|
||||||
"loop-vectorize,slp-vectorizer,"
|
"loop-vectorize,slp-vectorizer,"
|
||||||
"load-store-vectorizer,vector-combine,"
|
"load-store-vectorizer,vector-combine,"
|
||||||
"mem2reg,instcombine,simplifycfg,jump-threading,indvars";
|
"mem2reg," INSTCOMBINE ",simplifycfg,jump-threading,indvars";
|
||||||
ExitOnErr(PB.parsePassPipeline(MPM, Passes));
|
ExitOnErr(PB.parsePassPipeline(MPM, Passes));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
|
@ -159,6 +159,17 @@ LLVMCreateTargetMachineWithOpts(LLVMTargetRef ctarget, const char *triple,
|
||||||
auto cm = convert(code_model, &jit);
|
auto cm = convert(code_model, &jit);
|
||||||
auto targetmachine = target->createTargetMachine(triple, cpu, features,
|
auto targetmachine = target->createTargetMachine(triple, cpu, features,
|
||||||
opts, rm, cm, ol, jit);
|
opts, rm, cm, ol, jit);
|
||||||
|
#if LLVM_VERSION_MAJOR >= 18
|
||||||
|
// always place data in normal data section.
|
||||||
|
//
|
||||||
|
// note that:
|
||||||
|
// - our aot file emitter/loader doesn't support x86-64 large data
|
||||||
|
// sections. (eg .lrodata)
|
||||||
|
// - for our purposes, "data" is usually something the compiler
|
||||||
|
// generated. (eg. jump tables) we probably never benefit from
|
||||||
|
// large data sections.
|
||||||
|
targetmachine->setLargeDataThreshold(UINT64_MAX);
|
||||||
|
#endif
|
||||||
return reinterpret_cast<LLVMTargetMachineRef>(targetmachine);
|
return reinterpret_cast<LLVMTargetMachineRef>(targetmachine);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -311,14 +311,18 @@ lldb_function_to_function_dbi(const AOTCompContext *comp_ctx,
|
||||||
case eLanguageTypeC:
|
case eLanguageTypeC:
|
||||||
case eLanguageTypeC99:
|
case eLanguageTypeC99:
|
||||||
case eLanguageTypeC11:
|
case eLanguageTypeC11:
|
||||||
|
#if LLVM_VERSION_MAJOR >= 17
|
||||||
case eLanguageTypeC17:
|
case eLanguageTypeC17:
|
||||||
|
#endif
|
||||||
break;
|
break;
|
||||||
case eLanguageTypeC_plus_plus:
|
case eLanguageTypeC_plus_plus:
|
||||||
case eLanguageTypeC_plus_plus_03:
|
case eLanguageTypeC_plus_plus_03:
|
||||||
case eLanguageTypeC_plus_plus_11:
|
case eLanguageTypeC_plus_plus_11:
|
||||||
case eLanguageTypeC_plus_plus_14:
|
case eLanguageTypeC_plus_plus_14:
|
||||||
|
#if LLVM_VERSION_MAJOR >= 17
|
||||||
case eLanguageTypeC_plus_plus_17:
|
case eLanguageTypeC_plus_plus_17:
|
||||||
case eLanguageTypeC_plus_plus_20:
|
case eLanguageTypeC_plus_plus_20:
|
||||||
|
#endif
|
||||||
cplusplus = true;
|
cplusplus = true;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -17,7 +17,7 @@ endif()
|
||||||
|
|
||||||
set (IWASM_COMPL_SOURCE ${source_all})
|
set (IWASM_COMPL_SOURCE ${source_all})
|
||||||
|
|
||||||
# Disalbe rtti to works with LLVM
|
# Disable rtti to works with LLVM
|
||||||
|
|
||||||
if (MSVC)
|
if (MSVC)
|
||||||
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /GR-")
|
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /GR-")
|
||||||
|
|
|
@ -32,7 +32,7 @@ simd_integer_arith(AOTCompContext *comp_ctx, AOTFuncContext *func_ctx,
|
||||||
result = LLVMBuildMul(comp_ctx->builder, lhs, rhs, "product");
|
result = LLVMBuildMul(comp_ctx->builder, lhs, rhs, "product");
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
HANDLE_FAILURE("Unsupport arith_op");
|
HANDLE_FAILURE("Unsupported arith_op");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -423,7 +423,7 @@ jmp_from_label_to_label(x86::Assembler &a, bh_list *jmp_info_list,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Encode detecting compare result register according to condition code
|
* Encode detecting compare result register according to condition code
|
||||||
* and then jumping to suitable label when the condtion is met
|
* and then jumping to suitable label when the condition is met
|
||||||
*
|
*
|
||||||
* @param cc the compiler context
|
* @param cc the compiler context
|
||||||
* @param a the assembler to emit the code
|
* @param a the assembler to emit the code
|
||||||
|
@ -431,7 +431,7 @@ jmp_from_label_to_label(x86::Assembler &a, bh_list *jmp_info_list,
|
||||||
* @param label_src the index of src label
|
* @param label_src the index of src label
|
||||||
* @param op the opcode of condition operation
|
* @param op the opcode of condition operation
|
||||||
* @param r1 the label info when condition is met
|
* @param r1 the label info when condition is met
|
||||||
* @param r2 the label info when condition is unmet, do nonthing if VOID
|
* @param r2 the label info when condition is unmet, do nothing if VOID
|
||||||
* @param is_last_insn if current insn is the last insn of current block
|
* @param is_last_insn if current insn is the last insn of current block
|
||||||
*
|
*
|
||||||
* @return true if success, false if failed
|
* @return true if success, false if failed
|
||||||
|
@ -2589,7 +2589,7 @@ alu_r_r_r_i32(x86::Assembler &a, ALU_OP op, int32 reg_no_dst, int32 reg_no1_src,
|
||||||
if (reg_no2_src == REG_EDX_IDX) {
|
if (reg_no2_src == REG_EDX_IDX) {
|
||||||
/* convert `REM_S edx, eax, edx` into
|
/* convert `REM_S edx, eax, edx` into
|
||||||
`mov esi, edx` and `REM_S edx eax, rsi` to
|
`mov esi, edx` and `REM_S edx eax, rsi` to
|
||||||
avoid overwritting edx when a.cdq() */
|
avoid overwriting edx when a.cdq() */
|
||||||
a.mov(regs_i32[REG_I32_FREE_IDX], regs_i32[REG_EDX_IDX]);
|
a.mov(regs_i32[REG_I32_FREE_IDX], regs_i32[REG_EDX_IDX]);
|
||||||
reg_no2_src = REG_I32_FREE_IDX;
|
reg_no2_src = REG_I32_FREE_IDX;
|
||||||
}
|
}
|
||||||
|
@ -2609,7 +2609,7 @@ alu_r_r_r_i32(x86::Assembler &a, ALU_OP op, int32 reg_no_dst, int32 reg_no1_src,
|
||||||
if (reg_no2_src == REG_EDX_IDX) {
|
if (reg_no2_src == REG_EDX_IDX) {
|
||||||
/* convert `REM_U edx, eax, edx` into
|
/* convert `REM_U edx, eax, edx` into
|
||||||
`mov esi, edx` and `REM_U edx eax, rsi` to
|
`mov esi, edx` and `REM_U edx eax, rsi` to
|
||||||
avoid overwritting edx when unsigned extend
|
avoid overwriting edx when unsigned extend
|
||||||
eax to edx:eax */
|
eax to edx:eax */
|
||||||
a.mov(regs_i32[REG_I32_FREE_IDX], regs_i32[REG_EDX_IDX]);
|
a.mov(regs_i32[REG_I32_FREE_IDX], regs_i32[REG_EDX_IDX]);
|
||||||
reg_no2_src = REG_I32_FREE_IDX;
|
reg_no2_src = REG_I32_FREE_IDX;
|
||||||
|
@ -5602,7 +5602,7 @@ fail:
|
||||||
a.jmp(imm); \
|
a.jmp(imm); \
|
||||||
if (!err_handler->err) { \
|
if (!err_handler->err) { \
|
||||||
/* The offset written by asmjit is always 0, we patch it \
|
/* The offset written by asmjit is always 0, we patch it \
|
||||||
again, 6 is the size of jmp instruciton */ \
|
again, 6 is the size of jmp instruction */ \
|
||||||
stream = (char *)a.code()->sectionById(0)->buffer().data() \
|
stream = (char *)a.code()->sectionById(0)->buffer().data() \
|
||||||
+ a.code()->sectionById(0)->buffer().size() - 6; \
|
+ a.code()->sectionById(0)->buffer().size() - 6; \
|
||||||
_offset = label_offsets[label_dst] \
|
_offset = label_offsets[label_dst] \
|
||||||
|
@ -6169,7 +6169,7 @@ fail:
|
||||||
* Replace all the jmp address pre-saved when the code cache hasn't been
|
* Replace all the jmp address pre-saved when the code cache hasn't been
|
||||||
* allocated with actual address after code cache allocated
|
* allocated with actual address after code cache allocated
|
||||||
*
|
*
|
||||||
* @param cc compiler context containting the allocated code cacha info
|
* @param cc compiler context containing the allocated code cacha info
|
||||||
* @param jmp_info_list the jmp info list
|
* @param jmp_info_list the jmp info list
|
||||||
*/
|
*/
|
||||||
static void
|
static void
|
||||||
|
@ -6557,7 +6557,7 @@ at_cmpxchg_r_ra_base_r_offset_imm(x86::Assembler &a, uint32 bytes_dst,
|
||||||
* @param a the assembler to emit the code
|
* @param a the assembler to emit the code
|
||||||
* @param bytes_dst the bytes number of the data to actual operated on(load,
|
* @param bytes_dst the bytes number of the data to actual operated on(load,
|
||||||
* compare, replacement) could be 1(byte), 2(short), 4(int32), 8(int64)
|
* compare, replacement) could be 1(byte), 2(short), 4(int32), 8(int64)
|
||||||
* @param data_xchg the immediate data for exchange(conditionally replacment
|
* @param data_xchg the immediate data for exchange(conditionally replacement
|
||||||
* value)
|
* value)
|
||||||
* @param reg_no_base the no of register that stores the base address
|
* @param reg_no_base the no of register that stores the base address
|
||||||
* of src&dst memory
|
* of src&dst memory
|
||||||
|
@ -6587,7 +6587,7 @@ at_cmpxchg_imm_ra_base_r_offset_r(x86::Assembler &a, uint32 bytes_dst,
|
||||||
* @param a the assembler to emit the code
|
* @param a the assembler to emit the code
|
||||||
* @param bytes_dst the bytes number of the data to actual operated on(load,
|
* @param bytes_dst the bytes number of the data to actual operated on(load,
|
||||||
* compare, replacement) could be 1(byte), 2(short), 4(int32), 8(int64)
|
* compare, replacement) could be 1(byte), 2(short), 4(int32), 8(int64)
|
||||||
* @param data_xchg the immediate data for exchange(conditionally replacment
|
* @param data_xchg the immediate data for exchange(conditionally replacement
|
||||||
* value)
|
* value)
|
||||||
* @param reg_no_base the no of register that stores the base address
|
* @param reg_no_base the no of register that stores the base address
|
||||||
* of src&dst memory
|
* of src&dst memory
|
||||||
|
@ -8820,7 +8820,7 @@ jit_codegen_compile_call_to_fast_jit(const WASMModule *module, uint32 func_idx)
|
||||||
|
|
||||||
/* If yes, set eax to 0, return to caller */
|
/* If yes, set eax to 0, return to caller */
|
||||||
|
|
||||||
/* Pop all integer arument registers */
|
/* Pop all integer argument registers */
|
||||||
for (i = 0; i < MAX_REG_INTS; i++) {
|
for (i = 0; i < MAX_REG_INTS; i++) {
|
||||||
a.pop(regs_i64[reg_idx_of_int_args[i]]);
|
a.pop(regs_i64[reg_idx_of_int_args[i]]);
|
||||||
}
|
}
|
||||||
|
@ -9084,7 +9084,7 @@ jit_codegen_compile_call_to_fast_jit(const WASMModule *module, uint32 func_idx)
|
||||||
a.mov(m, x86::rdx);
|
a.mov(m, x86::rdx);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Pop all integer arument registers */
|
/* Pop all integer argument registers */
|
||||||
for (i = 0; i < MAX_REG_INTS; i++) {
|
for (i = 0; i < MAX_REG_INTS; i++) {
|
||||||
a.pop(regs_i64[reg_idx_of_int_args[i]]);
|
a.pop(regs_i64[reg_idx_of_int_args[i]]);
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,7 +14,7 @@ jit_compile_op_compare_integer(JitCompContext *cc, IntCond cond, bool is64Bit)
|
||||||
JitReg lhs, rhs, res, const_zero, const_one;
|
JitReg lhs, rhs, res, const_zero, const_one;
|
||||||
|
|
||||||
if (cond < INT_EQZ || cond > INT_GE_U) {
|
if (cond < INT_EQZ || cond > INT_GE_U) {
|
||||||
jit_set_last_error(cc, "unsupported comparation operation");
|
jit_set_last_error(cc, "unsupported comparison operation");
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1230,7 +1230,7 @@ jit_compile_op_br_table(JitCompContext *cc, uint32 *br_depths, uint32 br_count,
|
||||||
copy_arities = check_copy_arities(block_dst, cc->jit_frame);
|
copy_arities = check_copy_arities(block_dst, cc->jit_frame);
|
||||||
|
|
||||||
if (!copy_arities) {
|
if (!copy_arities) {
|
||||||
/* No need to create new basic block, direclty jump to
|
/* No need to create new basic block, directly jump to
|
||||||
the existing basic block when no need to copy arities */
|
the existing basic block when no need to copy arities */
|
||||||
if (i == br_count) {
|
if (i == br_count) {
|
||||||
if (block_dst->label_type == LABEL_TYPE_LOOP) {
|
if (block_dst->label_type == LABEL_TYPE_LOOP) {
|
||||||
|
|
|
@ -1,8 +1,14 @@
|
||||||
# Copyright (C) 2019 Intel Corporation. All rights reserved.
|
# Copyright (C) 2019 Intel Corporation. All rights reserved.
|
||||||
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||||
|
|
||||||
set (IWASM_FAST_JIT_DIR ${CMAKE_CURRENT_LIST_DIR})
|
# Yes. To solve the compatibility issue with CMAKE (>= 4.0), we need to update
|
||||||
|
# our `cmake_minimum_required()` to 3.5. However, there are CMakeLists.txt
|
||||||
|
# from 3rd parties that we should not alter. Therefore, in addition to
|
||||||
|
# changing the `cmake_minimum_required()`, we should also add a configuration
|
||||||
|
# here that is compatible with earlier versions.
|
||||||
|
set(CMAKE_POLICY_VERSION_MINIMUM 3.5 FORCE)
|
||||||
|
|
||||||
|
set (IWASM_FAST_JIT_DIR ${CMAKE_CURRENT_LIST_DIR})
|
||||||
add_definitions(-DWASM_ENABLE_FAST_JIT=1)
|
add_definitions(-DWASM_ENABLE_FAST_JIT=1)
|
||||||
if (WAMR_BUILD_FAST_JIT_DUMP EQUAL 1)
|
if (WAMR_BUILD_FAST_JIT_DUMP EQUAL 1)
|
||||||
add_definitions(-DWASM_ENABLE_FAST_JIT_DUMP=1)
|
add_definitions(-DWASM_ENABLE_FAST_JIT_DUMP=1)
|
||||||
|
|
|
@ -31,7 +31,7 @@ get_global_base_offset(const WASMModule *module)
|
||||||
* (module->import_memory_count + module->memory_count);
|
* (module->import_memory_count + module->memory_count);
|
||||||
|
|
||||||
#if WASM_ENABLE_JIT != 0
|
#if WASM_ENABLE_JIT != 0
|
||||||
/* If the module dosen't have memory, reserve one mem_info space
|
/* If the module doesn't have memory, reserve one mem_info space
|
||||||
with empty content to align with llvm jit compiler */
|
with empty content to align with llvm jit compiler */
|
||||||
if (mem_inst_size == 0)
|
if (mem_inst_size == 0)
|
||||||
mem_inst_size = (uint32)sizeof(WASMMemoryInstance);
|
mem_inst_size = (uint32)sizeof(WASMMemoryInstance);
|
||||||
|
@ -1169,7 +1169,7 @@ init_func_translation(JitCompContext *cc)
|
||||||
time_started = jit_cc_new_reg_I64(cc);
|
time_started = jit_cc_new_reg_I64(cc);
|
||||||
/* Call os_time_thread_cputime_us() to get time_started firstly
|
/* Call os_time_thread_cputime_us() to get time_started firstly
|
||||||
as there is stack frame switching below, calling native in them
|
as there is stack frame switching below, calling native in them
|
||||||
may cause register spilling work inproperly */
|
may cause register spilling work improperly */
|
||||||
if (!jit_emit_callnative(cc, os_time_thread_cputime_us, time_started, NULL,
|
if (!jit_emit_callnative(cc, os_time_thread_cputime_us, time_started, NULL,
|
||||||
0)) {
|
0)) {
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
|
@ -94,7 +94,7 @@ typedef uint32 JitReg;
|
||||||
/*
|
/*
|
||||||
* Constant index flag of non-constant-value (constant value flag is
|
* Constant index flag of non-constant-value (constant value flag is
|
||||||
* not set in register no. field) integer, floating point and vector
|
* not set in register no. field) integer, floating point and vector
|
||||||
* regisers. If this flag is set, the rest bits of the register
|
* registers. If this flag is set, the rest bits of the register
|
||||||
* no. represent an index to the constant value table of the
|
* no. represent an index to the constant value table of the
|
||||||
* corresponding type of the register and the register is read-only.
|
* corresponding type of the register and the register is read-only.
|
||||||
*/
|
*/
|
||||||
|
@ -1084,7 +1084,7 @@ typedef struct JitCompContext {
|
||||||
/* Capacity of register annotations of each kind. */
|
/* Capacity of register annotations of each kind. */
|
||||||
uint32 _capacity[JIT_REG_KIND_L32];
|
uint32 _capacity[JIT_REG_KIND_L32];
|
||||||
|
|
||||||
/* Constant vallues of each kind. */
|
/* Constant values of each kind. */
|
||||||
uint8 *_value[JIT_REG_KIND_L32];
|
uint8 *_value[JIT_REG_KIND_L32];
|
||||||
|
|
||||||
/* Next element on the list of values with the same hash code. */
|
/* Next element on the list of values with the same hash code. */
|
||||||
|
@ -1145,7 +1145,7 @@ typedef struct JitCompContext {
|
||||||
JitInsn **_table;
|
JitInsn **_table;
|
||||||
} _insn_hash_table;
|
} _insn_hash_table;
|
||||||
|
|
||||||
/* indicate if the last comparision is about floating-point numbers or not
|
/* indicate if the last comparison is about floating-point numbers or not
|
||||||
*/
|
*/
|
||||||
bool last_cmp_on_fp;
|
bool last_cmp_on_fp;
|
||||||
} JitCompContext;
|
} JitCompContext;
|
||||||
|
@ -1203,7 +1203,7 @@ typedef struct JitCompContext {
|
||||||
* Annotation disabling functions jit_annl_disable_NAME,
|
* Annotation disabling functions jit_annl_disable_NAME,
|
||||||
* jit_anni_disable_NAME and jit_annr_disable_NAME, which release
|
* jit_anni_disable_NAME and jit_annr_disable_NAME, which release
|
||||||
* memory of the annotations. Before calling these functions,
|
* memory of the annotations. Before calling these functions,
|
||||||
* resources owned by the annotations must be explictely released.
|
* resources owned by the annotations must be explicitly released.
|
||||||
*/
|
*/
|
||||||
#define ANN_LABEL(TYPE, NAME) void jit_annl_disable_##NAME(JitCompContext *cc);
|
#define ANN_LABEL(TYPE, NAME) void jit_annl_disable_##NAME(JitCompContext *cc);
|
||||||
#define ANN_INSN(TYPE, NAME) void jit_anni_disable_##NAME(JitCompContext *cc);
|
#define ANN_INSN(TYPE, NAME) void jit_anni_disable_##NAME(JitCompContext *cc);
|
||||||
|
@ -1559,7 +1559,7 @@ _jit_cc_new_insn_norm(JitCompContext *cc, JitReg *result, JitInsn *insn);
|
||||||
*
|
*
|
||||||
* @param cc the compilationo context
|
* @param cc the compilationo context
|
||||||
* @param result returned result of the instruction. If the value is
|
* @param result returned result of the instruction. If the value is
|
||||||
* non-zero, it is the result of the constant-folding or an exsiting
|
* non-zero, it is the result of the constant-folding or an existing
|
||||||
* equivalent instruction, in which case no instruction is added into
|
* equivalent instruction, in which case no instruction is added into
|
||||||
* the compilation context. Otherwise, a new normalized instruction
|
* the compilation context. Otherwise, a new normalized instruction
|
||||||
* has been added into the compilation context.
|
* has been added into the compilation context.
|
||||||
|
|
|
@ -221,7 +221,7 @@ get_reg_stride(JitReg reg)
|
||||||
* @param rc the regalloc context
|
* @param rc the regalloc context
|
||||||
* @param vreg the virtual register
|
* @param vreg the virtual register
|
||||||
*
|
*
|
||||||
* @return the spill slot encoded in a consant register
|
* @return the spill slot encoded in a constant register
|
||||||
*/
|
*/
|
||||||
static JitReg
|
static JitReg
|
||||||
rc_alloc_spill_slot(RegallocContext *rc, JitReg vreg)
|
rc_alloc_spill_slot(RegallocContext *rc, JitReg vreg)
|
||||||
|
@ -478,7 +478,7 @@ reload_vreg(RegallocContext *rc, JitReg vreg, JitInsn *cur_insn)
|
||||||
JitReg fp_reg = rc->cc->fp_reg, offset;
|
JitReg fp_reg = rc->cc->fp_reg, offset;
|
||||||
|
|
||||||
if (!vr->slot && !(vr->slot = rc_alloc_spill_slot(rc, vreg)))
|
if (!vr->slot && !(vr->slot = rc_alloc_spill_slot(rc, vreg)))
|
||||||
/* Cannot allocte spill slot (due to OOM or frame size limit). */
|
/* Cannot allocate spill slot (due to OOM or frame size limit). */
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
offset = offset_of_spill_slot(rc->cc, vr->slot);
|
offset = offset_of_spill_slot(rc->cc, vr->slot);
|
||||||
|
@ -579,7 +579,7 @@ spill_vreg(RegallocContext *rc, JitReg vreg, JitInsn *cur_insn)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Allocate a hard register for the virtual register. Necessary
|
* Allocate a hard register for the virtual register. Necessary
|
||||||
* reloade instruction will be inserted after the given instruction.
|
* reload instruction will be inserted after the given instruction.
|
||||||
*
|
*
|
||||||
* @param rc the regalloc context
|
* @param rc the regalloc context
|
||||||
* @param vreg the virtual register
|
* @param vreg the virtual register
|
||||||
|
@ -665,7 +665,7 @@ allocate_hreg(RegallocContext *rc, JitReg vreg, JitInsn *insn, int distance)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Allocate a hard register for the virtual register if not allocated
|
* Allocate a hard register for the virtual register if not allocated
|
||||||
* yet. Necessary spill and reloade instructions will be inserted
|
* yet. Necessary spill and reload instructions will be inserted
|
||||||
* before/after and after the given instruction. This operation will
|
* before/after and after the given instruction. This operation will
|
||||||
* convert the virtual register's state from 1 or 3 to 2.
|
* convert the virtual register's state from 1 or 3 to 2.
|
||||||
*
|
*
|
||||||
|
|
|
@ -8,6 +8,10 @@
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
/* Enables or disables bounds checks for stack frames. When enabled, the AOT
|
/* Enables or disables bounds checks for stack frames. When enabled, the AOT
|
||||||
* compiler generates code to check if the stack pointer is within the
|
* compiler generates code to check if the stack pointer is within the
|
||||||
|
@ -69,6 +73,7 @@ typedef struct AOTCompOption {
|
||||||
bool enable_perf_profiling;
|
bool enable_perf_profiling;
|
||||||
bool enable_memory_profiling;
|
bool enable_memory_profiling;
|
||||||
bool disable_llvm_intrinsics;
|
bool disable_llvm_intrinsics;
|
||||||
|
bool disable_llvm_jump_tables;
|
||||||
bool disable_llvm_lto;
|
bool disable_llvm_lto;
|
||||||
bool enable_llvm_pgo;
|
bool enable_llvm_pgo;
|
||||||
bool enable_stack_estimation;
|
bool enable_stack_estimation;
|
||||||
|
@ -88,4 +93,8 @@ typedef struct AOTCompOption {
|
||||||
const char *builtin_intrinsics;
|
const char *builtin_intrinsics;
|
||||||
} AOTCompOption, *aot_comp_option_t;
|
} AOTCompOption, *aot_comp_option_t;
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#endif /* end of __AOT_COMP_OPTION_H__ */
|
||||||
|
|
|
@ -46,7 +46,7 @@ extern "C" {
|
||||||
// Auxiliaries
|
// Auxiliaries
|
||||||
|
|
||||||
// Machine types
|
// Machine types
|
||||||
#if (__STDC_VERSION__) > 199901L
|
#if defined(__STDC_VERSION__) && (__STDC_VERSION__) > 199901L
|
||||||
inline void assertions(void) {
|
inline void assertions(void) {
|
||||||
static_assert(sizeof(float) == sizeof(uint32_t), "incompatible float type");
|
static_assert(sizeof(float) == sizeof(uint32_t), "incompatible float type");
|
||||||
static_assert(sizeof(double) == sizeof(uint64_t), "incompatible double type");
|
static_assert(sizeof(double) == sizeof(uint64_t), "incompatible double type");
|
||||||
|
|
|
@ -126,6 +126,21 @@ typedef WASMFunctionInstanceCommon *wasm_function_inst_t;
|
||||||
struct WASMMemoryInstance;
|
struct WASMMemoryInstance;
|
||||||
typedef struct WASMMemoryInstance *wasm_memory_inst_t;
|
typedef struct WASMMemoryInstance *wasm_memory_inst_t;
|
||||||
|
|
||||||
|
typedef struct wasm_frame_t {
|
||||||
|
/* wasm_instance_t */
|
||||||
|
void *instance;
|
||||||
|
uint32_t module_offset;
|
||||||
|
uint32_t func_index;
|
||||||
|
uint32_t func_offset;
|
||||||
|
const char *func_name_wp;
|
||||||
|
|
||||||
|
uint32_t *sp;
|
||||||
|
uint8_t *frame_ref;
|
||||||
|
uint32_t *lp;
|
||||||
|
} WASMCApiFrame;
|
||||||
|
|
||||||
|
typedef WASMCApiFrame wasm_frame_t;
|
||||||
|
|
||||||
/* WASM section */
|
/* WASM section */
|
||||||
typedef struct wasm_section_t {
|
typedef struct wasm_section_t {
|
||||||
struct wasm_section_t *next;
|
struct wasm_section_t *next;
|
||||||
|
@ -865,6 +880,35 @@ wasm_runtime_create_exec_env(wasm_module_inst_t module_inst,
|
||||||
WASM_RUNTIME_API_EXTERN void
|
WASM_RUNTIME_API_EXTERN void
|
||||||
wasm_runtime_destroy_exec_env(wasm_exec_env_t exec_env);
|
wasm_runtime_destroy_exec_env(wasm_exec_env_t exec_env);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Copy callstack frames.
|
||||||
|
*
|
||||||
|
* Caution: This is not a thread-safe function. Ensure the exec_env
|
||||||
|
* is suspended before calling it from another thread.
|
||||||
|
*
|
||||||
|
* Usage: In the callback to read frames fields use APIs
|
||||||
|
* for wasm_frame_t from wasm_c_api.h
|
||||||
|
*
|
||||||
|
* Note: The function is async-signal-safe if called with verified arguments.
|
||||||
|
* Meaning it's safe to call it from a signal handler even on a signal
|
||||||
|
* interruption from another thread if next variables hold valid pointers
|
||||||
|
* - exec_env
|
||||||
|
* - exec_env->module_inst
|
||||||
|
* - exec_env->module_inst->module
|
||||||
|
*
|
||||||
|
* @param exec_env the execution environment that containes frames
|
||||||
|
* @param buffer the buffer of size equal length * sizeof(wasm_frame_t) to copy
|
||||||
|
* frames to
|
||||||
|
* @param length the number of frames to copy
|
||||||
|
* @param skip_n the number of frames to skip from the top of the stack
|
||||||
|
*
|
||||||
|
* @return number of copied frames
|
||||||
|
*/
|
||||||
|
WASM_RUNTIME_API_EXTERN uint32_t
|
||||||
|
wasm_copy_callstack(const wasm_exec_env_t exec_env, wasm_frame_t *buffer,
|
||||||
|
const uint32_t length, const uint32_t skip_n,
|
||||||
|
char *error_buf, uint32_t error_buf_size);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the singleton execution environment for the instance.
|
* Get the singleton execution environment for the instance.
|
||||||
*
|
*
|
||||||
|
@ -1778,6 +1822,20 @@ WASM_RUNTIME_API_EXTERN void
|
||||||
wasm_runtime_set_native_stack_boundary(wasm_exec_env_t exec_env,
|
wasm_runtime_set_native_stack_boundary(wasm_exec_env_t exec_env,
|
||||||
uint8_t *native_stack_boundary);
|
uint8_t *native_stack_boundary);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the instruction count limit to the execution environment.
|
||||||
|
* By default the instruction count limit is -1, which means no limit.
|
||||||
|
* However, if the instruction count limit is set to a positive value,
|
||||||
|
* the execution will be terminated when the instruction count reaches
|
||||||
|
* the limit.
|
||||||
|
*
|
||||||
|
* @param exec_env the execution environment
|
||||||
|
* @param instruction_count the instruction count limit
|
||||||
|
*/
|
||||||
|
WASM_RUNTIME_API_EXTERN void
|
||||||
|
wasm_runtime_set_instruction_count_limit(wasm_exec_env_t exec_env,
|
||||||
|
int instruction_count);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Dump runtime memory consumption, including:
|
* Dump runtime memory consumption, including:
|
||||||
* Exec env memory consumption
|
* Exec env memory consumption
|
||||||
|
@ -2315,7 +2373,7 @@ wasm_runtime_detach_shared_heap(wasm_module_inst_t module_inst);
|
||||||
* @param size required memory size
|
* @param size required memory size
|
||||||
* @param p_native_addr native address of allocated memory
|
* @param p_native_addr native address of allocated memory
|
||||||
*
|
*
|
||||||
* @return return the allocated memory address, which re-uses part of the wasm
|
* @return return the allocated memory address, which reuses part of the wasm
|
||||||
* address space and is in the range of [UINT32 - shared_heap_size + 1, UINT32]
|
* address space and is in the range of [UINT32 - shared_heap_size + 1, UINT32]
|
||||||
* (when the wasm memory is 32-bit) or [UINT64 - shared_heap_size + 1, UINT64]
|
* (when the wasm memory is 32-bit) or [UINT64 - shared_heap_size + 1, UINT64]
|
||||||
* (when the wasm memory is 64-bit). Note that it is not an absolute address.
|
* (when the wasm memory is 64-bit). Note that it is not an absolute address.
|
||||||
|
|
|
@ -1243,7 +1243,7 @@ wasm_value_type_size_internal(uint8 value_type, uint8 pointer_size)
|
||||||
return sizeof(int16);
|
return sizeof(int16);
|
||||||
#endif
|
#endif
|
||||||
else {
|
else {
|
||||||
bh_assert(0);
|
bh_assert(0 && "Unknown value type. It should be handled ahead.");
|
||||||
}
|
}
|
||||||
#if WASM_ENABLE_GC == 0
|
#if WASM_ENABLE_GC == 0
|
||||||
(void)pointer_size;
|
(void)pointer_size;
|
||||||
|
|
|
@ -1494,10 +1494,13 @@ wasm_interp_call_func_import(WASMModuleInstance *module_inst,
|
||||||
} \
|
} \
|
||||||
os_mutex_unlock(&exec_env->wait_lock); \
|
os_mutex_unlock(&exec_env->wait_lock); \
|
||||||
} \
|
} \
|
||||||
|
CHECK_INSTRUCTION_LIMIT(); \
|
||||||
goto *handle_table[*frame_ip++]; \
|
goto *handle_table[*frame_ip++]; \
|
||||||
} while (0)
|
} while (0)
|
||||||
#else
|
#else
|
||||||
#define HANDLE_OP_END() FETCH_OPCODE_AND_DISPATCH()
|
#define HANDLE_OP_END() \
|
||||||
|
CHECK_INSTRUCTION_LIMIT(); \
|
||||||
|
FETCH_OPCODE_AND_DISPATCH()
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#else /* else of WASM_ENABLE_LABELS_AS_VALUES */
|
#else /* else of WASM_ENABLE_LABELS_AS_VALUES */
|
||||||
|
@ -1520,9 +1523,12 @@ wasm_interp_call_func_import(WASMModuleInstance *module_inst,
|
||||||
} \
|
} \
|
||||||
os_mutex_unlock(&exec_env->wait_lock); \
|
os_mutex_unlock(&exec_env->wait_lock); \
|
||||||
} \
|
} \
|
||||||
|
CHECK_INSTRUCTION_LIMIT(); \
|
||||||
continue;
|
continue;
|
||||||
#else
|
#else
|
||||||
#define HANDLE_OP_END() continue
|
#define HANDLE_OP_END() \
|
||||||
|
CHECK_INSTRUCTION_LIMIT(); \
|
||||||
|
continue;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* end of WASM_ENABLE_LABELS_AS_VALUES */
|
#endif /* end of WASM_ENABLE_LABELS_AS_VALUES */
|
||||||
|
@ -1540,6 +1546,18 @@ get_global_addr(uint8 *global_data, WASMGlobalInstance *global)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if WASM_ENABLE_INSTRUCTION_METERING != 0
|
||||||
|
#define CHECK_INSTRUCTION_LIMIT() \
|
||||||
|
if (instructions_left == 0) { \
|
||||||
|
wasm_set_exception(module, "instruction limit exceeded"); \
|
||||||
|
goto got_exception; \
|
||||||
|
} \
|
||||||
|
else if (instructions_left > 0) \
|
||||||
|
instructions_left--;
|
||||||
|
#else
|
||||||
|
#define CHECK_INSTRUCTION_LIMIT() (void)0
|
||||||
|
#endif
|
||||||
|
|
||||||
static void
|
static void
|
||||||
wasm_interp_call_func_bytecode(WASMModuleInstance *module,
|
wasm_interp_call_func_bytecode(WASMModuleInstance *module,
|
||||||
WASMExecEnv *exec_env,
|
WASMExecEnv *exec_env,
|
||||||
|
@ -1583,6 +1601,14 @@ wasm_interp_call_func_bytecode(WASMModuleInstance *module,
|
||||||
uint32 local_idx, local_offset, global_idx;
|
uint32 local_idx, local_offset, global_idx;
|
||||||
uint8 local_type, *global_addr;
|
uint8 local_type, *global_addr;
|
||||||
uint32 cache_index, type_index, param_cell_num, cell_num;
|
uint32 cache_index, type_index, param_cell_num, cell_num;
|
||||||
|
|
||||||
|
#if WASM_ENABLE_INSTRUCTION_METERING != 0
|
||||||
|
int instructions_left = -1;
|
||||||
|
if (exec_env) {
|
||||||
|
instructions_left = exec_env->instructions_to_execute;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#if WASM_ENABLE_EXCE_HANDLING != 0
|
#if WASM_ENABLE_EXCE_HANDLING != 0
|
||||||
int32_t exception_tag_index;
|
int32_t exception_tag_index;
|
||||||
#endif
|
#endif
|
||||||
|
@ -1896,7 +1922,7 @@ wasm_interp_call_func_bytecode(WASMModuleInstance *module,
|
||||||
UNWIND_CSP(relative_depth, LABEL_TYPE_FUNCTION);
|
UNWIND_CSP(relative_depth, LABEL_TYPE_FUNCTION);
|
||||||
/* push exception values for catch
|
/* push exception values for catch
|
||||||
* The values are copied to the CALLER FRAME
|
* The values are copied to the CALLER FRAME
|
||||||
* (prev_frame->sp) same behvior ad WASM_OP_RETURN
|
* (prev_frame->sp) same behavior ad WASM_OP_RETURN
|
||||||
*/
|
*/
|
||||||
if (cell_num_to_copy > 0) {
|
if (cell_num_to_copy > 0) {
|
||||||
word_copy(prev_frame->sp,
|
word_copy(prev_frame->sp,
|
||||||
|
@ -4925,7 +4951,7 @@ wasm_interp_call_func_bytecode(WASMModuleInstance *module,
|
||||||
HANDLE_OP_END();
|
HANDLE_OP_END();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* numberic instructions of i32 */
|
/* numeric instructions of i32 */
|
||||||
HANDLE_OP(WASM_OP_I32_CLZ)
|
HANDLE_OP(WASM_OP_I32_CLZ)
|
||||||
{
|
{
|
||||||
DEF_OP_BIT_COUNT(uint32, I32, clz32);
|
DEF_OP_BIT_COUNT(uint32, I32, clz32);
|
||||||
|
@ -5082,7 +5108,7 @@ wasm_interp_call_func_bytecode(WASMModuleInstance *module,
|
||||||
HANDLE_OP_END();
|
HANDLE_OP_END();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* numberic instructions of i64 */
|
/* numeric instructions of i64 */
|
||||||
HANDLE_OP(WASM_OP_I64_CLZ)
|
HANDLE_OP(WASM_OP_I64_CLZ)
|
||||||
{
|
{
|
||||||
DEF_OP_BIT_COUNT(uint64, I64, clz64);
|
DEF_OP_BIT_COUNT(uint64, I64, clz64);
|
||||||
|
@ -5239,7 +5265,7 @@ wasm_interp_call_func_bytecode(WASMModuleInstance *module,
|
||||||
HANDLE_OP_END();
|
HANDLE_OP_END();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* numberic instructions of f32 */
|
/* numeric instructions of f32 */
|
||||||
HANDLE_OP(WASM_OP_F32_ABS)
|
HANDLE_OP(WASM_OP_F32_ABS)
|
||||||
{
|
{
|
||||||
DEF_OP_MATH(float32, F32, fabsf);
|
DEF_OP_MATH(float32, F32, fabsf);
|
||||||
|
@ -5343,7 +5369,7 @@ wasm_interp_call_func_bytecode(WASMModuleInstance *module,
|
||||||
HANDLE_OP_END();
|
HANDLE_OP_END();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* numberic instructions of f64 */
|
/* numeric instructions of f64 */
|
||||||
HANDLE_OP(WASM_OP_F64_ABS)
|
HANDLE_OP(WASM_OP_F64_ABS)
|
||||||
{
|
{
|
||||||
DEF_OP_MATH(float64, F64, fabs);
|
DEF_OP_MATH(float64, F64, fabs);
|
||||||
|
@ -5746,7 +5772,6 @@ wasm_interp_call_func_bytecode(WASMModuleInstance *module,
|
||||||
{
|
{
|
||||||
mem_offset_t dst, src, len;
|
mem_offset_t dst, src, len;
|
||||||
uint8 *mdst, *msrc;
|
uint8 *mdst, *msrc;
|
||||||
uint64 dlen;
|
|
||||||
|
|
||||||
len = POP_MEM_OFFSET();
|
len = POP_MEM_OFFSET();
|
||||||
src = POP_MEM_OFFSET();
|
src = POP_MEM_OFFSET();
|
||||||
|
@ -5759,24 +5784,17 @@ wasm_interp_call_func_bytecode(WASMModuleInstance *module,
|
||||||
/* skip dst memidx */
|
/* skip dst memidx */
|
||||||
frame_ip += 1;
|
frame_ip += 1;
|
||||||
#endif
|
#endif
|
||||||
|
// TODO: apply memidx
|
||||||
#if WASM_ENABLE_THREAD_MGR != 0
|
#if WASM_ENABLE_THREAD_MGR != 0
|
||||||
linear_mem_size = get_linear_mem_size();
|
linear_mem_size = get_linear_mem_size();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
dlen = linear_mem_size - dst;
|
|
||||||
|
|
||||||
/* dst boundary check */
|
/* dst boundary check */
|
||||||
#ifndef OS_ENABLE_HW_BOUND_CHECK
|
#ifndef OS_ENABLE_HW_BOUND_CHECK
|
||||||
CHECK_BULK_MEMORY_OVERFLOW(dst, len, mdst);
|
CHECK_BULK_MEMORY_OVERFLOW(dst, len, mdst);
|
||||||
#if WASM_ENABLE_SHARED_HEAP != 0
|
|
||||||
if (app_addr_in_shared_heap((uint64)dst, len))
|
|
||||||
dlen = get_shared_heap_end_off() - dst + 1;
|
|
||||||
#endif
|
|
||||||
#else /* else of OS_ENABLE_HW_BOUND_CHECK */
|
#else /* else of OS_ENABLE_HW_BOUND_CHECK */
|
||||||
#if WASM_ENABLE_SHARED_HEAP != 0
|
#if WASM_ENABLE_SHARED_HEAP != 0
|
||||||
if (app_addr_in_shared_heap((uint64)dst, len)) {
|
if (app_addr_in_shared_heap((uint64)dst, len)) {
|
||||||
shared_heap_addr_app_to_native((uint64)dst, mdst);
|
shared_heap_addr_app_to_native((uint64)dst, mdst);
|
||||||
dlen = get_shared_heap_end_off() - dst + 1;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
|
@ -5794,6 +5812,7 @@ wasm_interp_call_func_bytecode(WASMModuleInstance *module,
|
||||||
/* skip src memidx */
|
/* skip src memidx */
|
||||||
frame_ip += 1;
|
frame_ip += 1;
|
||||||
#endif
|
#endif
|
||||||
|
// TODO: apply memidx
|
||||||
#if WASM_ENABLE_THREAD_MGR != 0
|
#if WASM_ENABLE_THREAD_MGR != 0
|
||||||
linear_mem_size = get_linear_mem_size();
|
linear_mem_size = get_linear_mem_size();
|
||||||
#endif
|
#endif
|
||||||
|
@ -5813,15 +5832,21 @@ wasm_interp_call_func_bytecode(WASMModuleInstance *module,
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if WASM_ENABLE_MEMORY64 == 0
|
/*
|
||||||
|
* avoid unnecessary operations
|
||||||
|
*
|
||||||
|
* since dst and src both are valid indexes in the
|
||||||
|
* linear memory, mdst and msrc can't be NULL
|
||||||
|
*
|
||||||
|
* The spec. converts memory.copy into i32.load8 and
|
||||||
|
* i32.store8; the following are runtime-specific
|
||||||
|
* optimizations.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
if (len && mdst != msrc) {
|
||||||
/* allowing the destination and source to overlap */
|
/* allowing the destination and source to overlap */
|
||||||
bh_memmove_s(mdst, (uint32)dlen, msrc, (uint32)len);
|
|
||||||
#else
|
|
||||||
/* use memmove when memory64 is enabled since len
|
|
||||||
may be larger than UINT32_MAX */
|
|
||||||
memmove(mdst, msrc, len);
|
memmove(mdst, msrc, len);
|
||||||
(void)dlen;
|
}
|
||||||
#endif
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case WASM_OP_MEMORY_FILL:
|
case WASM_OP_MEMORY_FILL:
|
||||||
|
@ -6642,7 +6667,7 @@ wasm_interp_call_func_bytecode(WASMModuleInstance *module,
|
||||||
tag++, t++) {
|
tag++, t++) {
|
||||||
|
|
||||||
/* compare the module and the external index with the
|
/* compare the module and the external index with the
|
||||||
* imort tag data */
|
* import tag data */
|
||||||
if ((cur_func->u.func_import->import_module
|
if ((cur_func->u.func_import->import_module
|
||||||
== tag->u.tag_import->import_module)
|
== tag->u.tag_import->import_module)
|
||||||
&& (ext_exception
|
&& (ext_exception
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -665,7 +665,7 @@ load_table_import(const uint8 **p_buf, const uint8 *buf_end,
|
||||||
const char *table_name, WASMTableImport *table,
|
const char *table_name, WASMTableImport *table,
|
||||||
char *error_buf, uint32 error_buf_size)
|
char *error_buf, uint32 error_buf_size)
|
||||||
{
|
{
|
||||||
const uint8 *p = *p_buf, *p_end = buf_end;
|
const uint8 *p = *p_buf, *p_end = buf_end, *p_org;
|
||||||
uint32 declare_elem_type = 0, table_flag = 0, declare_init_size = 0,
|
uint32 declare_elem_type = 0, table_flag = 0, declare_init_size = 0,
|
||||||
declare_max_size = 0;
|
declare_max_size = 0;
|
||||||
|
|
||||||
|
@ -678,7 +678,12 @@ load_table_import(const uint8 **p_buf, const uint8 *buf_end,
|
||||||
#endif
|
#endif
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/* the table flag can't exceed one byte, only check in debug build given
|
||||||
|
* the nature of mini-loader */
|
||||||
|
p_org = p;
|
||||||
read_leb_uint32(p, p_end, table_flag);
|
read_leb_uint32(p, p_end, table_flag);
|
||||||
|
bh_assert(p - p_org <= 1);
|
||||||
|
(void)p_org;
|
||||||
|
|
||||||
if (!wasm_table_check_flags(table_flag, error_buf, error_buf_size, false)) {
|
if (!wasm_table_check_flags(table_flag, error_buf, error_buf_size, false)) {
|
||||||
return false;
|
return false;
|
||||||
|
@ -711,7 +716,7 @@ load_memory_import(const uint8 **p_buf, const uint8 *buf_end,
|
||||||
const char *memory_name, WASMMemoryImport *memory,
|
const char *memory_name, WASMMemoryImport *memory,
|
||||||
char *error_buf, uint32 error_buf_size)
|
char *error_buf, uint32 error_buf_size)
|
||||||
{
|
{
|
||||||
const uint8 *p = *p_buf, *p_end = buf_end;
|
const uint8 *p = *p_buf, *p_end = buf_end, *p_org;
|
||||||
#if WASM_ENABLE_APP_FRAMEWORK != 0
|
#if WASM_ENABLE_APP_FRAMEWORK != 0
|
||||||
uint32 pool_size = wasm_runtime_memory_pool_size();
|
uint32 pool_size = wasm_runtime_memory_pool_size();
|
||||||
uint32 max_page_count = pool_size * APP_MEMORY_MAX_GLOBAL_HEAP_PERCENT
|
uint32 max_page_count = pool_size * APP_MEMORY_MAX_GLOBAL_HEAP_PERCENT
|
||||||
|
@ -724,7 +729,13 @@ load_memory_import(const uint8 **p_buf, const uint8 *buf_end,
|
||||||
uint32 declare_init_page_count = 0;
|
uint32 declare_init_page_count = 0;
|
||||||
uint32 declare_max_page_count = 0;
|
uint32 declare_max_page_count = 0;
|
||||||
|
|
||||||
|
/* the memory flag can't exceed one byte, only check in debug build given
|
||||||
|
* the nature of mini-loader */
|
||||||
|
p_org = p;
|
||||||
read_leb_uint32(p, p_end, mem_flag);
|
read_leb_uint32(p, p_end, mem_flag);
|
||||||
|
bh_assert(p - p_org <= 1);
|
||||||
|
(void)p_org;
|
||||||
|
|
||||||
if (!wasm_memory_check_flags(mem_flag, error_buf, error_buf_size, false)) {
|
if (!wasm_memory_check_flags(mem_flag, error_buf, error_buf_size, false)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -815,6 +826,8 @@ load_table(const uint8 **p_buf, const uint8 *buf_end, WASMTable *table,
|
||||||
#endif
|
#endif
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/* the table flag can't exceed one byte, only check in debug build given
|
||||||
|
* the nature of mini-loader */
|
||||||
p_org = p;
|
p_org = p;
|
||||||
read_leb_uint32(p, p_end, table->table_type.flags);
|
read_leb_uint32(p, p_end, table->table_type.flags);
|
||||||
bh_assert(p - p_org <= 1);
|
bh_assert(p - p_org <= 1);
|
||||||
|
@ -854,6 +867,8 @@ load_memory(const uint8 **p_buf, const uint8 *buf_end, WASMMemory *memory,
|
||||||
bool is_memory64 = false;
|
bool is_memory64 = false;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* the memory flag can't exceed one byte, only check in debug build given
|
||||||
|
* the nature of mini-loader */
|
||||||
p_org = p;
|
p_org = p;
|
||||||
read_leb_uint32(p, p_end, memory->flags);
|
read_leb_uint32(p, p_end, memory->flags);
|
||||||
bh_assert(p - p_org <= 1);
|
bh_assert(p - p_org <= 1);
|
||||||
|
@ -2457,7 +2472,7 @@ orcjit_thread_callback(void *arg)
|
||||||
i + j * group_stride + module->import_function_count,
|
i + j * group_stride + module->import_function_count,
|
||||||
(void *)func_addr);
|
(void *)func_addr);
|
||||||
|
|
||||||
/* Try to switch to call this llvm jit funtion instead of
|
/* Try to switch to call this llvm jit function instead of
|
||||||
fast jit function from fast jit jitted code */
|
fast jit function from fast jit jitted code */
|
||||||
jit_compiler_set_call_to_llvm_jit(
|
jit_compiler_set_call_to_llvm_jit(
|
||||||
module,
|
module,
|
||||||
|
@ -2478,6 +2493,7 @@ orcjit_thread_callback(void *arg)
|
||||||
static void
|
static void
|
||||||
orcjit_stop_compile_threads(WASMModule *module)
|
orcjit_stop_compile_threads(WASMModule *module)
|
||||||
{
|
{
|
||||||
|
#if WASM_ENABLE_LAZY_JIT != 0
|
||||||
uint32 i, thread_num = (uint32)(sizeof(module->orcjit_thread_args)
|
uint32 i, thread_num = (uint32)(sizeof(module->orcjit_thread_args)
|
||||||
/ sizeof(OrcJitThreadArg));
|
/ sizeof(OrcJitThreadArg));
|
||||||
|
|
||||||
|
@ -2486,6 +2502,7 @@ orcjit_stop_compile_threads(WASMModule *module)
|
||||||
if (module->orcjit_threads[i])
|
if (module->orcjit_threads[i])
|
||||||
os_thread_join(module->orcjit_threads[i], NULL);
|
os_thread_join(module->orcjit_threads[i], NULL);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool
|
static bool
|
||||||
|
@ -3122,6 +3139,18 @@ create_module(char *name, char *error_buf, uint32 error_buf_size)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if WASM_ENABLE_LIBC_WASI != 0
|
||||||
|
#if WASM_ENABLE_LIBC_UVWASI == 0
|
||||||
|
module->wasi_args.stdio[0] = os_invalid_raw_handle();
|
||||||
|
module->wasi_args.stdio[1] = os_invalid_raw_handle();
|
||||||
|
module->wasi_args.stdio[2] = os_invalid_raw_handle();
|
||||||
|
#else
|
||||||
|
module->wasi_args.stdio[0] = os_get_invalid_handle();
|
||||||
|
module->wasi_args.stdio[1] = os_get_invalid_handle();
|
||||||
|
module->wasi_args.stdio[2] = os_get_invalid_handle();
|
||||||
|
#endif /* WASM_ENABLE_UVWASI == 0 */
|
||||||
|
#endif /* WASM_ENABLE_LIBC_WASI != 0 */
|
||||||
|
|
||||||
(void)ret;
|
(void)ret;
|
||||||
return module;
|
return module;
|
||||||
}
|
}
|
||||||
|
@ -4763,6 +4792,11 @@ preserve_referenced_local(WASMLoaderContext *loader_ctx, uint8 opcode,
|
||||||
loader_ctx->preserved_local_offset += 2;
|
loader_ctx->preserved_local_offset += 2;
|
||||||
emit_label(EXT_OP_COPY_STACK_TOP_I64);
|
emit_label(EXT_OP_COPY_STACK_TOP_I64);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* overflow */
|
||||||
|
bh_assert(preserved_offset
|
||||||
|
<= loader_ctx->preserved_local_offset);
|
||||||
|
|
||||||
emit_operand(loader_ctx, local_index);
|
emit_operand(loader_ctx, local_index);
|
||||||
emit_operand(loader_ctx, preserved_offset);
|
emit_operand(loader_ctx, preserved_offset);
|
||||||
emit_label(opcode);
|
emit_label(opcode);
|
||||||
|
|
|
@ -278,6 +278,16 @@ typedef enum WASMOpcode {
|
||||||
DEBUG_OP_BREAK = 0xdc, /* debug break point */
|
DEBUG_OP_BREAK = 0xdc, /* debug break point */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if WASM_ENABLE_JIT != 0 || WASM_ENABLE_FAST_INTERP != 0 \
|
||||||
|
|| WASM_ENABLE_WAMR_COMPILER != 0 && WASM_ENABLE_SIMD != 0
|
||||||
|
EXT_OP_SET_LOCAL_FAST_V128 = 0xdd,
|
||||||
|
EXT_OP_TEE_LOCAL_FAST_V128 = 0xde,
|
||||||
|
EXT_OP_COPY_STACK_TOP_V128 = 0xdf,
|
||||||
|
WASM_OP_GET_GLOBAL_V128 = 0xe0,
|
||||||
|
WASM_OP_SET_GLOBAL_V128 = 0xe1,
|
||||||
|
WASM_OP_SELECT_128 = 0xe2,
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Post-MVP extend op prefix */
|
/* Post-MVP extend op prefix */
|
||||||
WASM_OP_GC_PREFIX = 0xfb,
|
WASM_OP_GC_PREFIX = 0xfb,
|
||||||
WASM_OP_MISC_PREFIX = 0xfc,
|
WASM_OP_MISC_PREFIX = 0xfc,
|
||||||
|
@ -779,16 +789,27 @@ typedef enum WASMAtomicEXTOpcode {
|
||||||
#else
|
#else
|
||||||
#define DEF_DEBUG_BREAK_HANDLE()
|
#define DEF_DEBUG_BREAK_HANDLE()
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define SET_GOTO_TABLE_ELEM(opcode) [opcode] = HANDLE_OPCODE(opcode)
|
#define SET_GOTO_TABLE_ELEM(opcode) [opcode] = HANDLE_OPCODE(opcode)
|
||||||
|
|
||||||
#if WASM_ENABLE_JIT != 0 && WASM_ENABLE_SIMD != 0
|
#if WASM_ENABLE_SIMDE != 0
|
||||||
#define SET_GOTO_TABLE_SIMD_PREFIX_ELEM() \
|
#define SET_GOTO_TABLE_SIMD_PREFIX_ELEM() \
|
||||||
SET_GOTO_TABLE_ELEM(WASM_OP_SIMD_PREFIX),
|
SET_GOTO_TABLE_ELEM(WASM_OP_SIMD_PREFIX),
|
||||||
#else
|
#else
|
||||||
#define SET_GOTO_TABLE_SIMD_PREFIX_ELEM()
|
#define SET_GOTO_TABLE_SIMD_PREFIX_ELEM()
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if WASM_ENABLE_SIMD != 0 && WASM_ENABLE_SIMDE != 0
|
||||||
|
#define DEF_EXT_V128_HANDLE() \
|
||||||
|
SET_GOTO_TABLE_ELEM(EXT_OP_SET_LOCAL_FAST_V128), /* 0xdd */ \
|
||||||
|
SET_GOTO_TABLE_ELEM(EXT_OP_TEE_LOCAL_FAST_V128), /* 0xde */ \
|
||||||
|
SET_GOTO_TABLE_ELEM(EXT_OP_COPY_STACK_TOP_V128), /* 0xdf */ \
|
||||||
|
SET_GOTO_TABLE_ELEM(WASM_OP_GET_GLOBAL_V128), /* 0xe0 */ \
|
||||||
|
SET_GOTO_TABLE_ELEM(WASM_OP_SET_GLOBAL_V128), /* 0xe1 */ \
|
||||||
|
SET_GOTO_TABLE_ELEM(WASM_OP_SELECT_128), /* 0xe2 */
|
||||||
|
|
||||||
|
#else
|
||||||
|
#define DEF_EXT_V128_HANDLE()
|
||||||
|
#endif
|
||||||
/*
|
/*
|
||||||
* Macro used to generate computed goto tables for the C interpreter.
|
* Macro used to generate computed goto tables for the C interpreter.
|
||||||
*/
|
*/
|
||||||
|
@ -1020,7 +1041,7 @@ typedef enum WASMAtomicEXTOpcode {
|
||||||
SET_GOTO_TABLE_ELEM(WASM_OP_MISC_PREFIX), /* 0xfc */ \
|
SET_GOTO_TABLE_ELEM(WASM_OP_MISC_PREFIX), /* 0xfc */ \
|
||||||
SET_GOTO_TABLE_SIMD_PREFIX_ELEM() /* 0xfd */ \
|
SET_GOTO_TABLE_SIMD_PREFIX_ELEM() /* 0xfd */ \
|
||||||
SET_GOTO_TABLE_ELEM(WASM_OP_ATOMIC_PREFIX), /* 0xfe */ \
|
SET_GOTO_TABLE_ELEM(WASM_OP_ATOMIC_PREFIX), /* 0xfe */ \
|
||||||
DEF_DEBUG_BREAK_HANDLE() \
|
DEF_DEBUG_BREAK_HANDLE() DEF_EXT_V128_HANDLE() \
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|
|
@ -3523,13 +3523,6 @@ call_wasm_with_hw_bound_check(WASMModuleInstance *module_inst,
|
||||||
#endif
|
#endif
|
||||||
bool ret = true;
|
bool ret = true;
|
||||||
|
|
||||||
/* Check native stack overflow firstly to ensure we have enough
|
|
||||||
native stack to run the following codes before actually calling
|
|
||||||
the aot function in invokeNative function. */
|
|
||||||
if (!wasm_runtime_detect_native_stack_overflow(exec_env)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!exec_env_tls) {
|
if (!exec_env_tls) {
|
||||||
if (!os_thread_signal_inited()) {
|
if (!os_thread_signal_inited()) {
|
||||||
wasm_set_exception(module_inst, "thread signal env not inited");
|
wasm_set_exception(module_inst, "thread signal env not inited");
|
||||||
|
@ -3548,6 +3541,13 @@ call_wasm_with_hw_bound_check(WASMModuleInstance *module_inst,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Check native stack overflow firstly to ensure we have enough
|
||||||
|
native stack to run the following codes before actually calling
|
||||||
|
the aot function in invokeNative function. */
|
||||||
|
if (!wasm_runtime_detect_native_stack_overflow(exec_env)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
wasm_exec_env_push_jmpbuf(exec_env, &jmpbuf_node);
|
wasm_exec_env_push_jmpbuf(exec_env, &jmpbuf_node);
|
||||||
|
|
||||||
if (os_setjmp(jmpbuf_node.jmpbuf) == 0) {
|
if (os_setjmp(jmpbuf_node.jmpbuf) == 0) {
|
||||||
|
@ -4195,6 +4195,55 @@ wasm_get_module_inst_mem_consumption(const WASMModuleInstance *module_inst,
|
||||||
#endif /* end of (WASM_ENABLE_MEMORY_PROFILING != 0) \
|
#endif /* end of (WASM_ENABLE_MEMORY_PROFILING != 0) \
|
||||||
|| (WASM_ENABLE_MEMORY_TRACING != 0) */
|
|| (WASM_ENABLE_MEMORY_TRACING != 0) */
|
||||||
|
|
||||||
|
#if WAMR_ENABLE_COPY_CALLSTACK != 0
|
||||||
|
uint32
|
||||||
|
wasm_interp_copy_callstack(WASMExecEnv *exec_env, wasm_frame_t *buffer,
|
||||||
|
uint32 length, uint32 skip_n, char *error_buf,
|
||||||
|
uint32_t error_buf_size)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* Note for devs: please refrain from such modifications inside of
|
||||||
|
* wasm_interp_copy_callstack
|
||||||
|
* - any allocations/freeing memory
|
||||||
|
* - dereferencing any pointers other than: exec_env, exec_env->module_inst,
|
||||||
|
* exec_env->module_inst->module, pointers between stack's bottom and
|
||||||
|
* top_boundary For more details check wasm_copy_callstack in
|
||||||
|
* wasm_export.h
|
||||||
|
*/
|
||||||
|
WASMModuleInstance *module_inst =
|
||||||
|
(WASMModuleInstance *)wasm_exec_env_get_module_inst(exec_env);
|
||||||
|
WASMInterpFrame *cur_frame = wasm_exec_env_get_cur_frame(exec_env);
|
||||||
|
uint8 *top_boundary = exec_env->wasm_stack.top_boundary;
|
||||||
|
uint8 *bottom = exec_env->wasm_stack.bottom;
|
||||||
|
uint32 count = 0;
|
||||||
|
|
||||||
|
WASMCApiFrame record_frame;
|
||||||
|
while (cur_frame && (uint8_t *)cur_frame >= bottom
|
||||||
|
&& (uint8_t *)cur_frame + sizeof(WASMInterpFrame) <= top_boundary
|
||||||
|
&& count < (skip_n + length)) {
|
||||||
|
if (!cur_frame->function) {
|
||||||
|
cur_frame = cur_frame->prev_frame;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (count < skip_n) {
|
||||||
|
++count;
|
||||||
|
cur_frame = cur_frame->prev_frame;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
record_frame.instance = module_inst;
|
||||||
|
record_frame.module_offset = 0;
|
||||||
|
// It's safe to dereference module_inst->e because "e" is asigned only
|
||||||
|
// once in wasm_instantiate
|
||||||
|
record_frame.func_index =
|
||||||
|
(uint32)(cur_frame->function - module_inst->e->functions);
|
||||||
|
buffer[count - skip_n] = record_frame;
|
||||||
|
cur_frame = cur_frame->prev_frame;
|
||||||
|
++count;
|
||||||
|
}
|
||||||
|
return count >= skip_n ? count - skip_n : 0;
|
||||||
|
}
|
||||||
|
#endif // WAMR_ENABLE_COPY_CALLSTACK
|
||||||
|
|
||||||
#if WASM_ENABLE_DUMP_CALL_STACK != 0
|
#if WASM_ENABLE_DUMP_CALL_STACK != 0
|
||||||
bool
|
bool
|
||||||
wasm_interp_create_call_stack(struct WASMExecEnv *exec_env)
|
wasm_interp_create_call_stack(struct WASMExecEnv *exec_env)
|
||||||
|
|
|
@ -738,6 +738,14 @@ wasm_get_table_inst(const WASMModuleInstance *module_inst, uint32 tbl_idx)
|
||||||
}
|
}
|
||||||
|
|
||||||
#if WASM_ENABLE_DUMP_CALL_STACK != 0
|
#if WASM_ENABLE_DUMP_CALL_STACK != 0
|
||||||
|
|
||||||
|
#if WAMR_ENABLE_COPY_CALLSTACK != 0
|
||||||
|
uint32
|
||||||
|
wasm_interp_copy_callstack(WASMExecEnv *exec_env, wasm_frame_t *buffer,
|
||||||
|
uint32 length, uint32 skip_n, char *error_buf,
|
||||||
|
uint32_t error_buf_size);
|
||||||
|
#endif // WAMR_ENABLE_COPY_CALLSTACK
|
||||||
|
|
||||||
bool
|
bool
|
||||||
wasm_interp_create_call_stack(struct WASMExecEnv *exec_env);
|
wasm_interp_create_call_stack(struct WASMExecEnv *exec_env);
|
||||||
|
|
||||||
|
|
|
@ -58,7 +58,7 @@ static WASMDebugEngine *g_debug_engine;
|
||||||
static uint32 current_instance_id = 1;
|
static uint32 current_instance_id = 1;
|
||||||
|
|
||||||
static uint32
|
static uint32
|
||||||
allocate_instance_id()
|
allocate_instance_id(void)
|
||||||
{
|
{
|
||||||
uint32 id;
|
uint32 id;
|
||||||
|
|
||||||
|
@ -302,7 +302,7 @@ wasm_debug_control_thread_destroy(WASMDebugInstance *debug_instance)
|
||||||
}
|
}
|
||||||
|
|
||||||
static WASMDebugEngine *
|
static WASMDebugEngine *
|
||||||
wasm_debug_engine_create()
|
wasm_debug_engine_create(void)
|
||||||
{
|
{
|
||||||
WASMDebugEngine *engine;
|
WASMDebugEngine *engine;
|
||||||
|
|
||||||
|
@ -326,7 +326,7 @@ wasm_debug_engine_create()
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
wasm_debug_engine_destroy()
|
wasm_debug_engine_destroy(void)
|
||||||
{
|
{
|
||||||
if (g_debug_engine) {
|
if (g_debug_engine) {
|
||||||
wasm_debug_handler_deinit();
|
wasm_debug_handler_deinit();
|
||||||
|
|
|
@ -133,7 +133,7 @@ bool
|
||||||
wasm_debug_engine_init(char *ip_addr, int32 process_port);
|
wasm_debug_engine_init(char *ip_addr, int32 process_port);
|
||||||
|
|
||||||
void
|
void
|
||||||
wasm_debug_engine_destroy();
|
wasm_debug_engine_destroy(void);
|
||||||
|
|
||||||
WASMExecEnv *
|
WASMExecEnv *
|
||||||
wasm_debug_instance_get_current_env(WASMDebugInstance *instance);
|
wasm_debug_instance_get_current_env(WASMDebugInstance *instance);
|
||||||
|
|
|
@ -38,7 +38,7 @@ static const struct packet_handler_elem packet_handler_table[255] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
WASMGDBServer *
|
WASMGDBServer *
|
||||||
wasm_create_gdbserver(const char *host, int32 *port)
|
wasm_create_gdbserver(const char *host, int *port)
|
||||||
{
|
{
|
||||||
bh_socket_t listen_fd = (bh_socket_t)-1;
|
bh_socket_t listen_fd = (bh_socket_t)-1;
|
||||||
WASMGDBServer *server;
|
WASMGDBServer *server;
|
||||||
|
|
|
@ -51,7 +51,7 @@ typedef struct WASMGDBServer {
|
||||||
} WASMGDBServer;
|
} WASMGDBServer;
|
||||||
|
|
||||||
WASMGDBServer *
|
WASMGDBServer *
|
||||||
wasm_create_gdbserver(const char *host, int32 *port);
|
wasm_create_gdbserver(const char *host, int *port);
|
||||||
|
|
||||||
bool
|
bool
|
||||||
wasm_gdbserver_listen(WASMGDBServer *server);
|
wasm_gdbserver_listen(WASMGDBServer *server);
|
||||||
|
|
|
@ -34,7 +34,7 @@ static char *tmpbuf;
|
||||||
static korp_mutex tmpbuf_lock;
|
static korp_mutex tmpbuf_lock;
|
||||||
|
|
||||||
int
|
int
|
||||||
wasm_debug_handler_init()
|
wasm_debug_handler_init(void)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
tmpbuf = wasm_runtime_malloc(MAX_PACKET_SIZE);
|
tmpbuf = wasm_runtime_malloc(MAX_PACKET_SIZE);
|
||||||
|
@ -51,7 +51,7 @@ wasm_debug_handler_init()
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
wasm_debug_handler_deinit()
|
wasm_debug_handler_deinit(void)
|
||||||
{
|
{
|
||||||
wasm_runtime_free(tmpbuf);
|
wasm_runtime_free(tmpbuf);
|
||||||
tmpbuf = NULL;
|
tmpbuf = NULL;
|
||||||
|
@ -204,8 +204,7 @@ handle_general_query(WASMGDBServer *server, char *payload)
|
||||||
if (!strcmp(name, "Supported")) {
|
if (!strcmp(name, "Supported")) {
|
||||||
os_mutex_lock(&tmpbuf_lock);
|
os_mutex_lock(&tmpbuf_lock);
|
||||||
snprintf(tmpbuf, MAX_PACKET_SIZE,
|
snprintf(tmpbuf, MAX_PACKET_SIZE,
|
||||||
"qXfer:libraries:read+;PacketSize=%" PRIx32 ";",
|
"qXfer:libraries:read+;PacketSize=%x;", MAX_PACKET_SIZE);
|
||||||
MAX_PACKET_SIZE);
|
|
||||||
write_packet(server, tmpbuf);
|
write_packet(server, tmpbuf);
|
||||||
os_mutex_unlock(&tmpbuf_lock);
|
os_mutex_unlock(&tmpbuf_lock);
|
||||||
}
|
}
|
||||||
|
@ -384,7 +383,7 @@ send_thread_stop_status(WASMGDBServer *server, uint32 status, korp_tid tid)
|
||||||
|
|
||||||
if (status == 0) {
|
if (status == 0) {
|
||||||
os_mutex_lock(&tmpbuf_lock);
|
os_mutex_lock(&tmpbuf_lock);
|
||||||
snprintf(tmpbuf, MAX_PACKET_SIZE, "W%02x", status);
|
(void)snprintf(tmpbuf, MAX_PACKET_SIZE, "W%02" PRIx32, status);
|
||||||
write_packet(server, tmpbuf);
|
write_packet(server, tmpbuf);
|
||||||
os_mutex_unlock(&tmpbuf_lock);
|
os_mutex_unlock(&tmpbuf_lock);
|
||||||
return;
|
return;
|
||||||
|
@ -400,17 +399,38 @@ send_thread_stop_status(WASMGDBServer *server, uint32 status, korp_tid tid)
|
||||||
|
|
||||||
os_mutex_lock(&tmpbuf_lock);
|
os_mutex_lock(&tmpbuf_lock);
|
||||||
// TODO: how name a wasm thread?
|
// TODO: how name a wasm thread?
|
||||||
len += snprintf(tmpbuf, MAX_PACKET_SIZE, "T%02xthread:%" PRIx64 ";name:%s;",
|
len = snprintf(tmpbuf, MAX_PACKET_SIZE,
|
||||||
gdb_status, (uint64)(uintptr_t)tid, "nobody");
|
"T%02" PRIx32 "thread:%" PRIx64 ";name:%s;", gdb_status,
|
||||||
|
(uint64)(uintptr_t)tid, "nobody");
|
||||||
|
if (len < 0 || len >= MAX_PACKET_SIZE) {
|
||||||
|
os_mutex_unlock(&tmpbuf_lock);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (tids_count > 0) {
|
if (tids_count > 0) {
|
||||||
len += snprintf(tmpbuf + len, MAX_PACKET_SIZE - len, "threads:");
|
int n = snprintf(tmpbuf + len, MAX_PACKET_SIZE - len, "threads:");
|
||||||
|
if (n < 0 || n >= MAX_PACKET_SIZE - len) {
|
||||||
|
os_mutex_unlock(&tmpbuf_lock);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
len += n;
|
||||||
while (i < tids_count) {
|
while (i < tids_count) {
|
||||||
if (i == tids_count - 1)
|
if (i == tids_count - 1) {
|
||||||
len += snprintf(tmpbuf + len, MAX_PACKET_SIZE - len,
|
n = snprintf(tmpbuf + len, MAX_PACKET_SIZE - len,
|
||||||
"%" PRIx64 ";", (uint64)(uintptr_t)tids[i]);
|
"%" PRIx64 ";", (uint64)(uintptr_t)tids[i]);
|
||||||
else
|
}
|
||||||
len += snprintf(tmpbuf + len, MAX_PACKET_SIZE - len,
|
else {
|
||||||
|
n = snprintf(tmpbuf + len, MAX_PACKET_SIZE - len,
|
||||||
"%" PRIx64 ",", (uint64)(uintptr_t)tids[i]);
|
"%" PRIx64 ",", (uint64)(uintptr_t)tids[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (n < 0 || n >= MAX_PACKET_SIZE - len) {
|
||||||
|
os_mutex_unlock(&tmpbuf_lock);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
len += n;
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -427,30 +447,43 @@ send_thread_stop_status(WASMGDBServer *server, uint32 status, korp_tid tid)
|
||||||
/* When exception occurs, use reason:exception so the description can be
|
/* When exception occurs, use reason:exception so the description can be
|
||||||
* correctly processed by LLDB */
|
* correctly processed by LLDB */
|
||||||
uint32 exception_len = strlen(exception);
|
uint32 exception_len = strlen(exception);
|
||||||
len +=
|
int n =
|
||||||
snprintf(tmpbuf + len, MAX_PACKET_SIZE - len,
|
snprintf(tmpbuf + len, MAX_PACKET_SIZE - len,
|
||||||
"thread-pcs:%" PRIx64 ";00:%s;reason:%s;description:", pc,
|
"thread-pcs:%" PRIx64 ";00:%s;reason:%s;description:", pc,
|
||||||
pc_string, "exception");
|
pc_string, "exception");
|
||||||
|
if (n < 0 || n >= MAX_PACKET_SIZE - len) {
|
||||||
|
os_mutex_unlock(&tmpbuf_lock);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
len += n;
|
||||||
/* The description should be encoded as HEX */
|
/* The description should be encoded as HEX */
|
||||||
for (i = 0; i < exception_len; i++) {
|
for (i = 0; i < exception_len; i++) {
|
||||||
len += snprintf(tmpbuf + len, MAX_PACKET_SIZE - len, "%02x",
|
n = snprintf(tmpbuf + len, MAX_PACKET_SIZE - len, "%02x",
|
||||||
exception[i]);
|
exception[i]);
|
||||||
|
if (n < 0 || n >= MAX_PACKET_SIZE - len) {
|
||||||
|
os_mutex_unlock(&tmpbuf_lock);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
len += snprintf(tmpbuf + len, MAX_PACKET_SIZE - len, ";");
|
|
||||||
|
len += n;
|
||||||
|
}
|
||||||
|
|
||||||
|
(void)snprintf(tmpbuf + len, MAX_PACKET_SIZE - len, ";");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (status == WAMR_SIG_TRAP) {
|
if (status == WAMR_SIG_TRAP) {
|
||||||
len += snprintf(tmpbuf + len, MAX_PACKET_SIZE - len,
|
(void)snprintf(tmpbuf + len, MAX_PACKET_SIZE - len,
|
||||||
"thread-pcs:%" PRIx64 ";00:%s;reason:%s;", pc,
|
"thread-pcs:%" PRIx64 ";00:%s;reason:%s;", pc,
|
||||||
pc_string, "breakpoint");
|
pc_string, "breakpoint");
|
||||||
}
|
}
|
||||||
else if (status == WAMR_SIG_SINGSTEP) {
|
else if (status == WAMR_SIG_SINGSTEP) {
|
||||||
len += snprintf(tmpbuf + len, MAX_PACKET_SIZE - len,
|
(void)snprintf(tmpbuf + len, MAX_PACKET_SIZE - len,
|
||||||
"thread-pcs:%" PRIx64 ";00:%s;reason:%s;", pc,
|
"thread-pcs:%" PRIx64 ";00:%s;reason:%s;", pc,
|
||||||
pc_string, "trace");
|
pc_string, "trace");
|
||||||
}
|
}
|
||||||
else { /* status > 0 (== 0 is checked at the function beginning) */
|
else { /* status > 0 (== 0 is checked at the function beginning) */
|
||||||
len += snprintf(tmpbuf + len, MAX_PACKET_SIZE - len,
|
(void)snprintf(tmpbuf + len, MAX_PACKET_SIZE - len,
|
||||||
"thread-pcs:%" PRIx64 ";00:%s;reason:%s;", pc,
|
"thread-pcs:%" PRIx64 ";00:%s;reason:%s;", pc,
|
||||||
pc_string, "signal");
|
pc_string, "signal");
|
||||||
}
|
}
|
||||||
|
@ -624,7 +657,8 @@ void
|
||||||
handle_get_write_memory(WASMGDBServer *server, char *payload)
|
handle_get_write_memory(WASMGDBServer *server, char *payload)
|
||||||
{
|
{
|
||||||
size_t hex_len;
|
size_t hex_len;
|
||||||
int32 offset, act_len;
|
int offset;
|
||||||
|
int32 act_len;
|
||||||
uint64 maddr, mlen;
|
uint64 maddr, mlen;
|
||||||
char *buff;
|
char *buff;
|
||||||
bool ret;
|
bool ret;
|
||||||
|
|
|
@ -9,10 +9,10 @@
|
||||||
#include "gdbserver.h"
|
#include "gdbserver.h"
|
||||||
|
|
||||||
int
|
int
|
||||||
wasm_debug_handler_init();
|
wasm_debug_handler_init(void);
|
||||||
|
|
||||||
void
|
void
|
||||||
wasm_debug_handler_deinit();
|
wasm_debug_handler_deinit(void);
|
||||||
|
|
||||||
void
|
void
|
||||||
handle_interrupt(WASMGDBServer *server);
|
handle_interrupt(WASMGDBServer *server);
|
||||||
|
|
|
@ -2,6 +2,13 @@
|
||||||
# Copyright (c) 2020-2021 Alibaba Cloud
|
# Copyright (c) 2020-2021 Alibaba Cloud
|
||||||
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||||
|
|
||||||
|
# Yes. To solve the compatibility issue with CMAKE (>= 4.0), we need to update
|
||||||
|
# our `cmake_minimum_required()` to 3.5. However, there are CMakeLists.txt
|
||||||
|
# from 3rd parties that we should not alter. Therefore, in addition to
|
||||||
|
# changing the `cmake_minimum_required()`, we should also add a configuration
|
||||||
|
# here that is compatible with earlier versions.
|
||||||
|
set(CMAKE_POLICY_VERSION_MINIMUM 3.5 FORCE)
|
||||||
|
|
||||||
set (LIB_RATS_DIR ${CMAKE_CURRENT_LIST_DIR})
|
set (LIB_RATS_DIR ${CMAKE_CURRENT_LIST_DIR})
|
||||||
|
|
||||||
if ("$ENV{SGX_SSL_DIR}" STREQUAL "")
|
if ("$ENV{SGX_SSL_DIR}" STREQUAL "")
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user