nuttx-apps/interpreters/wamr/Kconfig
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

224 lines
5.6 KiB
Plaintext

#
# For a description of the syntax of this configuration file,
# see the file kconfig-language.txt in the NuttX tools repository.
#
config INTERPRETERS_WAMR
tristate "Webassembly Micro Runtime"
default n
if INTERPRETERS_WAMR
config INTERPRETERS_WAMR_VERSION
string "WAMR Version"
default "WAMR-04-15-2021"
---help---
Version WAMR-09-29-2020 and later (include main) supported.
config INTERPRETERS_IWASM_TASK
bool "Webassembly iwasm task"
default y
if INTERPRETERS_IWASM_TASK
config INTERPRETERS_WAMR_PRIORITY
int "Webassembly Micro Runtime priority"
default 100
config INTERPRETERS_WAMR_STACKSIZE
int "Webassembly Micro Runtime stack size"
default 8192
endif # INTERPRETERS_IWASM_TASK
config INTERPRETERS_WAMR_AOT
bool "Enable AOT"
select ARCH_USE_TEXT_HEAP if ARCH_HAVE_TEXT_HEAP
default n
config INTERPRETERS_WAMR_AOT_QUICK_ENTRY
bool "Enable AOT quick entry"
default n
depends on INTERPRETERS_WAMR_AOT
---help---
Note: This option only works with WAMR 1.3.1 or later.
Enable AOT quick entry to improve performance for call
AOTed function from host side in some cases with simple
signature.
Enable this option will increase the size of runtime, ~8KB.
choice
prompt "Enable interpreter"
default INTERPRETERS_NONE
config INTERPRETERS_WAMR_FAST
bool "Enable fast interpreter"
config INTERPRETERS_WAMR_CLASSIC
bool "Enable classic interpreter"
config INTERPRETERS_NONE
bool "Disable interpreter"
endchoice # Enable interpreter
config INTERPRETERS_WAMR_DEBUG_AOT
bool "Enable debugger support for AOT modules"
default n
depends on INTERPRETERS_WAMR_AOT
config INTERPRETERS_WAMR_DEBUG_INTERP
bool "Enable debugger support in the interpreter"
default n
# Note: It only works with the classic interpreter
depends on INTERPRETERS_WAMR_CLASSIC
# Note: It uses thread-manager internally
depends on INTERPRETERS_WAMR_THREAD_MGR
# Note: It sets up the listening socket with SO_LINGER
depends on NET_TCP
depends on NET_SOLINGER
config INTERPRETERS_WAMR_LOG
bool "Enable log"
default n
config INTERPRETERS_WAMR_LIBC_BUILTIN
bool "Enable built-in libc"
default n
config INTERPRETERS_WAMR_BUILD_MODULES_FOR_NUTTX
bool "Build WASM modules for NuttX system interface (Experimental)"
default n
depends on INTERPRETERS_WAMR_LIBC_BUILTIN
config INTERPRETERS_WAMR_LIBC_WASI
bool "Enable WASI libc"
select PSEUDOFS_SOFTLINKS
default n
---help---
Note: As of writing this, this works only with main branch of
wasm-micro-runtime.
I.e. INTERPRETERS_WAMR_VERSION="main"
Note: As of writing this, most of the filesystem operations are
not implemented. (Mainly because of lack of openat family of
the API in NuttX.)
config INTERPRETERS_WAMR_MULTI_MODULE
bool "Enable multi module support"
default n
config INTERPRETERS_WAMR_MINILOADER
bool "Enable mini-loader"
default n
---help---
Mini-loader don't check the integrity of wasm module
config INTERPRETERS_WAMR_REF_TYPES
bool "Enable reference types support"
default n
config INTERPRETERS_WAMR_ENABLE_SPEC_TEST
bool "Enable spectest support"
default n
config INTERPRETERS_WAMR_TAIL_CALL
bool "Enable tail call support"
default n
---help---
This only available for WAMR 1.3.0 later (don't include 1.3.0)
config INTERPRETERS_WAMR_STACK_GUARD_SIZE
int "Custom stack guard size"
default 1024
---help---
Reserve some space in stack as guard to detect stack overflow.
Please consider this extra stack consumption when deciding the stack
size of your NuttX task on which you run WAMR.
The default value here (1024) was chosen to match the default value on
the majority of other platforms, including Linux. It also matches
the expections in the WAMR AoT compiler.
On the other hand, it might be a bit larger than what's strictly
necessary, especially for typical NuttX targets.
config INTERPRETERS_WAMR_THREAD_MGR
bool "Enable thread manager"
default n
config INTERPRETERS_WAMR_LIB_WASI_THREADS
bool "Enable wasi-threads"
default n
---help---
See https://github.com/bytecodealliance/wasm-micro-runtime/blob/main/doc/pthread_impls.md
config INTERPRETERS_WAMR_LIB_PTHREAD
bool "Enable lib pthread (legacy)"
default n
---help---
See https://github.com/bytecodealliance/wasm-micro-runtime/blob/main/doc/pthread_impls.md
config INTERPRETERS_WAMR_LIB_PTHREAD_SEMAPHORE
bool "Enable semaphore"
depends on INTERPRETERS_WAMR_LIB_PTHREAD
default n
config INTERPRETERS_WAMR_SHARED_MEMORY
bool "Enable shared memory"
default n
config INTERPRETERS_WAMR_BULK_MEMORY
bool "Enable bluk memory"
default n
config INTERPRETERS_WAMR_PERF_PROFILING
bool "Enable performance profiling"
default n
config INTERPRETERS_WAMR_MEMORY_PROFILING
bool "Enable memory profiling"
default n
config INTERPRETERS_WAMR_MEMORY_TRACING
bool "Enable memory tracing"
default n
config INTERPRETERS_WAMR_DUMP_CALL_STACK
bool "Enable dump call stack (on exception)"
default n
config INTERPRETERS_WAMR_DISABLE_HW_BOUND_CHECK
bool "Disable hardware bound check"
default n
config INTERPRETERS_WAMR_LOAD_CUSTOM_SECTIONS
bool "Enable load custom section support"
default n
config INTERPRETERS_WAMR_CUSTOM_NAME_SECTIONS
bool "Enable custom name section support"
default n
config INTERPRETERS_WAMR_GLOBAL_HEAP_POOL
bool "Enable global heap pool"
default n
if INTERPRETERS_WAMR_GLOBAL_HEAP_POOL
config INTERPRETERS_WAMR_GLOBAL_HEAP_POOL_SIZE
int "Global heap pool size (in KB)"
default 128
endif # INTERPRETERS_WAMR_GLOBAL_HEAP_POOL
config INTERPRETERS_WAMR_CONFIGUABLE_BOUNDS_CHECKS
bool "Configuable bounds checks"
default n
---help---
Bounds checks enabled by default. With this option, you can
disable bounds checks passing --disable-bounds-checks to
iwasm.
endif # INTERPRETERS_WAMR