[rust] Update rust config to build backend for WASM
This change makes our rust toolchain support generating output for WASM:
1) Include the WebAssembly LLVM backend so we can generate WASM.
2) List wasm32-unknown-unknown as a target for rustc unconditionally,
which creates rust-std and supports compiling for that target.
Change-Id: Ieda9c0aee7fa90029ddd391a00814528f7fd9965
diff --git a/recipes/rust_toolchain.expected/rust_extra_tools_linux.json b/recipes/rust_toolchain.expected/rust_extra_tools_linux.json
index eee2fbd..f52053e 100644
--- a/recipes/rust_toolchain.expected/rust_extra_tools_linux.json
+++ b/recipes/rust_toolchain.expected/rust_extra_tools_linux.json
@@ -466,7 +466,7 @@
"-u",
"RECIPE[fuchsia::rust_toolchain].resources/generate_config.py",
"--targets",
- "x86_64-unknown-linux-gnu,aarch64-unknown-linux-gnu",
+ "x86_64-unknown-linux-gnu,aarch64-unknown-linux-gnu,wasm32-unknown-unknown",
"--clang-prefix",
"[START_DIR]/cipd",
"config_toml",
@@ -486,7 +486,7 @@
"-u",
"RECIPE[fuchsia::rust_toolchain].resources/generate_config.py",
"--targets",
- "x86_64-unknown-linux-gnu,aarch64-unknown-linux-gnu",
+ "x86_64-unknown-linux-gnu,aarch64-unknown-linux-gnu,wasm32-unknown-unknown",
"--clang-prefix",
"[START_DIR]/cipd",
"environment",
diff --git a/recipes/rust_toolchain.expected/rust_extra_tools_linux_new.json b/recipes/rust_toolchain.expected/rust_extra_tools_linux_new.json
index d343975..d5f5c81 100644
--- a/recipes/rust_toolchain.expected/rust_extra_tools_linux_new.json
+++ b/recipes/rust_toolchain.expected/rust_extra_tools_linux_new.json
@@ -466,7 +466,7 @@
"-u",
"RECIPE[fuchsia::rust_toolchain].resources/generate_config.py",
"--targets",
- "x86_64-unknown-linux-gnu,aarch64-unknown-linux-gnu",
+ "x86_64-unknown-linux-gnu,aarch64-unknown-linux-gnu,wasm32-unknown-unknown",
"--clang-prefix",
"[START_DIR]/cipd",
"config_toml",
@@ -486,7 +486,7 @@
"-u",
"RECIPE[fuchsia::rust_toolchain].resources/generate_config.py",
"--targets",
- "x86_64-unknown-linux-gnu,aarch64-unknown-linux-gnu",
+ "x86_64-unknown-linux-gnu,aarch64-unknown-linux-gnu,wasm32-unknown-unknown",
"--clang-prefix",
"[START_DIR]/cipd",
"environment",
diff --git a/recipes/rust_toolchain.expected/rust_extra_tools_mac.json b/recipes/rust_toolchain.expected/rust_extra_tools_mac.json
index 1dbb51c..e6d511d 100644
--- a/recipes/rust_toolchain.expected/rust_extra_tools_mac.json
+++ b/recipes/rust_toolchain.expected/rust_extra_tools_mac.json
@@ -528,7 +528,7 @@
"-u",
"RECIPE[fuchsia::rust_toolchain].resources/generate_config.py",
"--targets",
- "x86_64-unknown-linux-gnu,aarch64-unknown-linux-gnu,x86_64-apple-darwin",
+ "x86_64-unknown-linux-gnu,aarch64-unknown-linux-gnu,wasm32-unknown-unknown,x86_64-apple-darwin",
"--clang-prefix",
"[START_DIR]/cipd",
"config_toml",
@@ -548,7 +548,7 @@
"-u",
"RECIPE[fuchsia::rust_toolchain].resources/generate_config.py",
"--targets",
- "x86_64-unknown-linux-gnu,aarch64-unknown-linux-gnu,x86_64-apple-darwin",
+ "x86_64-unknown-linux-gnu,aarch64-unknown-linux-gnu,wasm32-unknown-unknown,x86_64-apple-darwin",
"--clang-prefix",
"[START_DIR]/cipd",
"environment",
diff --git a/recipes/rust_toolchain.expected/rust_extra_tools_mac_new.json b/recipes/rust_toolchain.expected/rust_extra_tools_mac_new.json
index 6aa9421..b09e104 100644
--- a/recipes/rust_toolchain.expected/rust_extra_tools_mac_new.json
+++ b/recipes/rust_toolchain.expected/rust_extra_tools_mac_new.json
@@ -528,7 +528,7 @@
"-u",
"RECIPE[fuchsia::rust_toolchain].resources/generate_config.py",
"--targets",
- "x86_64-unknown-linux-gnu,aarch64-unknown-linux-gnu,x86_64-apple-darwin",
+ "x86_64-unknown-linux-gnu,aarch64-unknown-linux-gnu,wasm32-unknown-unknown,x86_64-apple-darwin",
"--clang-prefix",
"[START_DIR]/cipd",
"config_toml",
@@ -548,7 +548,7 @@
"-u",
"RECIPE[fuchsia::rust_toolchain].resources/generate_config.py",
"--targets",
- "x86_64-unknown-linux-gnu,aarch64-unknown-linux-gnu,x86_64-apple-darwin",
+ "x86_64-unknown-linux-gnu,aarch64-unknown-linux-gnu,wasm32-unknown-unknown,x86_64-apple-darwin",
"--clang-prefix",
"[START_DIR]/cipd",
"environment",
diff --git a/recipes/rust_toolchain.expected/rust_linux.json b/recipes/rust_toolchain.expected/rust_linux.json
index 39efcb4..f5cbf9b 100644
--- a/recipes/rust_toolchain.expected/rust_linux.json
+++ b/recipes/rust_toolchain.expected/rust_linux.json
@@ -466,7 +466,7 @@
"-u",
"RECIPE[fuchsia::rust_toolchain].resources/generate_config.py",
"--targets",
- "x86_64-unknown-linux-gnu,aarch64-unknown-linux-gnu",
+ "x86_64-unknown-linux-gnu,aarch64-unknown-linux-gnu,wasm32-unknown-unknown",
"--clang-prefix",
"[START_DIR]/cipd",
"config_toml",
@@ -485,7 +485,7 @@
"-u",
"RECIPE[fuchsia::rust_toolchain].resources/generate_config.py",
"--targets",
- "x86_64-unknown-linux-gnu,aarch64-unknown-linux-gnu",
+ "x86_64-unknown-linux-gnu,aarch64-unknown-linux-gnu,wasm32-unknown-unknown",
"--clang-prefix",
"[START_DIR]/cipd",
"environment",
diff --git a/recipes/rust_toolchain.expected/rust_linux_new.json b/recipes/rust_toolchain.expected/rust_linux_new.json
index 5ebd4e0..6c914a6 100644
--- a/recipes/rust_toolchain.expected/rust_linux_new.json
+++ b/recipes/rust_toolchain.expected/rust_linux_new.json
@@ -466,7 +466,7 @@
"-u",
"RECIPE[fuchsia::rust_toolchain].resources/generate_config.py",
"--targets",
- "x86_64-unknown-linux-gnu,aarch64-unknown-linux-gnu",
+ "x86_64-unknown-linux-gnu,aarch64-unknown-linux-gnu,wasm32-unknown-unknown",
"--clang-prefix",
"[START_DIR]/cipd",
"config_toml",
@@ -485,7 +485,7 @@
"-u",
"RECIPE[fuchsia::rust_toolchain].resources/generate_config.py",
"--targets",
- "x86_64-unknown-linux-gnu,aarch64-unknown-linux-gnu",
+ "x86_64-unknown-linux-gnu,aarch64-unknown-linux-gnu,wasm32-unknown-unknown",
"--clang-prefix",
"[START_DIR]/cipd",
"environment",
diff --git a/recipes/rust_toolchain.expected/rust_mac.json b/recipes/rust_toolchain.expected/rust_mac.json
index 1ca0861..e7bd5c4 100644
--- a/recipes/rust_toolchain.expected/rust_mac.json
+++ b/recipes/rust_toolchain.expected/rust_mac.json
@@ -528,7 +528,7 @@
"-u",
"RECIPE[fuchsia::rust_toolchain].resources/generate_config.py",
"--targets",
- "x86_64-unknown-linux-gnu,aarch64-unknown-linux-gnu,x86_64-apple-darwin",
+ "x86_64-unknown-linux-gnu,aarch64-unknown-linux-gnu,wasm32-unknown-unknown,x86_64-apple-darwin",
"--clang-prefix",
"[START_DIR]/cipd",
"config_toml",
@@ -547,7 +547,7 @@
"-u",
"RECIPE[fuchsia::rust_toolchain].resources/generate_config.py",
"--targets",
- "x86_64-unknown-linux-gnu,aarch64-unknown-linux-gnu,x86_64-apple-darwin",
+ "x86_64-unknown-linux-gnu,aarch64-unknown-linux-gnu,wasm32-unknown-unknown,x86_64-apple-darwin",
"--clang-prefix",
"[START_DIR]/cipd",
"environment",
diff --git a/recipes/rust_toolchain.expected/rust_mac_new.json b/recipes/rust_toolchain.expected/rust_mac_new.json
index 8960d37..f00e334 100644
--- a/recipes/rust_toolchain.expected/rust_mac_new.json
+++ b/recipes/rust_toolchain.expected/rust_mac_new.json
@@ -528,7 +528,7 @@
"-u",
"RECIPE[fuchsia::rust_toolchain].resources/generate_config.py",
"--targets",
- "x86_64-unknown-linux-gnu,aarch64-unknown-linux-gnu,x86_64-apple-darwin",
+ "x86_64-unknown-linux-gnu,aarch64-unknown-linux-gnu,wasm32-unknown-unknown,x86_64-apple-darwin",
"--clang-prefix",
"[START_DIR]/cipd",
"config_toml",
@@ -547,7 +547,7 @@
"-u",
"RECIPE[fuchsia::rust_toolchain].resources/generate_config.py",
"--targets",
- "x86_64-unknown-linux-gnu,aarch64-unknown-linux-gnu,x86_64-apple-darwin",
+ "x86_64-unknown-linux-gnu,aarch64-unknown-linux-gnu,wasm32-unknown-unknown,x86_64-apple-darwin",
"--clang-prefix",
"[START_DIR]/cipd",
"environment",
diff --git a/recipes/rust_toolchain.py b/recipes/rust_toolchain.py
index 735466a..aa4f36c 100755
--- a/recipes/rust_toolchain.py
+++ b/recipes/rust_toolchain.py
@@ -116,6 +116,7 @@
targets = [
'x86_64-unknown-linux-gnu',
'aarch64-unknown-linux-gnu',
+ 'wasm32-unknown-unknown',
]
if api.platform.is_mac:
targets.append('x86_64-apple-darwin')
diff --git a/recipes/rust_toolchain.resources/generate_config.py b/recipes/rust_toolchain.resources/generate_config.py
index 478e0a8..f9b3f83 100644
--- a/recipes/rust_toolchain.resources/generate_config.py
+++ b/recipes/rust_toolchain.resources/generate_config.py
@@ -24,7 +24,7 @@
thin-lto = {thinlto}
ccache = {gomacc_quote}
ninja = true
-targets = "X86;AArch64"
+targets = "X86;AArch64;WebAssembly"
cflags = "{cflags}"
cxxflags = "{cxxflags}"
ldflags = "{ldflags}"
@@ -141,6 +141,9 @@
})
for target in args.targets.split(','):
+ if 'wasm32' in target:
+ # Skip setting sysroots for wasm32.
+ continue
sysroot = target_sysroots[target]
triple_lower = target.replace('-', '_').lower()
triple_upper = triple_lower.upper()
@@ -178,6 +181,7 @@
default_targets = [
'x86_64-unknown-linux-gnu',
'aarch64-unknown-linux-gnu',
+ 'wasm32-unknown-unknown',
]
if is_mac:
default_targets.append('x86_64-apple-darwin')