Commit Graph

1235 Commits

Author SHA1 Message Date
dde6477fa5 Fix iwasm build error when WAMR_BUILD_WASI_NN enabled
A recent change on ./product-mini/platforms/linux/CMakeLists.txt renamed
libiwasm to vmlib, but wasi-nn.cmake still wants to link libiwasm.so.
Replace libiwasm with vmlib in wasi-nn.cmake to resolve iwasm build error
when WAMR_BUILD_WASI_NN enabled.
2025-03-13 17:08:22 +00:00
412631ac13 fix: correct typos and improve comments across multiple files by codespell (#4116)
Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
2025-03-07 08:21:54 +08:00
73998e4c85 fix: fix load aarch64 aot failed (#4114)
Co-authored-by: xiangjia.xj <xiangjia.xj@alibaba-inc.com>
2025-03-04 16:45:47 +08:00
e693608476 log warning instaed of assertion (#4119) 2025-03-01 16:46:41 +08:00
f2e3348305 wasm_loader allocates more spaces for elements (#4099)
- allocate memory for array initialization based on length
- update reference type mapping for struct initialization
2025-02-26 12:58:45 +08:00
968b7d4ea0 fix: add dispose of the debug information builder when destroying compilation context (#4105)
Co-authored-by: xiangjia.xj <xiangjia.xj@alibaba-inc.com>
2025-02-26 12:57:46 +08:00
1252f723c2 feat: use C linkage in aot_comp_option.h for C++ embeding (#4106)
Co-authored-by: xiangjia.xj <xiangjia.xj@alibaba-inc.com>
2025-02-25 07:01:16 +08:00
TL
f1ffbb5b37 cr suggestions 2025-02-24 21:20:07 +00:00
TL
dfcadc6202 prevent data overflow on 32 bit platform for memory.grow 2025-02-24 21:20:07 +00:00
d9c01b39d1 fix: when load aot init expr,no type_idx set. (#4094)
Fix an assertion from *gc_object.c line 91*  `bh_assert(rtt_type->type_flag == WASM_TYPE_STRUCT;`
2025-02-21 15:33:36 +08:00
d0e2a7271c fix(aot_emit_aot_file): prevent buffer emission for zero byte_count (#4095)
if using a debug building of wamrc to run spec test. there will be:
core/iwasm/compilation/aot_emit_aot_file.c:1794:13: runtime error: null pointer passed as argument 2, which is declared to never be null
2025-02-21 07:46:20 +08:00
964037c9b5 feat: add support for EXTERNREF value type and enable AOT validator in fuzz tests (#4083) 2025-02-17 13:34:18 +08:00
159f5890a6 [gc] Subtyping fix (#4075) 2025-02-17 11:55:58 +08:00
71bc3c2d15 Add a conditional check for the macro __STDC_VERSION__ (#4080) 2025-02-14 16:13:15 +08:00
7b724e2382 fix(aot): ensure value_cmp does not exceed br_count in branch table compilation (#4065) 2025-02-06 20:05:33 +08:00
e6a47d5cee In wasm32, fix potential conversion overflow when enlarging 65536 pages (#4064)
fix enlarge 65536 pages conversion overflow in wasm32
2025-02-06 14:48:53 +08:00
376385c608 Update memory allocation functions to use allocator user data (#4043) 2025-02-06 13:15:00 +08:00
67cd5043d3 initial 2025-02-05 09:48:21 +00:00
c6712b4033 add a validator for aot module (#3995)
- Add AOT module validation to ensure memory constraints are met
- Enable AOT validator in build configuration and update related source files
2025-02-05 15:21:49 +08:00
b2c7cb2375 Use wasm32-wasip1 instead of wasm32-wasi target for rust code (#4057)
Rust compiler previously deprecated, and now removed the wasm32-wasi target and replaced it with wasm32-wasip1. This
change updates all the occurrences of wasm32-wasi in the context of Rust compilation.

covers the wasi-nn/test.
2025-02-05 11:31:49 +08:00
b6dea221a6 Fix wasm loader check data segment count (#4039)
correctly report error when datacount section has non-zero data segment count while the data section is not present
2025-01-21 13:08:09 +08:00
e3ddbd58f7 Synchronize the GC spec tests to the commit from December 9. 2024. (#4022)
- Synchronize the GC spec tests to the commit from December 9. 2024.
- Revise the error messages to be consistent with the spec test cases.
- bypass gc spec test on the nuttx platform as a workaround
2025-01-20 09:41:47 +08:00
831e4bbfd5 Refine getting const offsets in wasm loader of fast-interp (#4012)
- Refine const offsets in loader for fast-interp
- handle const cell num overflow
- Use const array, remove list
2025-01-20 09:39:32 +08:00
9c3807e124 Refine read leb int wasm loader of fast interpreter (#4017) 2025-01-14 17:43:29 +08:00
53da420c41 Enable shrunk memory by default and add related configurations (#4008)
- Enable shrunk memory by default and add related configurations
- Improve error messages for memory access alignment checks
- Add documentation for WAMR shrunk memory build option
- Update NuttX workflow to disable shrunk memory build option
2025-01-13 07:09:04 +08:00
02683d2eed Improve stack consistency by ensuring sufficient space for dummy offsets (#4011)
One more corner case: if the `frame_offset` increases and becomes equal to
the `frame_offset_boundary` after the last assignment within the for loop.
2025-01-09 13:11:25 +08:00
a653746b7b Check whether related table has funcref elem in opcode call_indirect (#3999)
* check whether table has funcref elem in call_indirect
* check whether table has funcref elem in call_indirect when gc is enabled
2025-01-06 13:55:43 +08:00
9989b1cc1b [fuzzing] Use software bound-check during fuzzing (#4003)
* Update CMakeLists.txt of fuzzing

- enable software bound-check
- enable wasi
- disable libc builtin and multiple modules

* Fix off-by-one error in result offset calculation for function calls
2025-01-06 11:36:11 +08:00
1958808a24 Fix table index calculations in wasm_loader and wasm_mini_loader (#4004) 2025-01-05 15:27:40 +08:00
099056b076 Ensure __heap_base and __data_end global indices are validated against import count (#3996) 2025-01-03 14:37:09 +08:00
31ff576edf Error message improvement (#4000)
Improve error message in the scenario where the runtime was built
with ref types disabled but the module uses reference types feature.
2025-01-03 10:44:25 +08:00
7f3e0df21c Handle a new scenario where an item is both exported and imported. (#3984) 2024-12-29 15:52:12 +08:00
24ecee83ff Merge pull request #3987 from no1wudi/fix
Break aot_create_comp_data into small functions
2024-12-28 20:25:19 +08:00
38cf274292 Optimize memory initialization handling in AOT loader (#3983)
Save memory if the file buffer is always exist before exit.

Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
2024-12-26 15:15:25 +08:00
9b807660d5 Break aot_create_comp_data into small functions
Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
2024-12-26 09:32:16 +08:00
9598611e35 CMakeLists.txt: Do not require C++ (#3956)
By default, the project() CMake command defaults to C and C++. [1]
Therefore, CMake might perform tests for both C and C++ compilers as
part of the configuration phase.

However, this has the consequence of the configuration phase to fail if
the system does not have a C++ toolchain installed, even if C++ is not
really used by the top-level project under the default settings.

Some configurations might still require a C++ toolchain, so
enable_language is selectively called under such circumstances.

[1]: https://cmake.org/cmake/help/latest/command/project.html
2024-12-20 13:05:50 +08:00
296c3cc69d wasm_export.h: Use "default" visibility for gcc and clang (#3957)
Since the top-level CMakelists.txt is appending `-fvisibility=hidden` to
the compile options, no public symbols are exported by default. This
forbids users from linking against the shared library.

Using `gcc/clang` attributes [1], it is possible to override the definition
for `WASM_RUNTIME_API_EXTERN` so that only required symbols are
correctly exported.

[1]: https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#Common-Function-Attributes
2024-12-19 08:49:13 +08:00
9563909d6c set alignment 4 when loading multi return value (#3955)
set alignment 4 when loading multi return value for all call opcodes
2024-12-12 20:33:46 +08:00
bebdd4ad17 Fix aot table instantiate (#3946) 2024-12-10 20:26:32 +08:00
591b740571 Consume the placeholders that were put when emitting table info (#3940) 2024-12-10 20:26:14 +08:00
kk
c32a6ceae1 Refactor SConscript and add file checks in iwasm.c (#3945) 2024-12-06 14:54:37 +08:00
838dd81e68 don't return an uninitialized trap if argv_to_results fails (#3935)
Currently, if argv_to_results fails (e.g. because an unsupported type is
encountered), an non-null trap with an uninitialized message is
returned.
2024-11-28 11:50:44 +08:00
e09613c722 support WASM_FUNCREF return type in argv_to_results (#3936) 2024-11-28 11:50:16 +08:00
1d111a38d6 Fix loader small bug (#3928) 2024-11-26 10:08:51 +08:00
b0c6d5c23a add testcases for shared heap and fix POP_MEM_OFFSET of memory64 (#3916)
- add testcases for shared_heap
- fix POP_MEM_OFFSET and POP_TBL_ELEM_IDX of memory64

Signed-off-by: wenlingyun1 <wenlingyun1@xiaomi.com>
2024-11-24 11:34:38 +08:00
dbdf3df60b Use plain assignment rather than bh_memcpy_s (#3924) 2024-11-24 11:32:34 +08:00
9d8150efae Fix WASI Path Mapping Processing (#3923)
Filesystem paths can be mapped from the host path to a guest path using
the format `<guest-path>::<host-path>`.

Previously `strtok` was used to find the `::` delimiter. Unfortunately
`strtok` processes each delimiter character individually. This meant
that the code was ~equivalent to `strtok(mapping_copy, ":")` which
breaks with Windows-style paths (E.g. `C:\my_path\`).

To fix this `strstr` is used to search for the exact delimiter.
2024-11-24 11:31:55 +08:00
00c2aa10a8 Drop declarative elements on module instantiation (#3922) 2024-11-24 11:30:00 +08:00
62aca17279 Check possible integer overflow in aot memory boundary check (#3920)
Check possible integer overflow in aot memory boundary check when
the wasm memory is 64-bit.
2024-11-22 16:01:24 +08:00
f2b87d773e Support external toolchain on Windows for aot compiler (#3911)
allowing custom ARC toolchain on Windows
2024-11-19 17:47:05 +08:00