Commit graph

397 commits

Author SHA1 Message Date
xuxin19
fee82bd3d3 cmake(build):add missing basic and nxlooper cmake script
Signed-off-by: xuxin19 <xuxin19@xiaomi.com>
2024-11-18 13:52:45 +08:00
Xiang Xiao
c7530f5e45 quickjs: fix mp_mul multiple definition
in function `mp_mul':
apps/interpreters/quickjs/quickjs/libbf.c:1179: multiple definition of `mp_mul';
nuttx/staging/libapps.a:apps/math/libtommath/libtommath/bn_mp_mul.c:8: first defined here

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2024-11-16 21:34:11 +01:00
wenlingyun1
4a1c40aa96 update quickjs patch for cmake compilation
Signed-off-by: wenlingyun1 <wenlingyun1@xiaomi.com>
2024-11-11 17:17:22 +08:00
wenlingyun1
1adfefd88d add CMakeLists.txt for quickjs
Signed-off-by: wenlingyun1 <wenlingyun1@xiaomi.com>
2024-11-11 17:17:22 +08:00
Huang Qi
3799e0922d wamr: add iwasm include directory to nuttx target
This patch allow from other module that outside
WAMR directory include `wasm_export.h` to use WAMR as library.

Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
2024-11-04 02:27:50 +08:00
yinshengkai
427b107dac quickjs: fix mp_mul multiple definition
in function `mp_mul':
apps/interpreters/quickjs/quickjs/libbf.c:1179: multiple definition of `mp_mul';
nuttx/staging/libapps.a:apps/math/libtommath/libtommath/bn_mp_mul.c:8: first defined here

Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2024-10-13 10:34:43 +08:00
xuxingliang
cb812cb2da luasyslog: add cmake support
nsh>
nsh> lua
Lua 5.4.0  Copyright (C) 1994-2020 Lua.org, PUC-Rio
> for k,v in pairs(lsyslog)
>> do
>> print(k,v)
>> end
open    function: 0x402d49c0
FACILITY_LOCAL4 0.0
FACILITY_AUTH   0.0
_COPYRIGHT      Copyright (C) 1994-2021 Nicolas Casalini (DarkGod)
FACILITY_DAEMON 0.0
FACILITY_LOCAL1 0.0
LOG_WARNING     4.0
close   function: 0x402d4990
FACILITY_AUTHPRIV       0.0
LOG_ALERT       1.0
_DESCRIPTION    LuaSyslog allows to use log to an unix Syslog daemon, direct or via LuaLogging
FACILITY_CRON   0.0
FACILITY_FTP    0.0
LOG_DEBUG       7.0
FACILITY_LOCAL0 0.0
LOG_NOTICE      5.0
FACILITY_LOCAL5 0.0
LOG_EMERG       0.0
FACILITY_LPR    0.0
_VERSION        LuaSyslog 2.0.1
FACILITY_LOCAL7 0.0
FACILITY_KERN   0.0
log     function: 0x402d4944
FACILITY_LOCAL2 0.0
LOG_INFO        6.0
FACILITY_NEWS   0.0
FACILITY_LOCAL6 0.0
FACILITY_SYSLOG 0.0
FACILITY_USER   0.0
FACILITY_LOCAL3 0.0
FACILITY_UUCP   0.0
LOG_ERR 3.0
FACILITY_MAIL   0.0
LOG_CRIT        2.0
> lsyslog.log(lsyslog.LOG_EMERG, "Hello")
Hello
>

Signed-off-by: xuxingliang <xuxingliang@xiaomi.com>
2024-09-30 15:27:03 +08:00
Huang Qi
9320597c00 wamr: Add external module registration mechanism
This patch adds module registration mechanism for WAMR runtime.

To register a module, these steps are required:
1. Include Module.mk in your module's Makefile
2. Define WAMR_MODULE_NAME as the module name
3. Implement bool wamr_module_WAMR_MODULE_NAME_register(void) function in your module's source file
4. Enable INTERPRETERS_WAMR_EXTERNAL_MODULE_REGISTRY in menuconfig

Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
2024-09-28 15:47:40 +08:00
YAMAMOTO Takashi
c03e3d0b9e toywasm: regen
```
REF=d7bb4aaef08be2d7821891f17bd9ef82ac1ba358 ./regen.sh
```
2024-09-27 01:15:04 +08:00
YAMAMOTO Takashi
9656e44c9e toywasm: bump to v63.0.0 2024-09-27 01:15:04 +08:00
xuxin19
b4d794cbd5 Makefile:complete missing DEPPATH
Signed-off-by: xuxin19 <xuxin19@xiaomi.com>
2024-09-23 08:41:29 +08:00
xuxin19
3d8dc5dce5 cmake:implement CMake build for NuttX Lua interpreter
add CMake module for register lua mod
nsh> lua
Lua 5.4.0  Copyright (C) 1994-2020 Lua.org, PUC-Rio
> hello.say_hello()
Hello World!
> io.write("abs is =",math.abs(-10),"\n")
abs is =10
> os.exit()
nsh>

