mirror of
https://github.com/mii443/wasmer.git
synced 2025-12-03 03:08:22 +00:00
chore: Update build docs
This commit is contained in:
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
## Installing Rustup
|
## 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:
|
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
|
## 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
|
||||||
|
|
||||||
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)
|
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/)
|
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).
|
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
|
## Building the Wasmer Runtime
|
||||||
|
|
||||||
@@ -35,41 +52,53 @@ git clone https://github.com/wasmerio/wasmer.git
|
|||||||
cd wasmer
|
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
|
### 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
|
```text
|
||||||
make build-wasmer
|
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
|
### 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
|
```text
|
||||||
make build-wasmer
|
make build-wasmer
|
||||||
```
|
```
|
||||||
|
|
||||||
**Note**: should see this as the first line in the console:
|
**Note**: you should see `cranelift` appear in the `Enabled Compilers: ...` message in the console.
|
||||||
`Enabled Compilers: cranelift`
|
|
||||||
|
|
||||||
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
|
### 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 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)
|
* 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
|
And create a Wasmer release
|
||||||
|
|
||||||
@@ -82,6 +111,19 @@ make build-wasmer
|
|||||||
|
|
||||||
You may disable the LLVM compiler with `export ENABLE_LLVM=0`.
|
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
|
### All compilers
|
||||||
|
|
||||||
Once you have LLVM and Rust, you can just run:
|
Once you have LLVM and Rust, you can just run:
|
||||||
|
|||||||
@@ -23,20 +23,20 @@ to native speeds.
|
|||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
The LLVM compiler requires a valid installation of LLVM in your system.
|
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:
|
You can install LLVM easily on your Debian-like system via this command:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
wget https://apt.llvm.org/llvm.sh -O /tmp/llvm.sh
|
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:
|
Or in macOS:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
brew install llvm@15
|
brew install llvm@18
|
||||||
```
|
```
|
||||||
|
|
||||||
Or via any of the [pre-built binaries that LLVM offers][llvm-pre-built].
|
Or via any of the [pre-built binaries that LLVM offers][llvm-pre-built].
|
||||||
|
|||||||
Reference in New Issue
Block a user