From 0e1c602c624ce289ff0b698d9a9e4fac104b0350 Mon Sep 17 00:00:00 2001 From: Wildan M Date: Wed, 21 Oct 2026 14:22:16 +0700 Subject: [PATCH] Add compiler wasm option --- Cargo.lock | 2 +- mk/prefix.mk | 1 + src/cook/cook_build.rs | 5 ++++- src/cook/script.rs | 2 +- src/recipe.rs | 2 ++ 5 files changed, 9 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a8756af68..5c6398467 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -918,7 +918,7 @@ dependencies = [ [[package]] name = "redoxer" version = "0.2.63" -source = "git+https://gitlab.redox-os.org/redox-os/redoxer.git#d448ee8b1640d91ed70c37c164ca994f0c0b4fe8" +source = "git+https://gitlab.redox-os.org/redox-os/redoxer.git#f2cdeaec39797213d8b6dc8f08d2a5ec1900ee11" dependencies = [ "anyhow", "dirs", diff --git a/mk/prefix.mk b/mk/prefix.mk index 1f3b83b3d..2601fc4b2 100644 --- a/mk/prefix.mk +++ b/mk/prefix.mk @@ -451,6 +451,7 @@ else cp -r "$(LLD_TARGET)/stage/usr/". "$@.partial" rm -rf "$@.partial/lib/"*.a echo "--sysroot=$(ROOT)/$(PREFIX)/gcc-install" > "$@.partial/bin/$(GNU_TARGET).cfg" + ln -s clang-21 "$@.partial/bin/wasm32-wasip1-clang" ln -s clang-21 "$@.partial/bin/$(GNU_TARGET)-clang" ln -s clang++ "$@.partial/bin/$(GNU_TARGET)-clang++" export PATH="$(ROOT)/$@.partial/bin:$$PATH" $(PREFIX_CONFIG) \ diff --git a/src/cook/cook_build.rs b/src/cook/cook_build.rs index 909bdcaff..81bf2f95b 100644 --- a/src/cook/cook_build.rs +++ b/src/cook/cook_build.rs @@ -470,7 +470,7 @@ pub fn build( BuildCompiler::Gcc | BuildCompiler::GccNoLTO => { command.env("REDOXER_USE_CLANG", "0"); } - BuildCompiler::Clang | BuildCompiler::ClangNoLTO => { + BuildCompiler::Clang | BuildCompiler::ClangNoLTO | BuildCompiler::Wasm => { command.env("REDOXER_USE_CLANG", "1"); } _ => {} @@ -481,6 +481,9 @@ pub fn build( } _ => {} } + if matches!(compiler, BuildCompiler::Wasm) { + command.env("TARGET", "wasm32-wasip1"); + } }; command.env("COOKBOOK_MAKE_JOBS", cli_jobs.to_string()); if cook_config.verbose_cmd { diff --git a/src/cook/script.rs b/src/cook/script.rs index 05ba572b5..5b940b59e 100644 --- a/src/cook/script.rs +++ b/src/cook/script.rs @@ -5,7 +5,7 @@ pub(crate) static SHARED_PRESCRIPT: &str = r#" # Build dynamically function DYNAMIC_INIT { case "${TARGET}" in - "riscv64gc-unknown-redox") + "riscv64gc-unknown-redox" | "wasm32-wasip1") [ -z "${COOKBOOK_VERBOSE}" ] || echo "WARN: ${TARGET} does not support dynamic linking." >&2 return ;; diff --git a/src/recipe.rs b/src/recipe.rs index ae65054d0..3a4cf18af 100644 --- a/src/recipe.rs +++ b/src/recipe.rs @@ -190,6 +190,8 @@ pub enum BuildCompiler { ClangNoLTO, #[serde(rename = "no-lto")] NoLTO, + #[serde(rename = "wasm")] + Wasm, } impl BuildRecipe {