Signed-off-by: xuxin19 <xuxin19@xiaomi.com>
2024-09-13 12:31:10 +08:00
Daniel Jasinski
1fdf13478f build: Missing CMakeLists.txt for bas
This correctly enables BASIC interpreter in CMake based
build for at least sim:bas board configuration.

Signed-off-by: Daniel Jasinski <jasinskidaniel95szcz@gmail.com>
2024-08-11 10:22:34 +08:00
YAMAMOTO Takashi
9a375abc08 toywasm: regen
```
REF=4db87d399cc871845237557020dae595cd6384dc ./regen.sh
```
2024-07-28 15:52:36 +08:00
YAMAMOTO Takashi
7570eae2ce toywasm: bump to v57.0.0 2024-07-28 15:52:36 +08:00
YAMAMOTO Takashi
2ef3eb25c0 wamr: add a few missing options to match the wamr repo counterpart 2024-07-18 23:02:20 +08:00
YAMAMOTO Takashi
437cf845fa wamr: bump the default version
There is little reason to prefer the ancient version from 2021.
2024-07-15 09:39:26 +08:00
YAMAMOTO Takashi
a0d98f1951 wamr: add an option for exception-handling 2024-07-12 12:08:05 +08:00
YAMAMOTO Takashi
9715b813d3 toywasm: regen for v54.0.0
```
REF=034952e424600381b45d9d400735bfeb96fd5848 ./regen.sh
```
2024-07-12 12:07:44 +08:00
YAMAMOTO Takashi
a9e7b84c81 toywasm: bump to v54.0.0 2024-07-12 12:07:44 +08:00
YAMAMOTO Takashi
72150f5035 toywasm: regen
```
REF=b43dd5312988a6dbc2b165c5956697d7f1d16000 ./regen.sh
```
2024-06-19 13:22:04 +08:00
YAMAMOTO Takashi
1b48e80955 toywasm: bump to v48.0.0 2024-06-19 13:22:04 +08:00
YAMAMOTO Takashi
364f8cd411 toywasm: regen
```
REF=7c60b048825b821a9398529d3af55514a62a3b7c ./regen.sh
```
2024-06-10 14:26:53 +08:00
YAMAMOTO Takashi
9ce5ebb611 toywasm: Bump to v46.0.0 2024-06-10 14:26:53 +08:00
YAMAMOTO Takashi
90a745b520 toywasm: regen for v45.0.0
```
REF=9f77f3519f84e9bb0074d855a04d731a5f56ce84 ./regen.sh
```
2024-05-26 00:41:12 +08:00
YAMAMOTO Takashi
edb8138e04 toywasm: enable TOYWASM_ENABLE_WASM_CUSTOM_PAGE_SIZES 2024-05-26 00:41:12 +08:00
YAMAMOTO Takashi
dd03701494 toywasm: bump to v45.0.0 2024-05-26 00:41:12 +08:00
YAMAMOTO Takashi
a9ab5ec8a6 wamr: rename a few recently-added nuttx options
from:
ARCH_TEXT_HEAP_SEPARATE_DATA_ADDRESS
ARCH_TEXT_HEAP_WORD_ALIGNED_READ

to:
ARCH_HAVE_TEXT_HEAP_SEPARATE_DATA_ADDRESS
ARCH_HAVE_TEXT_HEAP_WORD_ALIGNED_READ
2024-05-21 08:52:46 +08:00
yinshengkai
13cc85c055 toywasm: ignore compile warnings
Will cause compilation warning if NDEBUG is defined We can't modify the code of the external library, so let's ignore it

Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2024-05-17 13:41:31 +09:00
YAMAMOTO Takashi
bc68ce993b wamr: tweak the defaults according to the new ARCH kconfig options 2024-05-15 18:41:43 -03:00
YAMAMOTO Takashi
385e2f0904 wamr: remove esp32s3 dependencies from a few options
While they are esp32s3 specific right now,
we can make them more generic later.
2024-05-14 22:07:45 +08:00
YAMAMOTO Takashi
f50fbe78aa wamr: Add a few options for esp32s3
The corresponding WAMR change:
https://github.com/bytecodealliance/wasm-micro-runtime/pull/2348
2024-05-14 22:07:45 +08:00
YAMAMOTO Takashi
02f88fbcaa wamr: flip the default of INTERPRETERS_WAMR_DISABLE_HW_BOUND_CHECK
Also, add a help text to explain the current situation.

