chore: Update build docs

This commit is contained in:
Edoardo Marangoni
2025-02-24 10:10:29 +01:00
parent dc4a36602e
commit 83d8b11915
2 changed files with 59 additions and 17 deletions

View File

@ -2,7 +2,7 @@
## Installing Rustup
Building Wasmer from source requires [Rust](https://rustup.rs/) **1.67+**.
Building Wasmer from source requires [Rust](https://rustup.rs/) **1.81+**.
The easiest way to install Rust on your system is via Rustup. To get Rustup on Linux and macOS, you can run the following:
@ -15,14 +15,31 @@ curl https://sh.rustup.rs -sSf | sh
## Installing Additional Dependencies
### Linux
Linux is fully supported by Wasmer. WASI(x) is also fully supported. Users
building from source can enable the LLVM backend following the instruction in
the dedicated section below and installing LLVM version 18. To install it,
refer to [LLVM's download
page](https://github.com/llvm/llvm-project/releases/tag/llvmorg-18.1.7) or
check your distro's package manager.
### macOS
macOS is fully supported by Wasmer. WASI(x) is also fully supported. Users
building from source can enable the LLVM backend following the instruction in
the dedicated section below and installing LLVM version 18. To install it on
macOS, you can use [homebrew](https://brew.sh/): `brew install llvm@18`.
### Windows
Windows is fully supported by Wasmer. WASI is also fully supported.
Windows is fully supported by Wasmer. WASI(x) is also fully supported.
1. Install [Visual Studio](https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Community&rel=15)
2. Install [Rust for Windows](https://win.rustup.rs/)
3. Install [Git for Windows](https://git-scm.com/download/win). Allow it to add `git.exe` to your PATH (default settings for the installer are fine).
4. \(optional\) Install [LLVM 11.0](https://prereleases.llvm.org/win-snapshots/LLVM-11.0.0-2663a25f-win64.exe)
4. \(optional\) Install [LLVM 18.0](https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.7/LLVM-18.1.7-win64.exe)
## Building the Wasmer Runtime
@ -35,41 +52,53 @@ git clone https://github.com/wasmerio/wasmer.git
cd wasmer
```
Wasmer supports three different compilers at the moment:
Wasmer supports six different backends at the moment: `singlepass`,
`cranelift`, `LLVM`, `V8`, `wasmi` and `wamr`.
### Singlepass Compiler
Build Wasmer:
The Singlepass compiler works on Linux, Darwin and Windows systems on amd64
platforms and on Linux and Darwin systems on aarch64 platforms. Currently, it
doesn't work on `RISC-V` or `loongarch64`. On system in which it can be used it
is enabled by default.
You can build Wasmer by running this command in the root of the repo:
```text
make build-wasmer
```
**Note**: you should see this `Enabled Compilers: singlepass` in console.
**Note**: you should see `singlepass` appear in the `Enabled Compilers: ...` message in the console.
You may disable Singlepass compiler with `export ENABLE_SINGLEPASS=0`.
You may disable the Singlepass backend with the `ENABLE_SINGLEPASS=0` environment
variable, and force its enabling with `ENABLE_SINGLEPASS=1`.
### Cranelift Compiler
The Cranelift compiler will work if you are on a X86 or ARM machine. It will be detected automatically, so you don't need to do anything to your system to enable it.
The Cranelift compiler will work if you are on a X86 or ARM machine. On system
in which it can be used it is enabled by default.
You can build Wasmer by running this command in the root of the repo:
```text
make build-wasmer
```
**Note**: should see this as the first line in the console:
`Enabled Compilers: cranelift`
**Note**: you should see `cranelift` appear in the `Enabled Compilers: ...` message in the console.
You may disable the Cranelift compiler with `export ENABLE_CRANELIFT=0`.
You may disable the Cranelift backend with the `ENABLE_SINGLEPASS=0` environment
variable, and force its enabling with `ENABLE_SINGLEPASS=1`.
### LLVM Compiler
If you want support for the Wasmer LLVM compiler, then you will also need to ensure:
If you want support for the Wasmer LLVM compiler, then you will also need to:
* Ensure that LLVM 10.0.x > is installed on your system
* Ensure that LLVM >=18.0.x is installed on your system
* You can refer to [LLVM install instructions](https://github.com/wasmerio/wasmer/tree/master/lib/compiler-llvm#requirements)
* You can also [download and use a prebuilt LLVM binary](https://releases.llvm.org/download.html)
* In case `llvm-config` is not accessible, set the correct environment variable for LLVM to access: For example, the environment variable for LLVM 11.0.x would be: `LLVM_SYS_110_PREFIX=/path/to/unpacked/llvm-11.0`
* In case `llvm-config` is not accessible, set the correct environment variable
for LLVM to access: For example, the environment variable for LLVM 18.0.x
would be: `LLVM_SYS_180_PREFIX=/path/to/unpacked/llvm-18.0`
And create a Wasmer release
@ -82,6 +111,19 @@ make build-wasmer
You may disable the LLVM compiler with `export ENABLE_LLVM=0`.
### V8, wasmi and wamr
To enable any of these backends, you can set the according `ENABLE_<backend>=1`
flag at build time. The build script itself will download the necessary
libraries at build time.
Note, however, that these backends are not supported on all the platforms that
Wasmer can run on.
For example, to have a Wasmer build with all three backends enabled you can run:
```text
ENABLE_V8=1 ENABLE_WASMI=1 ENABLE_WAMR=1 make build-wasmer
```
### All compilers
Once you have LLVM and Rust, you can just run:

View File

@ -23,20 +23,20 @@ to native speeds.
## Requirements
The LLVM compiler requires a valid installation of LLVM in your system.
It currently requires **LLVM 15**.
It currently requires **LLVM 18**.
You can install LLVM easily on your Debian-like system via this command:
```bash
wget https://apt.llvm.org/llvm.sh -O /tmp/llvm.sh
sudo bash /tmp/llvm.sh 15
sudo bash /tmp/llvm.sh 18
```
Or in macOS:
```bash
brew install llvm@15
brew install llvm@18
```
Or via any of the [pre-built binaries that LLVM offers][llvm-pre-built].