forked from bytecodealliance/wasm-micro-runtime
-
Notifications
You must be signed in to change notification settings - Fork 0
Merge bytecodealliance:main into wenyongh:main #454
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Avoid hardcoding the path of wasi-sdk in wamr_toolchain.cmake, allow passing -w [wasi-sdk path] to build_sdk.sh, allow passing OUT_DIR to app-sdk and runtime-sdk, and optimize message information.
Enable emitting custom name section to aot file when adding `--enable-dump-call-stack` or `--enable-dump-call-stack` to wamrc and there is custom name section in wasm file, which can be generated by wasi-sdk/emcc "-g" option. So aot runtime can also get the function name from the custom name section instead of export section, to which developer should use `--export-all` for wasi-sdk/emcc to generate export function names.
For cmake based project, there are default values in .cmake, but for other build system, may these symbols were not defined in their build system and warnings (XXX is not defined) were generated while building. Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
Enhance workflows by caching llvm directories directly instead of caching the llvm-xxx.tar.gz packages, so as to reduce the time consumption of unpacking the cached LLVM packages.
Fix llvm binaries cache missed issue in spec test workflow, fix CI Dockerfile issue and refine code format for libc_builtin_wrapper.c.
Remove duplicated wasi_dircookie_t typedef in libc_wasi_wrapper.h to fix clang warnings.
Support random debug port by assigning port = 0, and update help and document.
Build several projects in wamr-test-suites with multiple cores to reduce the compilation time.
Simplify some string size calculation when emitting AOT file Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
Add CI tasks on SGX platform: build iwasm with some feature combinations build and run some samples test spec cases with interpreter mode and AOT mode
Currently the string in the wasm/aot file will be duplicated and stored into const string list/set in interpreter/aot loader, which leads to extra unnecessary memory consumption if the file buffer can be referred to after loading. We refine the string storage by: - if the file buffer can be referred to after loading and it is writable, we reuse the file buffer to store the string but not store it into the const string set: move string backward and append '\0' - emit string with '\0' only for XIP mode in which the AOT file is readonly - if the file buffer cannot be referred to, e.g. in app manager, keep the same behavior as before Signed-off-by: Wenyong Huang <wenyong.huang@intel.com>
Port spec-test-script/all.sh to spec-test-script/all.py and enable to run spec cases with multiple threads parallelly: - It reduces spec_test.yml from ~14min to ~9min and reduces compilation_on_sgx.yml from ~18min to ~12min - run `./test_wamr.sh` will keep the same experience likes before by default - run `./test_wamr.sh -P` will enable parallelism mode - in parallelism mode, all.py will be in a less-output mode. It only outputs the last words of failed cases and will not output logs for those passed
Fix pointer overflow of `(uint8 *)symbol_addr + reloc_addend` detected by UBSan: ``` core/iwasm/aot/arch/aot_reloc_x86_64.c:232:43: runtime error: addition of unsigned offset to 0x000041209004 overflowed to 0x000041209000 SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior core/iwasm/aot/arch/aot_reloc_x86_64.c:232:43 ```
Fix fail to get builtin functions in indirect call (XIP) mode, e.g. function aot_alloc_frame, aot_memory_init, aot_table_init and so on. Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
This patch enables huge page support for posix platforms for performance reason, if the request size to mmap is larger than 2MB, then we use madvise to set some pages to huge page. And add macro control to enable tracing the mmap/munmap. Signed-off-by: Wenyong Huang <wenyong.huang@intel.com>
Enable LLVM link time optimization for AOT and enable it by default, and provide "wamrc --disable-llvm-lto" option to disable it. And modify the spec test script, disable it by default when testing spec cases. Signed-off-by: Wenyong Huang <wenyong.huang@intel.com>
Fix some potential pointer overflows in aot applying relocations and several other places. And add sanitizer compiler flags to wamrc CMakeLists.txt to detect such issues.
Add more reloc symbols for target arm/thumb/riscv and implement relocation type R_ARM_ABS32 for thumb. Tested in buildroot qemu.
Apply clang format for c source files under samples folder
Applied on the nuttx platform, some memory configurations are added, and aot and interp can be completely closed or opened, thereby reducing the flash size.
Enable ref types feature and bulk memory feature by default for wamrc and provide "--disable-ref-types", "--disable-bulk-memory" to disable them. And remove the ref_type_flag option in wasm_loader.c which is used to control whether to enable ref types or not when ENABLE_REF_TYPES macro is enabled in wamrc. As the wasm binary format with ref types is compatible with the binary format before, we can remove the option. Also update the spec test scripts.
…844) The destroy_callback_list variable in thread_manager_destroy is not cleared. When wamr is started as a task, after exiting and restarting, it will loop endlessly in traverse_list. Signed-off-by: zhouliang3 <zhouliang3@xiaomi.com>
Fix compilation error on Win32 platform.
- use platform independent data types in debug-engine library - add os_socket APIs and provide windows and posix implementation - avoid using platform related header files in non-platform layer - use format specifiers macros for sprintf and sscanf - change thread handle type from uint64 to korp_tid - add lock when sending socket packet to avoid thread racing
And fix compilation error of when build wamrc, fix compilation warnings
Fix ocall_poll incorrectly defined issue in which poll_fds should be defined as [in, out] Fix is_xip_file incorrectly check issue
Fix the sensor framework timer issue reported by #884 when setting `ms_to_next_check`, and unify the type of time related args/vars to uint32 to avoid potential type conversion issues, and fix the compile warnings. And update the sensor sample by creating two sensors to confirm that the fix works correctly.
Update the Zephyr document to provide more detailed instructions, and add info about espressif toolchain too. Add ESP32C3 (RISC-V) and Particle Argon boards support to the zephyr platform sample. More boards are possible, but the script doesn't scale well and is to be improved in future. Add Dockerfile to kickstart a Zephyr development environment as it can be rather confusing for new users.
Refer to https://github.com/WebAssembly/WASI/blob/main/design/application-abi.md to check the WASI ABI compatibility: - Command (main module) may export _start function with signature "()" - Reactor (sub module) may export _initialize function with signature "()" - _start and _initialize can not be exported at the same time - Reactor cannot export _start function - Command and Reactor must export memory And - Rename module->is_wasi_module to module->import_wasi_api - Refactor wasm_loader_find_export() - Remove MULTI_MODULE related codes from mini_loader - Update multi-module samples - Fix a "use-after-free" issue. Since we reuse the memory instance of sub module, just to protect it from freeing an imported memory instance
And fix os_thread_signal_init issue on windows platform
Previously, "linux" was hardcoded in the root CMakeLists.txt, so it was impossible to build on anything but Linux, even when specifying WAMR_BUILD_PLATFORM. Signed-off-by: Piotr Sikora <piotrsikora@google.com>
Add extern "C" in libc-builtin-sysroot pthread.h to fix mulit-thread wasm app compiling error with C++ compiler
Various fixes and beautifications coordinated with @1c3t3a, fixes 2 of the 3 all remaining issues from #892: - enable to os_mmap executable memory - fix os_malloc/os_realloc/os_free issues - implement os_thread_get_stack_boundary - add build scripts to include with esp-idf to use wamr as an ESP-IDF component - update sample and document
Remove hardcoded stack size in thread_manager.c Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
Wrap data width according to atomic opcode specified Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
Upgrade uvwasi to 1.42.0 and fix Android link issues reported by #934
Fix some issues on MacOS platform - Enable libc-wasi by default - Set target abi to "gnu" if it is not set for wamrc to avoid generating object file of unsupported Mach-O format - Set `<vendor>-<sys>` info according to target abi for wamrc to support generating AOT file for other OSs but not current host - Set cpu name if arch/abi/cpu are not set to avoid checking SIMD capability failed - Set size level to 1 for MacOS/Windows platform to avoid relocation type unsupported warning - Clear posix_memmap.c compiling warning - Fix spec case test script issues, enable test spec cases on MacOS Signed-off-by: Wenyong Huang <wenyong.huang@intel.com>
GetCurrentThreadStackLimits dynamically for Windows platform according to suggestion in #902 And fix some compiling warnings on Windows platform
Enable running XIP file on Windows platform. And add more strict checks for wamrc to report error when the input file is same with output file, or the input file is AOT file but not wasm file.
CMAKE_SYSTEM_PROCESSOR by default uses `uname -m` which returns aarch64 for some arm64 hardware.
Put Vectorize passes before GVN/LICM passes as normally the former gains more performance improvement and the latter might break the optimizations for the former. Can improve performance of several sightglass cases. And don't check exception throw after calling an AOT function if it is and recursive call, similar to handing of Spec tail call opcode.
Checked with grammarly
And refine the code format of thread_manager.h
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.