wasm-micro-runtime/wamr-compiler
YAMAMOTO Takashi 908838a5b5
build-scripts/build_llvm.py: bump to llvm 18 (#4259)
* build-scripts/build_llvm.py: bump to llvm 18

cf. https://github.com/bytecodealliance/wasm-micro-runtime/issues/4210

why not 20?
because, as of writing this, 19 is the latest released version for
the xtensa fork of llvm: https://github.com/espressif/llvm-project

why not 19?
because of a bug in the xtensa fork of llvm:
https://github.com/espressif/llvm-project/issues/112

while we can use different versions for different targets,
it's nicer to use the same version everywhere when possible.

* spec-test-script/runtest.py: --size-level=0 for x86-64

with the recent version of LLVM, wamrc --size-level=1 often
generates R_X86_64_32S relocations which fail on load with
the infamous error:

"relocation truncated to fit R_X86_64_32S failed"

it seems that these relocations are often for jump tables.

this commit workarounds it with --size-level=0.

an alternative is to disable jump tables. (although it seems that
jump tables are not the only source of these relocations.)

cf. https://github.com/bytecodealliance/wasm-micro-runtime/issues/3035

it might be better to do this in wamrc itself. however, currently
target info is not available there in case of native compilation.
related: https://github.com/bytecodealliance/wasm-micro-runtime/issues/3356

* wamr-compiler: size_level=0 for sgx mode

cf. https://github.com/bytecodealliance/wasm-micro-runtime/issues/3035
2025-05-09 17:14:02 +08:00
..
build_llvm_arc.sh Fix several issues in CI binary releasing (#2064) 2023-03-26 12:19:45 +08:00
build_llvm_xtensa.sh Fix several issues in CI binary releasing (#2064) 2023-03-26 12:19:45 +08:00
build_llvm.py Fix Windows/MSVC build issues (#1498) 2022-09-17 21:16:38 +08:00
build_llvm.sh Fix several issues in CI binary releasing (#2064) 2023-03-26 12:19:45 +08:00
CMakeLists.txt Fix build issues when compiling WAMRC as a cross-compiler (#4112) 2025-03-20 14:24:30 +08:00
main.c build-scripts/build_llvm.py: bump to llvm 18 (#4259) 2025-05-09 17:14:02 +08:00
README.md Update document for iwasm/wamrc dependent packages (#2183) 2023-05-08 16:30:56 +08:00

Build wamrc AOT compiler

Both wasm binary file and AOT file are supported by iwasm. The wamrc AOT compiler is to compile wasm binary file to AOT file which can also be run by iwasm. You can execute following commands to build wamrc compiler:

For Linux(Ubuntu 20.04 as an example):

First, make sure necessary dependency are installed:

sudo apt-get install git build-essential cmake g++-multilib libgcc-9-dev lib32gcc-9-dev ccache 
cd wamr-compiler
./build_llvm.sh (or "./build_llvm_xtensa.sh" to support xtensa target)
mkdir build && cd build
cmake .. (or "cmake .. -DWAMR_BUILD_PLATFORM=darwin" for MacOS)
make
# wamrc is generated under current directory

For Windows

cd wamr-compiler
python build_llvm.py
mkdir build && cd build
cmake ..
cmake --build . --config Release
# wamrc.exe is generated under .\Release directory