doc/build_wasm_app.md: Add a note about aot abi compatibility (#2993)

This commit is contained in:
YAMAMOTO Takashi 2024-01-10 13:10:40 +09:00 committed by GitHub
parent 0d4ade6b4c
commit 49ac1e0636
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -372,6 +372,20 @@ Examples: wamrc -o test.aot test.wasm
wamrc --target=i386 --format=object -o test.o test.wasm
```
## AoT-compiled module compatibility among WAMR versions
When making major ABI changes for AoT-compiled modules, we bump
`AOT_CURRENT_VERSION` constant in `core/config.h` header.
The runtime rejects to load a module AoT-compiled with wamrc with
a different `AOT_CURRENT_VERSION`.
We try our best to maintain our runtime ABI for AoT-compiled modules
compatible among WAMR versions with the same `AOT_CURRENT_VERSION`
so that combinations of older wamrc and newer runtime usually work.
However, there might be minor incompatibilities time to time.
For productions, we recommend to use the exactly same version of
wamrc and the runtime.
## AoT compilation with 3rd-party toolchains
`wamrc` uses LLVM to compile wasm bytecode to AoT file, this works for most of the architectures, but there may be circumstances where you want to use 3rd-party toolchains to take over some steps of the compilation pipeline, e.g.