Skip to content

Commit

Permalink
Add release binaries for 32-bit platforms
Browse files Browse the repository at this point in the history
This commit notably adds release binaries for:

* `i686-unknown-linux-gnu` - named `i686-linux`
* `i686-pc-windows-msvc` - named `i686-windows`
* `armv7-unknown-linux-gnueabihf` - named `armv7-linux`

These artifacts all use Pulley for their execution of WebAssembly and
have been added to the tiers listing under tier 3.
  • Loading branch information
alexcrichton committed Jan 15, 2025
1 parent 48f4621 commit deb0dc7
Show file tree
Hide file tree
Showing 5 changed files with 57 additions and 11 deletions.
18 changes: 18 additions & 0 deletions ci/build-build-matrix.js
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,24 @@ const array = [
"target": "aarch64-pc-windows-msvc",
"env": { "RUSTFLAGS": "-Ctarget-feature=+crt-static" },
},
{
"build": "i686-linux",
"os": ubuntu,
"target": "i686-unknown-linux-gnu",
"env": { "DOCKER_IMAGE": "./ci/docker/i686-linux/Dockerfile" },
},
{
"build": "armv7-linux",
"os": ubuntu,
"target": "armv7-unknown-linux-gnueabihf",
"env": { "DOCKER_IMAGE": "./ci/docker/armv7-linux/Dockerfile" },
},
{
"build": "i686-windows",
"os": windows,
"target": "i686-pc-windows-msvc",
"env": { "RUSTFLAGS": "-Ctarget-feature=+crt-static" },
},
];

const builds = [];
Expand Down
11 changes: 11 additions & 0 deletions ci/docker/armv7-linux/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
FROM ubuntu:16.04

RUN apt-get update -y && apt-get install -y gcc gcc-arm-linux-gnueabihf ca-certificates curl make git ninja-build
RUN git config --global --add safe.directory '*'

# The CMake in Ubuntu 16.04 was a bit too old for us to use so download one from
# CMake's own releases and use that instead.
RUN curl -L https://github.com/Kitware/CMake/releases/download/v3.29.3/cmake-3.29.3-linux-x86_64.tar.gz | tar xzf -
ENV PATH=$PATH:/cmake-3.29.3-linux-x86_64/bin

ENV CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABIHF_LINKER=arm-linux-gnueabihf-gcc
11 changes: 11 additions & 0 deletions ci/docker/i686-linux/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
FROM almalinux:8

RUN dnf install -y git gcc make cmake git unzip glibc-devel.i686
RUN git config --global --add safe.directory '*'

WORKDIR /usr/local/bin
RUN curl -LO https://github.com/ninja-build/ninja/releases/download/v1.12.1/ninja-linux.zip
RUN unzip ./ninja-linux
WORKDIR /

ENV CC_i686-unknown-linux-gnu=gcc
2 changes: 1 addition & 1 deletion crates/c-api/src/val.rs
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ pub union wasmtime_val_union {

const _: () = {
assert!(std::mem::size_of::<wasmtime_val_union>() == 16);
assert!(std::mem::align_of::<wasmtime_val_union>() == 8);
assert!(std::mem::align_of::<wasmtime_val_union>() == std::mem::align_of::<u64>());
};

// The raw pointers are actually optional boxes.
Expand Down
26 changes: 16 additions & 10 deletions docs/stability-tiers.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,16 +87,22 @@ For explanations of what each tier means see below.

| Category | Description | Missing Tier 2 Requirements |
|----------------------|-----------------------------------|-----------------------------|
| Target | `aarch64-pc-windows-msvc` | CI testing, unwinding, full-time maintainer |
| Target | `aarch64-apple-ios` | CI testing, full-time maintainer |
| Target | `aarch64-linux-android` | CI testing, full-time maintainer |
| Target | `aarch64-pc-windows-msvc` | CI testing, full-time maintainer |
| Target | `aarch64-unknown-linux-musl` [^4] | CI testing, full-time maintainer |
| Target | `armv7-unknown-linux-gnueabihf` | full-time maintainer |
| Target | `i686-pc-windows-msvc` | CI testing, full-time maintainer |
| Target | `i686-unknown-linux-gnu` | full-time maintainer |
| Target | `riscv64gc-unknown-linux-gnu` | full-time maintainer |
| Target | `wasm32-wasip1` [^3] | Supported but not tested |
| Target | `aarch64-linux-android` | CI testing, full-time maintainer |
| Target | `x86_64-linux-android` | CI testing, full-time maintainer |
| Target | `x86_64-unknown-linux-musl` [^4] | CI testing, full-time maintainer |
| Target | `x86_64-unknown-illumos` | CI testing, full-time maintainer |
| Target | `x86_64-unknown-freebsd` | CI testing, full-time maintainer |
| Target | `x86_64-unknown-illumos` | CI testing, full-time maintainer |
| Target | `x86_64-unknown-linux-musl` [^4] | CI testing, full-time maintainer |
| Compiler Backend | Winch on x86\_64 | WebAssembly proposals (`simd`, `relaxed-simd`, `tail-call`, `reference-types`, `threads`) |
| Compiler Backend | Winch on aarch64 | Complete implementation |
| Execution Backend | Pulley | fuzzing |
| WebAssembly Proposal | [`gc`] | Complete implementation |
| WASI Proposal | [`wasi-nn`] | More expansive CI testing |
| WASI Proposal | [`wasi-threads`] | More CI, unstable proposal |
Expand Down Expand Up @@ -142,14 +148,14 @@ features; rather design discussion and PRs are welcome for many of the below
features to figure out how best to implement them and at least move them to Tier
3 above.

* Target: ARM 32-bit
* Target: [AArch64 FreeBSD](https://github.com/bytecodealliance/wasmtime/issues/5499)
* Target: [NetBSD/OpenBSD](https://github.com/bytecodealliance/wasmtime/issues/6962)
* Target: [i686 (32-bit Intel targets)](https://github.com/bytecodealliance/wasmtime/issues/1980)
* Target: MIPS
* Target: SPARC
* Target: PowerPC
* Target: RISC-V 32-bit
* Cranelift Target: [i686 (32-bit Intel targets)](https://github.com/bytecodealliance/wasmtime/issues/1980)
* Cranelift Target: ARM 32-bit
* Cranelift Target: MIPS
* Cranelift Target: SPARC
* Cranelift Target: PowerPC
* Cranelift Target: RISC-V 32-bit
* WebAssembly Proposals: see [documentation here](./stability-wasm-proposals.md)
* [WASI proposal: `proxy-wasm`](https://github.com/proxy-wasm/spec)
* [WASI proposal: `wasi-blob-store`](https://github.com/WebAssembly/wasi-blob-store)
Expand Down

0 comments on commit deb0dc7

Please sign in to comment.