From 06db854b910972e104933c3604ac70bab457d5ea Mon Sep 17 00:00:00 2001 From: Wildan M Date: Wed, 2 Sep 2026 07:01:59 +0700 Subject: [PATCH 1/2] Fixes to building libcxx --- mk/prefix.mk | 12 ++++++------ recipes/dev/llvm-rt21/recipe.toml | 6 +++++- src/cook/script.rs | 2 +- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/mk/prefix.mk b/mk/prefix.mk index b4cbce78e..9cd9f82ff 100644 --- a/mk/prefix.mk +++ b/mk/prefix.mk @@ -34,7 +34,7 @@ UPSTREAM_RUSTC_VERSION=2026-05-24 export PREFIX_RUSTFLAGS=-L $(ROOT)/$(PREFIX_INSTALL)/$(TARGET)/lib export RUSTUP_TOOLCHAIN=$(ROOT)/$(PREFIX_INSTALL) export REDOXER_TOOLCHAIN=$(RUSTUP_TOOLCHAIN) -PREFIX_CONFIG=CI=1 COOKBOOK_CLEAN_BUILD=true COOKBOOK_CLEAN_TARGET=false COOKBOOK_VERBOSE=true COOKBOOK_NONSTOP=false +PREFIX_CONFIG=CI=1 REDOXER_USE_CLANG=0 COOKBOOK_CLEAN_BUILD=true COOKBOOK_CLEAN_TARGET=false COOKBOOK_VERBOSE=true COOKBOOK_NONSTOP=false prefix: $(PREFIX)/sysroot @@ -404,8 +404,8 @@ ifeq ($(PODMAN_BUILD),1) else @echo "\033[1;36;49mBuilding wasip1-libc-install\033[0m" rm -rf "$@.partial" "$@" - export REDOXER_TOOLCHAIN=$(ROOT)/$(PREFIX)/clang-install REDOXER_USE_CLANG=1 PATH="$(ROOT)/$(PREFIX)/clang-install/bin:$$PATH" \ - $(PREFIX_CONFIG) COOKBOOK_HOST_SYSROOT=/usr COOKBOOK_CROSS_TARGET=wasm32-wasip1 COOKBOOK_CROSS_GNU_TARGET=wasm32-wasip1 && \ + export REDOXER_TOOLCHAIN=$(ROOT)/$(PREFIX)/clang-install $(PREFIX_CONFIG) PATH="$(ROOT)/$(PREFIX)/clang-install/bin:$$PATH" \ + REDOXER_USE_CLANG=1 COOKBOOK_HOST_SYSROOT=/usr COOKBOOK_CROSS_TARGET=wasm32-wasip1 COOKBOOK_CROSS_GNU_TARGET=wasm32-wasip1 && \ $(REPO_BIN) cook host:wasi-libc cp -r "$(WASIP1_LIBC_TARGET)/stage/usr/". "$@.partial" mkdir -p "$@.partial/share/wasi-sysroot" @@ -434,7 +434,7 @@ endif endif # BUILD CLANG --------------------------------------------------- -$(PREFIX)/clang-install: | $(PREFIX)/relibc-freestanding-install $(FSTOOLS_TAG) $(CONTAINER_TAG) +$(PREFIX)/clang-install: | $(PREFIX)/gcc-install $(FSTOOLS_TAG) $(CONTAINER_TAG) ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) make $@ else @@ -449,8 +449,8 @@ else cp -r "$(CLANG_TARGET)/stage/usr/". "$@.partial" cp -r "$(LLD_TARGET)/stage/usr/". "$@.partial" rm -rf "$@.partial/lib/"*.a - echo "--sysroot=$(ROOT)/$(PREFIX)/relibc-freestanding-install" > "$@.partial/bin/$(GNU_TARGET).cfg" - export PATH="$(LIBTOOL_PATH)/bin:$(ROOT)/$@.partial/bin:$$PATH" $(PREFIX_CONFIG) \ + echo "--sysroot=$(ROOT)/$(PREFIX)/gcc-install" > "$@.partial/bin/$(GNU_TARGET).cfg" + export PATH="$(ROOT)/$@.partial/bin:$$PATH" $(PREFIX_CONFIG) \ COOKBOOK_HOST_SYSROOT=/usr COOKBOOK_CROSS_TARGET=$(HOST_TARGET) REDOXER_USE_CLANG=1 && \ $(REPO_BIN) cook llvm-rt21 cp -r "$(LLVM_RT_TARGET)/stage/usr/". "$@.partial" diff --git a/recipes/dev/llvm-rt21/recipe.toml b/recipes/dev/llvm-rt21/recipe.toml index 4ca29d9d9..65e0c1b89 100644 --- a/recipes/dev/llvm-rt21/recipe.toml +++ b/recipes/dev/llvm-rt21/recipe.toml @@ -18,10 +18,14 @@ COOKBOOK_CMAKE_FLAGS+=( -DCOMPILER_RT_BUILD_SANITIZERS=OFF -DCOMPILER_RT_USE_BUILTINS_LIBRARY=ON -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON + -DLIBCXX_USE_COMPILER_RT=ON + -DLIBCXX_ENABLE_SHARED=OFF -DLIBCXX_ENABLE_LOCALIZATION=OFF # TODO: *_l functions -DLIBCXX_ENABLE_FILESYSTEM=OFF # TODO: fstream require locales - -DLIBCXXABI_USE_LLVM_UNWINDER=OFF # TODO: libunwind need link.h -DLIBCXX_ENABLE_WIDE_CHARACTERS=OFF # TODO: wsctof, wsctold + -DLIBCXXABI_USE_COMPILER_RT=ON + -DLIBCXXABI_ENABLE_SHARED=OFF + -DLIBCXXABI_USE_LLVM_UNWINDER=OFF # TODO: libunwind need link.h -DCOMPILER_RT_INSTALL_PATH="/usr/lib/clang/21" # the shared options from llvm diff --git a/src/cook/script.rs b/src/cook/script.rs index f1ad3cd8a..01b445a63 100644 --- a/src/cook/script.rs +++ b/src/cook/script.rs @@ -243,7 +243,7 @@ function generate_cookbook_cmake_file { SYSTEM_NAME="UnixPaths" fi -if [ -z "${REDOXER_USE_CLANG}" ]; then +if [[ "$REDOXER_USE_CLANG" != "1" && "$REDOXER_USE_CLANG" != "true" ]]; then cat > $file < Date: Wed, 2 Sep 2026 10:33:14 +0700 Subject: [PATCH 2/2] Add clang symlink for rust linker --- mk/prefix.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/mk/prefix.mk b/mk/prefix.mk index 9cd9f82ff..75c53e170 100644 --- a/mk/prefix.mk +++ b/mk/prefix.mk @@ -450,6 +450,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/$(TARGET)-clang" export PATH="$(ROOT)/$@.partial/bin:$$PATH" $(PREFIX_CONFIG) \ COOKBOOK_HOST_SYSROOT=/usr COOKBOOK_CROSS_TARGET=$(HOST_TARGET) REDOXER_USE_CLANG=1 && \ $(REPO_BIN) cook llvm-rt21