about summary refs log tree commit diff
path: root/src/doc/rustc
diff options
context:
space:
mode:
authorAlex Crichton <alex@alexcrichton.com>2024-06-01 13:03:07 -0700
committerAlex Crichton <alex@alexcrichton.com>2024-06-01 13:04:16 -0700
commit87ad80a6384824fb5e13cc54278eb5aaa36a89a4 (patch)
treeb76d91b3f27bab655f91d7ad80f76e8ee319546c /src/doc/rustc
parenta94483a5f2bae907bc898fc7a8d9cc87db47b693 (diff)
downloadrust-87ad80a6384824fb5e13cc54278eb5aaa36a89a4.tar.gz
rust-87ad80a6384824fb5e13cc54278eb5aaa36a89a4.zip
Add `target_env = "p1"` to the `wasm32-wasip1` target
This commit sets the `target_env` key for the
`wasm32-wasi{,p1,p1-threads}` targets to the string `"p1"`. This mirrors
how the `wasm32-wasip2` target has `target_env = "p2"`. The intention of
this is to more easily detect each target in downstream crates to enable
adding custom code per-target.

cc #125803
Diffstat (limited to 'src/doc/rustc')
-rw-r--r--src/doc/rustc/src/platform-support/wasm32-wasip1-threads.md12
-rw-r--r--src/doc/rustc/src/platform-support/wasm32-wasip1.md11
-rw-r--r--src/doc/rustc/src/platform-support/wasm32-wasip2.md8
3 files changed, 31 insertions, 0 deletions
diff --git a/src/doc/rustc/src/platform-support/wasm32-wasip1-threads.md b/src/doc/rustc/src/platform-support/wasm32-wasip1-threads.md
index 519e9cc7cc4..66cf964bd25 100644
--- a/src/doc/rustc/src/platform-support/wasm32-wasip1-threads.md
+++ b/src/doc/rustc/src/platform-support/wasm32-wasip1-threads.md
@@ -150,3 +150,15 @@ or another engine that supports `wasi-threads` is installed and can be found in
 5. Apply such [a change](https://github.com/g0djan/rust/compare/godjan/wasi-threads...g0djan:rust:godjan/wasi-run-ui-tests?expand=1) with an engine from the step 1.
 6. Run `./x.py test --target wasm32-wasip1-threads tests/ui` and save the list of failed tests.
 7. For both lists of failed tests run `cat list | sort > sorted_list` and compare it with `diff sorted_list1 sorted_list2`.
+
+## Conditionally compiling code
+
+It's recommended to conditionally compile code for this target with:
+
+```
+#[cfg(all(target_os = "wasi", target_env = "p1", target_feature = "atomics"))]
+```
+
+Prior to Rust 1.80 the `target_env = "p1"` key was not set. Currently the
+`target_feature = "atomics"` is Nightly-only. Note that the precise `#[cfg]`
+necessary to detect this target may change as the target becomes more stable.
diff --git a/src/doc/rustc/src/platform-support/wasm32-wasip1.md b/src/doc/rustc/src/platform-support/wasm32-wasip1.md
index 4faa1988735..3f6ed130e12 100644
--- a/src/doc/rustc/src/platform-support/wasm32-wasip1.md
+++ b/src/doc/rustc/src/platform-support/wasm32-wasip1.md
@@ -121,3 +121,14 @@ can be tested locally, for example, with:
 ```text
 ./x.py test --target wasm32-wasip1 tests/ui
 ```
+
+## Conditionally compiling code
+
+It's recommended to conditionally compile code for this target with:
+
+```
+#[cfg(all(target_os = "wasi", target_env = "p1"))]
+```
+
+Note that the `target_env = "p1"` condition first appeared in Rust 1.80. Prior
+to Rust 1.80 the `target_env` condition was not set.
diff --git a/src/doc/rustc/src/platform-support/wasm32-wasip2.md b/src/doc/rustc/src/platform-support/wasm32-wasip2.md
index a385600cc22..7b4eb31b214 100644
--- a/src/doc/rustc/src/platform-support/wasm32-wasip2.md
+++ b/src/doc/rustc/src/platform-support/wasm32-wasip2.md
@@ -53,3 +53,11 @@ This target is not tested in CI at this time. Locally it can be tested with a
 ```text
 ./x.py test --target wasm32-wasip2 tests/ui
 ```
+
+## Conditionally compiling code
+
+It's recommended to conditionally compile code for this target with:
+
+```
+#[cfg(all(target_os = "wasi", target_env = "p2"))]
+```