cf. https://github.com/bytecodealliance/wasm-micro-runtime/pull/3419
2024-05-14 18:02:44 +08:00
YAMAMOTO Takashi
41f891f9ba toywasm: bump to v44 2024-05-14 00:36:11 +08:00
YAMAMOTO Takashi
649a863d4d toywasm: regen for v44
```
REF=76b9d7088ab321e329b6f958360fb05cebd3df9f ./regen.sh
```
2024-05-14 00:36:11 +08:00
YAMAMOTO Takashi
29028d480b toywasm: Regen
```
REF=aaf74d68b6c57060da62ef9fc056f9f3a776e845 ./regen.sh
```
2024-04-25 13:48:35 +08:00
YAMAMOTO Takashi
f6f996d1f3 toywasm: Bump to v42 2024-04-25 13:48:35 +08:00
simbit18
000a8bcdf1 Fix nuttx coding style
fix
error: Relative file path does not match actual file
error: Long line found
error: Operator/assignment must be preceded with whitespace
error: Missing blank line after comment
2024-04-18 09:56:48 +08:00
xuxin19
77a1599e44 cmake:migrate wamr to CMake build
Signed-off-by: xuxin19 <xuxin19@xiaomi.com>
2024-04-04 12:09:26 +08:00
YAMAMOTO Takashi
60cd8ff592 toywasm: regen
```
REF=4ccb44f9f6477412c289f7ffad6a0f660e99d5a5 ./regen.sh
```
2024-02-21 18:39:06 -08:00
YAMAMOTO Takashi
e3205459af toywasm: update to v41 2024-02-21 18:39:06 -08:00
YAMAMOTO Takashi
46888aa8e4 toywasm: regen for v38
```
REF=b3e060f308db23e21aaa3004484bf9335e4d3fcc ./regen.sh
```
2024-02-05 03:37:32 -08:00
YAMAMOTO Takashi
aba3e27c6c toywasm: update to v38 2024-02-05 03:37:32 -08:00
YAMAMOTO Takashi
b43340b0aa toywasm: regen
```
REF=15e6585cecd8049a03a901a4ed8a6b2dd3c18e48 ./regen.sh
```
2024-01-30 04:09:27 -08:00
YAMAMOTO Takashi
df573bb024 toywasm: bump the version 2024-01-30 04:09:27 -08:00
Huang Qi
dbcbec363d wamr: Add new option to enable quick aot entry
Enable AOT quick entry to improve performance for call
AOTed function from host side in some cases with simple
signature.

Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
2024-01-19 01:02:59 -08:00
YAMAMOTO Takashi
70108ae59e wamr: bump the default stack guard size
using 0 by default seems a bit too aggressive to me.

1024 here is what would have been used before this kconfig knob
was introduced by https://github.com/apache/nuttx-apps/pull/1259.
It also matches some expectations in the recent wamrc.
40b430fd24/core/iwasm/compilation/aot_emit_aot_file.c (L2672-L2678)
2024-01-19 09:08:10 +01:00
YAMAMOTO Takashi
8930743831 Wasm.mk: disable by default
Fixes partly: https://github.com/apache/nuttx-apps/issues/2046

Also, this fixes warnings like:
```
spacetanuki% ./tools/configure.sh -E sim:wamr
  Copy files
  Select CONFIG_HOST_MACOS=y
  Refreshing...
/usr/local/bin/bash: line 1: /bin/clang: No such file or directory
/usr/local/bin/bash: line 1: /bin/clang: No such file or directory              /usr/local/bin/bash: line 1: /bin/clang: No such file or directory
/usr/local/bin/bash: line 1: /bin/clang: No such file or directory
/usr/local/bin/bash: line 1: /bin/clang: No such file or directory
/usr/local/bin/bash: line 1: /bin/clang: No such file or directory
/usr/local/bin/bash: line 1: /bin/clang: No such file or directory
/usr/local/bin/bash: line 1: /bin/clang: No such file or directory
/usr/local/bin/bash: line 1: /bin/clang: No such file or directory
CP: arch/dummy/Kconfig to /Users/yamamoto/git/nuttx/nuttx/arch/dummy/dummy_kconf
ig
CP: boards/dummy/Kconfig to /Users/yamamoto/git/nuttx/nuttx/boards/dummy/dummy_k
config
/usr/local/bin/bash: line 1: /bin/clang: No such file or directory
/usr/local/bin/bash: line 1: /bin/clang: No such file or directory
/usr/local/bin/bash: line 1: /bin/clang: No such file or directory
/usr/local/bin/bash: line 1: /bin/clang: No such file or directory
/usr/local/bin/bash: line 1: /bin/clang: No such file or directory
/usr/local/bin/bash: line 1: /bin/clang: No such file or directory

```
2024-01-13 02:16:16 -08:00
Huang Qi
c4e78cd10a wamr: Add new option to enable tail call support
See also:
https://github.com/bytecodealliance/wasm-micro-runtime/pull/2975

Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
2024-01-06 04:34:50 -08:00
YAMAMOTO Takashi
f12586c51e interpreters/wamr: add INTERPRETERS_WAMR_DEBUG_AOT option
At least it's sometimes useful for nuttx sim.

