mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-25 00:03:43 +00:00
Rollup merge of #132562 - alexcrichton:remove-wasm32-wasi, r=jieyouxu
Remove the `wasm32-wasi` target from rustc This commit is the final step in the journey of renaming the historical `wasm32-wasi` target in the Rust compiler to `wasm32-wasip1`. Various steps in this journey so far have been: * 2023-04-03: rust-lang/compiler-team#607 - initial proposal for this rename * 2024-11-27: rust-lang/compiler-team#695 - amended schedule/procedure for rename * 2024-01-29: rust-lang/rust#120468 - initial introduction of `wasm32-wasip1` * 2024-06-18: rust-lang/rust#126662 - warn on usage of `wasm32-wasi` * 2024-11-08: this PR - remove the `wasm32-wasi` target The full transition schedule is in [this comment][comment] and is summarized with: * 2024-05-02: Rust 1.78 released with `wasm32-wasip1` target * 2024-09-05: Rust 1.81 released warning on usage of `wasm32-wasi` * 2025-01-09: Rust 1.84 to be released without the `wasm32-wasi` target This means that support on stable for the replacement target of `wasm32-wasip1` has currently been available for 6 months. Users have already seen warnings on stable for 2 months about usage of `wasm32-wasi` and stable users have another 2 months of warnings before the target is removed from stable. This commit is intended to be the final step in this transition so the source tree should no longer mention `wasm32-wasi` except in historical reference to the older name of the `wasm32-wasip1` target. [comment]: https://github.com/rust-lang/rust/pull/120468#issuecomment-1977878747
This commit is contained in:
commit
73035552c9
@ -1350,19 +1350,6 @@ pub fn build_target_config(early_dcx: &EarlyDiagCtxt, opts: &Options, sysroot: &
|
|||||||
early_dcx.early_warn(warning)
|
early_dcx.early_warn(warning)
|
||||||
}
|
}
|
||||||
|
|
||||||
// The `wasm32-wasi` target is being renamed to `wasm32-wasip1` as
|
|
||||||
// part of rust-lang/compiler-team#607 and
|
|
||||||
// rust-lang/compiler-team#695. Warn unconditionally on usage to
|
|
||||||
// raise awareness of the renaming. This code will be deleted in
|
|
||||||
// October 2024.
|
|
||||||
if opts.target_triple.tuple() == "wasm32-wasi" {
|
|
||||||
early_dcx.early_warn(
|
|
||||||
"the `wasm32-wasi` target is being renamed to \
|
|
||||||
`wasm32-wasip1` and the `wasm32-wasi` target will be \
|
|
||||||
removed from nightly in October 2024 and removed from \
|
|
||||||
stable Rust in January 2025",
|
|
||||||
)
|
|
||||||
}
|
|
||||||
if !matches!(target.pointer_width, 16 | 32 | 64) {
|
if !matches!(target.pointer_width, 16 | 32 | 64) {
|
||||||
early_dcx.early_fatal(format!(
|
early_dcx.early_fatal(format!(
|
||||||
"target specification was invalid: unrecognized target-pointer-width {}",
|
"target specification was invalid: unrecognized target-pointer-width {}",
|
||||||
|
@ -1805,7 +1805,6 @@ supported_targets! {
|
|||||||
("wasm32-unknown-emscripten", wasm32_unknown_emscripten),
|
("wasm32-unknown-emscripten", wasm32_unknown_emscripten),
|
||||||
("wasm32-unknown-unknown", wasm32_unknown_unknown),
|
("wasm32-unknown-unknown", wasm32_unknown_unknown),
|
||||||
("wasm32v1-none", wasm32v1_none),
|
("wasm32v1-none", wasm32v1_none),
|
||||||
("wasm32-wasi", wasm32_wasi),
|
|
||||||
("wasm32-wasip1", wasm32_wasip1),
|
("wasm32-wasip1", wasm32_wasip1),
|
||||||
("wasm32-wasip2", wasm32_wasip2),
|
("wasm32-wasip2", wasm32_wasip2),
|
||||||
("wasm32-wasip1-threads", wasm32_wasip1_threads),
|
("wasm32-wasip1-threads", wasm32_wasip1_threads),
|
||||||
|
@ -1,11 +0,0 @@
|
|||||||
//! NB: This target is in the process of being renamed to
|
|
||||||
//! `wasm32-wasip1`. For more information see:
|
|
||||||
//!
|
|
||||||
//! * <https://github.com/rust-lang/compiler-team/issues/607>
|
|
||||||
//! * <https://github.com/rust-lang/compiler-team/issues/695>
|
|
||||||
|
|
||||||
use crate::spec::Target;
|
|
||||||
|
|
||||||
pub(crate) fn target() -> Target {
|
|
||||||
super::wasm32_wasip1::target()
|
|
||||||
}
|
|
@ -17,7 +17,7 @@ pub(crate) fn target() -> Target {
|
|||||||
|
|
||||||
options.os = "wasi".into();
|
options.os = "wasi".into();
|
||||||
options.env = "p1".into();
|
options.env = "p1".into();
|
||||||
options.add_pre_link_args(LinkerFlavor::WasmLld(Cc::Yes), &["--target=wasm32-wasi"]);
|
options.add_pre_link_args(LinkerFlavor::WasmLld(Cc::Yes), &["--target=wasm32-wasip1"]);
|
||||||
|
|
||||||
options.pre_link_objects_self_contained = crt_objects::pre_wasi_self_contained();
|
options.pre_link_objects_self_contained = crt_objects::pre_wasi_self_contained();
|
||||||
options.post_link_objects_self_contained = crt_objects::post_wasi_self_contained();
|
options.post_link_objects_self_contained = crt_objects::post_wasi_self_contained();
|
||||||
@ -47,7 +47,7 @@ pub(crate) fn target() -> Target {
|
|||||||
options.entry_name = "__main_void".into();
|
options.entry_name = "__main_void".into();
|
||||||
|
|
||||||
Target {
|
Target {
|
||||||
llvm_target: "wasm32-wasi".into(),
|
llvm_target: "wasm32-wasip1".into(),
|
||||||
metadata: crate::spec::TargetMetadata {
|
metadata: crate::spec::TargetMetadata {
|
||||||
description: Some("WebAssembly with WASI".into()),
|
description: Some("WebAssembly with WASI".into()),
|
||||||
tier: Some(2),
|
tier: Some(2),
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
//! The `wasm32-wasip2` target is the next evolution of the
|
//! The `wasm32-wasip2` target is the next evolution of the
|
||||||
//! wasm32-wasi target. While the wasi specification is still under
|
//! wasm32-wasip1 target. While the wasi specification is still under
|
||||||
//! active development, the preview 2 iteration is considered an "island
|
//! active development, the preview 2 iteration is considered an "island
|
||||||
//! of stability" that should allow users to rely on it indefinitely.
|
//! of stability" that should allow users to rely on it indefinitely.
|
||||||
//!
|
//!
|
||||||
|
@ -114,7 +114,6 @@ ENV CARGO_TARGET_AARCH64_UNKNOWN_FUCHSIA_RUSTFLAGS \
|
|||||||
ENV TARGETS=x86_64-unknown-fuchsia
|
ENV TARGETS=x86_64-unknown-fuchsia
|
||||||
ENV TARGETS=$TARGETS,aarch64-unknown-fuchsia
|
ENV TARGETS=$TARGETS,aarch64-unknown-fuchsia
|
||||||
ENV TARGETS=$TARGETS,wasm32-unknown-unknown
|
ENV TARGETS=$TARGETS,wasm32-unknown-unknown
|
||||||
ENV TARGETS=$TARGETS,wasm32-wasi
|
|
||||||
ENV TARGETS=$TARGETS,wasm32-wasip1
|
ENV TARGETS=$TARGETS,wasm32-wasip1
|
||||||
ENV TARGETS=$TARGETS,wasm32-wasip1-threads
|
ENV TARGETS=$TARGETS,wasm32-wasip1-threads
|
||||||
ENV TARGETS=$TARGETS,wasm32-wasip2
|
ENV TARGETS=$TARGETS,wasm32-wasip2
|
||||||
|
@ -192,8 +192,8 @@ target | std | notes
|
|||||||
[`thumbv8m.main-none-eabihf`](platform-support/thumbv8m.main-none-eabi.md) | * | Bare Armv8-M Mainline, hardfloat
|
[`thumbv8m.main-none-eabihf`](platform-support/thumbv8m.main-none-eabi.md) | * | Bare Armv8-M Mainline, hardfloat
|
||||||
[`wasm32-unknown-emscripten`](platform-support/wasm32-unknown-emscripten.md) | ✓ | WebAssembly via Emscripten
|
[`wasm32-unknown-emscripten`](platform-support/wasm32-unknown-emscripten.md) | ✓ | WebAssembly via Emscripten
|
||||||
[`wasm32-unknown-unknown`](platform-support/wasm32-unknown-unknown.md) | ✓ | WebAssembly
|
[`wasm32-unknown-unknown`](platform-support/wasm32-unknown-unknown.md) | ✓ | WebAssembly
|
||||||
`wasm32-wasi` | ✓ | WebAssembly with WASI (undergoing a [rename to `wasm32-wasip1`][wasi-rename])
|
[`wasm32-wasip1`](platform-support/wasm32-wasip1.md) | ✓ | WebAssembly with WASIp1
|
||||||
[`wasm32-wasip1`](platform-support/wasm32-wasip1.md) | ✓ | WebAssembly with WASI
|
[`wasm32-wasip2`](platform-support/wasm32-wasip2.md) | ✓ | WebAssembly with WASIp2
|
||||||
[`wasm32-wasip1-threads`](platform-support/wasm32-wasip1-threads.md) | ✓ | WebAssembly with WASI Preview 1 and threads
|
[`wasm32-wasip1-threads`](platform-support/wasm32-wasip1-threads.md) | ✓ | WebAssembly with WASI Preview 1 and threads
|
||||||
[`wasm32v1-none`](platform-support/wasm32v1-none.md) | * | WebAssembly limited to 1.0 features and no imports
|
[`wasm32v1-none`](platform-support/wasm32v1-none.md) | * | WebAssembly limited to 1.0 features and no imports
|
||||||
[`x86_64-apple-ios`](platform-support/apple-ios.md) | ✓ | 64-bit x86 iOS
|
[`x86_64-apple-ios`](platform-support/apple-ios.md) | ✓ | 64-bit x86 iOS
|
||||||
@ -377,7 +377,6 @@ target | std | host | notes
|
|||||||
`thumbv7a-pc-windows-msvc` | ✓ | |
|
`thumbv7a-pc-windows-msvc` | ✓ | |
|
||||||
`thumbv7a-uwp-windows-msvc` | ✓ | |
|
`thumbv7a-uwp-windows-msvc` | ✓ | |
|
||||||
`thumbv7neon-unknown-linux-musleabihf` | ? | | Thumb2-mode Armv7-A Linux with NEON, musl 1.2.3
|
`thumbv7neon-unknown-linux-musleabihf` | ? | | Thumb2-mode Armv7-A Linux with NEON, musl 1.2.3
|
||||||
[`wasm32-wasip2`](platform-support/wasm32-wasip2.md) | ✓ | | WebAssembly
|
|
||||||
[`wasm64-unknown-unknown`](platform-support/wasm64-unknown-unknown.md) | ? | | WebAssembly
|
[`wasm64-unknown-unknown`](platform-support/wasm64-unknown-unknown.md) | ? | | WebAssembly
|
||||||
[`x86_64-apple-tvos`](platform-support/apple-tvos.md) | ✓ | | x86 64-bit tvOS
|
[`x86_64-apple-tvos`](platform-support/apple-tvos.md) | ✓ | | x86 64-bit tvOS
|
||||||
[`x86_64-apple-watchos-sim`](platform-support/apple-watchos.md) | ✓ | | x86 64-bit Apple WatchOS simulator
|
[`x86_64-apple-watchos-sim`](platform-support/apple-watchos.md) | ✓ | | x86 64-bit Apple WatchOS simulator
|
||||||
|
@ -98,10 +98,6 @@ the target with:
|
|||||||
rustup target add wasm32-wasip1
|
rustup target add wasm32-wasip1
|
||||||
```
|
```
|
||||||
|
|
||||||
> **Note**: the `wasm32-wasip1` target is new and may only be available
|
|
||||||
> on nightly by the time you're reading this. If `wasm32-wasip1` isn't
|
|
||||||
> available on stable Rust then `wasm32-wasi` should be available instead.
|
|
||||||
|
|
||||||
Rust programs can be built for that target:
|
Rust programs can be built for that target:
|
||||||
|
|
||||||
```text
|
```text
|
||||||
|
@ -4,7 +4,7 @@ This option controls whether Rust uses the spec-compliant C ABI when compiling
|
|||||||
for the `wasm32-unknown-unknown` target.
|
for the `wasm32-unknown-unknown` target.
|
||||||
|
|
||||||
This makes it possible to be ABI-compatible with all other spec-compliant Wasm
|
This makes it possible to be ABI-compatible with all other spec-compliant Wasm
|
||||||
like Rusts `wasm32-wasi`.
|
like Rusts `wasm32-wasip1`.
|
||||||
|
|
||||||
This compiler flag is perma-unstable, as it will be enabled by default in the
|
This compiler flag is perma-unstable, as it will be enabled by default in the
|
||||||
future with no option to fall back to the old non-spec-compliant ABI.
|
future with no option to fall back to the old non-spec-compliant ABI.
|
||||||
|
@ -157,7 +157,6 @@ static TARGETS: &[&str] = &[
|
|||||||
"thumbv8m.main-none-eabihf",
|
"thumbv8m.main-none-eabihf",
|
||||||
"wasm32-unknown-emscripten",
|
"wasm32-unknown-emscripten",
|
||||||
"wasm32-unknown-unknown",
|
"wasm32-unknown-unknown",
|
||||||
"wasm32-wasi",
|
|
||||||
"wasm32-wasip1",
|
"wasm32-wasip1",
|
||||||
"wasm32-wasip1-threads",
|
"wasm32-wasip1-threads",
|
||||||
"wasm32-wasip2",
|
"wasm32-wasip2",
|
||||||
|
@ -583,10 +583,6 @@ fn wasm_special() {
|
|||||||
("wasm32-unknown-emscripten", "emscripten", true),
|
("wasm32-unknown-emscripten", "emscripten", true),
|
||||||
("wasm32-unknown-emscripten", "wasm32", true),
|
("wasm32-unknown-emscripten", "wasm32", true),
|
||||||
("wasm32-unknown-emscripten", "wasm32-bare", false),
|
("wasm32-unknown-emscripten", "wasm32-bare", false),
|
||||||
("wasm32-wasi", "emscripten", false),
|
|
||||||
("wasm32-wasi", "wasm32", true),
|
|
||||||
("wasm32-wasi", "wasm32-bare", false),
|
|
||||||
("wasm32-wasi", "wasi", true),
|
|
||||||
("wasm32-wasip1", "emscripten", false),
|
("wasm32-wasip1", "emscripten", false),
|
||||||
("wasm32-wasip1", "wasm32", true),
|
("wasm32-wasip1", "wasm32", true),
|
||||||
("wasm32-wasip1", "wasm32-bare", false),
|
("wasm32-wasip1", "wasm32-bare", false),
|
||||||
|
@ -525,9 +525,6 @@
|
|||||||
//@ revisions: wasm32v1_none
|
//@ revisions: wasm32v1_none
|
||||||
//@ [wasm32v1_none] compile-flags: --target wasm32v1-none
|
//@ [wasm32v1_none] compile-flags: --target wasm32v1-none
|
||||||
//@ [wasm32v1_none] needs-llvm-components: webassembly
|
//@ [wasm32v1_none] needs-llvm-components: webassembly
|
||||||
//@ revisions: wasm32_wasi
|
|
||||||
//@ [wasm32_wasi] compile-flags: --target wasm32-wasi
|
|
||||||
//@ [wasm32_wasi] needs-llvm-components: webassembly
|
|
||||||
//@ revisions: wasm32_wasip1
|
//@ revisions: wasm32_wasip1
|
||||||
//@ [wasm32_wasip1] compile-flags: --target wasm32-wasip1
|
//@ [wasm32_wasip1] compile-flags: --target wasm32-wasip1
|
||||||
//@ [wasm32_wasip1] needs-llvm-components: webassembly
|
//@ [wasm32_wasip1] needs-llvm-components: webassembly
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
//@ revisions: aarch64-linux aarch64-darwin wasm32-wasi
|
//@ revisions: aarch64-linux aarch64-darwin wasm32-wasip1
|
||||||
//@ compile-flags: -O -C no-prepopulate-passes
|
//@ compile-flags: -O -C no-prepopulate-passes
|
||||||
|
|
||||||
//@[aarch64-linux] compile-flags: --target aarch64-unknown-linux-gnu
|
//@[aarch64-linux] compile-flags: --target aarch64-unknown-linux-gnu
|
||||||
//@[aarch64-linux] needs-llvm-components: aarch64
|
//@[aarch64-linux] needs-llvm-components: aarch64
|
||||||
//@[aarch64-darwin] compile-flags: --target aarch64-apple-darwin
|
//@[aarch64-darwin] compile-flags: --target aarch64-apple-darwin
|
||||||
//@[aarch64-darwin] needs-llvm-components: aarch64
|
//@[aarch64-darwin] needs-llvm-components: aarch64
|
||||||
//@[wasm32-wasi] compile-flags: --target wasm32-wasi
|
//@[wasm32-wasip1] compile-flags: --target wasm32-wasip1
|
||||||
//@[wasm32-wasi] needs-llvm-components: webassembly
|
//@[wasm32-wasip1] needs-llvm-components: webassembly
|
||||||
|
|
||||||
// See ./transparent.rs
|
// See ./transparent.rs
|
||||||
// Some platforms pass large aggregates using immediate arrays in LLVMIR
|
// Some platforms pass large aggregates using immediate arrays in LLVMIR
|
||||||
|
Loading…
Reference in New Issue
Block a user