From 6862a7b98d93d745c304f8a69dd8a1b24ebbd399 Mon Sep 17 00:00:00 2001 From: Wildan M Date: Sun, 3 May 2026 09:39:01 +0700 Subject: [PATCH] Adapt changes needed for linux-relibc --- Cargo.lock | 2 +- mk/prefix.mk | 6 ++-- recipes/dev/rust/config-cross-linux.toml | 36 +++++++++++++++++++ ...bootstrap.toml => config-cross-redox.toml} | 0 recipes/dev/rust/recipe.toml | 7 ++-- recipes/libs/libstdcxx-v3/recipe.toml | 10 +++--- 6 files changed, 51 insertions(+), 10 deletions(-) create mode 100644 recipes/dev/rust/config-cross-linux.toml rename recipes/dev/rust/{config-bootstrap.toml => config-cross-redox.toml} (100%) diff --git a/Cargo.lock b/Cargo.lock index 8daba874..fc05d080 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -917,7 +917,7 @@ dependencies = [ [[package]] name = "redoxer" version = "0.2.63" -source = "git+https://gitlab.redox-os.org/redox-os/redoxer.git#67af2b7543ff8fb2eaba6699ac9d331dfe2d0f8c" +source = "git+https://gitlab.redox-os.org/redox-os/redoxer.git#e4c40952b1a3c2da74557c62c1e51f5c6ab699f7" dependencies = [ "anyhow", "dirs", diff --git a/mk/prefix.mk b/mk/prefix.mk index 13f7ac47..8ece13c7 100644 --- a/mk/prefix.mk +++ b/mk/prefix.mk @@ -392,14 +392,14 @@ endif # BUILD RUST --------------------------------------------------- else -$(PREFIX)/rust-install: | $(PREFIX)/libtool-install $(FSTOOLS_TAG) $(CONTAINER_TAG) +$(PREFIX)/rust-install: | $(PREFIX)/gcc-install $(PREFIX)/libtool-install $(FSTOOLS_TAG) $(CONTAINER_TAG) ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) make $@ else @echo "\033[1;36;49mBuilding rust-install\033[0m" rm -rf "$@.partial" "$@" - export PATH="$(ROOT)/$(PREFIX)/libtool-install/bin:$$PATH" \ - $(PREFIX_CONFIG) COOKBOOK_HOST_SYSROOT=/usr COOKBOOK_CROSS_TARGET=$(TARGET) && \ + export PATH="$(ROOT)/$(PREFIX)/libtool-install/bin:$(ROOT)/$(PREFIX)/gcc-install/bin:$$PATH" \ + $(PREFIX_CONFIG) COOKBOOK_HOST_SYSROOT=/usr COOKBOOK_CROSS_TARGET=$(TARGET) COOKBOOK_CROSS_GNU_TARGET=$(GNU_TARGET) && \ $(REPO_BIN) cook host:llvm21 host:rust cp -r "$(RUST_TARGET)/stage/usr/". "$@.partial" cp -r "$(LLVM_TARGET)/stage/usr/". "$@.partial" diff --git a/recipes/dev/rust/config-cross-linux.toml b/recipes/dev/rust/config-cross-linux.toml new file mode 100644 index 00000000..c2d4ea1d --- /dev/null +++ b/recipes/dev/rust/config-cross-linux.toml @@ -0,0 +1,36 @@ +[llvm] +download-ci-llvm = false +static-libstdcpp = false +link-shared = true + +[build] +host = ["TARGET"] +target = ["TARGET", "COOKBOOK_TARGET"] +cargo-native-static = true +submodules = false +docs = false +tools = ["cargo", "clippy", "rustdoc", "rustfmt", "src"] +extended = true +verbose = 1 + +[install] +prefix = "install" +sysconfdir = "etc" + +[rust] +backtrace = false +codegen-tests = false + +[target.COOKBOOK_TARGET] +cc = "COOKBOOK_GNU_TARGET-gcc" +cxx = "COOKBOOK_GNU_TARGET-g++" +ar = "COOKBOOK_GNU_TARGET-ar" +linker = "COOKBOOK_GNU_TARGET-gcc" +crt-static = false +llvm-config = "COOKBOOK_SYSROOT/bin/llvm-config" + +[target.aarch64-unknown-linux-gnu] +llvm-config = "COOKBOOK_TOOLCHAIN/bin/llvm-config" + +[target.x86_64-unknown-linux-gnu] +llvm-config = "COOKBOOK_TOOLCHAIN/bin/llvm-config" diff --git a/recipes/dev/rust/config-bootstrap.toml b/recipes/dev/rust/config-cross-redox.toml similarity index 100% rename from recipes/dev/rust/config-bootstrap.toml rename to recipes/dev/rust/config-cross-redox.toml diff --git a/recipes/dev/rust/recipe.toml b/recipes/dev/rust/recipe.toml index 93e5b6c1..020909b2 100644 --- a/recipes/dev/rust/recipe.toml +++ b/recipes/dev/rust/recipe.toml @@ -20,9 +20,12 @@ dev-dependencies = [ script = """ if [ "${COOKBOOK_HOST_SYSROOT}" = "/usr" ]; then -cat ${COOKBOOK_RECIPE}/config-bootstrap.toml > config.toml -sed -i "s|TARGET|${TARGET}|g" config.toml +OS=$(echo "${TARGET}" | cut -d - -f3) +cat ${COOKBOOK_RECIPE}/config-cross-$OS.toml > config.toml sed -i "s|COOKBOOK_TOOLCHAIN|${COOKBOOK_TOOLCHAIN}|g" config.toml +sed -i "s|COOKBOOK_TARGET|${COOKBOOK_CROSS_TARGET}|g" config.toml +sed -i "s|COOKBOOK_GNU_TARGET|${COOKBOOK_CROSS_GNU_TARGET}|g" config.toml +sed -i "s|TARGET|${TARGET}|g" config.toml else diff --git a/recipes/libs/libstdcxx-v3/recipe.toml b/recipes/libs/libstdcxx-v3/recipe.toml index c89158af..c4949db3 100644 --- a/recipes/libs/libstdcxx-v3/recipe.toml +++ b/recipes/libs/libstdcxx-v3/recipe.toml @@ -11,10 +11,12 @@ COOKBOOK_CONFIGURE_FLAGS+=( --enable-libstdcxx-threads ) -# TODO: Investigate why mutex is not available in riscv64 -if [ "${TARGET}" = "riscv64gc-unknown-redox" ]; then -COOKBOOK_CONFIGURE_FLAGS+=( --without-libstdcxx-zoneinfo ) -fi +# TODO: Investigate why mutex is not available in these platforms +case "${TARGET}" in + "riscv64gc-unknown-redox" | *-unknown-linux-relibc) + COOKBOOK_CONFIGURE_FLAGS+=( --without-libstdcxx-zoneinfo ) + ;; +esac CPPINCLUDE="${COOKBOOK_HOST_SYSROOT}/$TARGET/include/c++/13.2.0" export CPPFLAGS+=" -I${CPPINCLUDE} -I${CPPINCLUDE}/$TARGET/bits"