eg. (modified a bit to avoid github autolinks)
```
spacetanuki% lldb ./nuttx
(lldb) target create "./nuttx"
Current executable set to '/Users/yamamoto/git/nuttx/nuttx/nuttx' (x86_64).
(lldb) settings set plugin.jit-loader.gdb.enable on
(lldb) b foo
Breakpoint 1: no locations (pending).
WARNING:  Unable to resolve breakpoint to any actual locations.
(lldb) r
Process 37011 launched: '/Users/yamamoto/git/nuttx/nuttx/nuttx' (x86_64)

NuttShell (NSH) NuttX-10.4.0
nsh> mount -t hostfs -o fs=/tmp/wasm /mnt
nsh> iwasm /mnt/test.aot
1 location added to breakpoint 1
Process 37011 stopped
* thread #_1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
    frame #_0: 0x0000000105800673 JIT(0x1058002d4)`foo(exenv=0x0000000101284280) at test.c:5
   2
   3    __attribute__((noinline))
   4    void foo()
-> 5    {
   6        printf("hello from %s\n", __func__);
   7    }
   8
Target 0: (nuttx) stopped.
(lldb) bt
* thread #_1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
  * frame #_0: 0x0000000105800673 JIT(0x1058002d4)`foo(exenv=0x0000000101284280) at test.c:5
    frame #_1: 0x000000010580077a JIT(0x1058002d4)`bar(exenv=0x0000000101284280) at test.c:12:2
    frame #_2: 0x000000010580086a JIT(0x1058002d4)`baz(exenv=0x0000000101284280) at test.c:19:2
    frame #_3: 0x0000000105800972 JIT(0x1058002d4)`__main_argc_argv(exenv=<unavailable>, argc=<unavailable>, argv=<unavailable>) at test.c:26:3
    frame #_4: 0x00000001058061aa JIT(0x1058002d4)`aot_func#14 + 278
    frame #_5: 0x00000001058005cd JIT(0x1058002d4)`aot_func#2 + 153
    frame #_6: 0x00000001000e250f nuttx`push_args_end at invokeNative_em64.s:61
    frame #_7: 0x000000010013851a nuttx`wasm_runtime_invoke_native(exec_env=0x0000000101284280, func_ptr=0x0000000105800534, func_type=0x00000001011e2e20, signature=0x0000000000000000, attachment=0x0000000000000000, argv=0x0000000000000000, argc=0, argv_ret=0x0000000000000000) at wasm_runtime_common.c:4631:9
    frame #_8: 0x00000001000da1ae nuttx`aot_call_function(exec_env=0x0000000101284280, function=0x00000001011e1fb0, argc=0, argv=0x0000000000000000) at aot_runtime.c:1654:15
    frame #_9: 0x0000000100134b56 nuttx`wasm_runtime_call_wasm(exec_env=0x0000000101284280, function=0x00000001011e1fb0, argc=0, argv=0x0000000000000000) at wasm_runtime_common.c:2048:15
    frame #_10: 0x00000001000fbad4 nuttx`execute_main(module_inst=0x00000001011e3890, argc=1, argv=0x00000001011b63f8) at wasm_application.c:112:15
    frame #_11: 0x00000001000fb995 nuttx`wasm_application_execute_main(module_inst=0x00000001011e3890, argc=1, argv=0x00000001011b63f8) at wasm_application.c:238:11
    frame #_12: 0x00000001000ea1a0 nuttx`app_instance_main(module_inst=0x00000001011e3890) at main.c:113:5
    frame #_13: 0x00000001000e9d60 nuttx`iwasm_main(argc=1, argv=0x00000001011b63f8) at main.c:947:21
    frame #_14: 0x0000000100023275 nuttx`nxtask_startup(entrypt=(nuttx`iwasm_main at main.c:545), argc=2, argv=0x00000001011b63f0) at task_startup.c:70:8
    frame #_15: 0x000000010001065a nuttx`nxtask_start at task_start.c:134:7
    frame #_16: 0x000000010003a15f nuttx`pre_start at sim_initialstate.c:52:3
(lldb)

```
2023-12-25 04:47:07 -08:00