diff --git a/bin/aarch64-unknown-redox-llvm-config b/bin/aarch64-unknown-redox-llvm-config new file mode 120000 index 00000000..a118f6a9 --- /dev/null +++ b/bin/aarch64-unknown-redox-llvm-config @@ -0,0 +1 @@ +x86_64-unknown-redox-llvm-config \ No newline at end of file diff --git a/bin/x86_64-unknown-redox-llvm-config b/bin/x86_64-unknown-redox-llvm-config index a0f050e7..d790ccf9 100755 --- a/bin/x86_64-unknown-redox-llvm-config +++ b/bin/x86_64-unknown-redox-llvm-config @@ -2,16 +2,15 @@ # This script wraps llvm-config that intended for cross compiling to Redox. # Because we can't run llvm-config compiled to Redox, we wrap it here. -# Any recipes that calls this script must have "host:llvm.runtime" available. import os import sys import subprocess -LLVM_CONFIG = "/usr/bin/llvm-config" +LLVM_CONFIG = "/bin/llvm-config" def main(): - toolchain_path = os.environ.get("COOKBOOK_TOOLCHAIN") + toolchain_path = os.environ.get("COOKBOOK_HOST_SYSROOT") sysroot_path = os.environ.get("COOKBOOK_SYSROOT") if not toolchain_path or not sysroot_path: diff --git a/mk/prefix.mk b/mk/prefix.mk index d237d536..9f129389 100644 --- a/mk/prefix.mk +++ b/mk/prefix.mk @@ -36,7 +36,7 @@ static_clean: | $(FSTOOLS_TAG) $(MAKE) c.bash,luajit,gettext,openssl1,pcre2,sdl1,zstd,zlib,bzip2,xz $(MAKE) c.expat,freetype2,libffi,libiconv,libjpeg,liborbital,libpng,libxml2,ncurses,ncursesw -$(PREFIX)/relibc-install: $(PREFIX)/rust-install $(PREFIX)/gcc-install | $(FSTOOLS_TAG) $(CONTAINER_TAG) +$(PREFIX)/relibc-install: $(PREFIX)/clang-install $(PREFIX)/rust-install $(PREFIX)/gcc-install | $(FSTOOLS_TAG) $(CONTAINER_TAG) ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) make $@ else @@ -45,6 +45,7 @@ else mkdir "$@.partial" cp -r "$(PREFIX)/gcc-install/". "$@.partial" cp -r "$(PREFIX)/rust-install/". "$@.partial" + cp -r "$(PREFIX)/clang-install/". "$@.partial" rm -rf "$@.partial/$(GNU_TARGET)/include/"* cp -r "$(PREFIX)/gcc-install/$(GNU_TARGET)/include/c++" "$@.partial/$(GNU_TARGET)/include/c++" export PATH="$(ROOT)/$@.partial/bin:$$PATH" && \ @@ -254,6 +255,7 @@ $(PREFIX_RUST_VERSION_TAG): rm -f "$(PREFIX)"/rust-std-host-install.tar.xz rm -f "$(PREFIX)"/rust-std-target-install.tar.xz rm -f "$(PREFIX)"/rust-src-install.tar.xz: + mkdir -p "$(@D)" touch $@ $(PREFIX)/rustc-install.tar.xz: | $(PREFIX_RUST_VERSION_TAG) @@ -364,7 +366,10 @@ else export PATH="$(ROOT)/$(PREFIX)/libtool-install/bin:$$PATH" \ $(PREFIX_CONFIG) COOKBOOK_HOST_SYSROOT=/usr COOKBOOK_CROSS_TARGET=$(TARGET) && \ ./target/release/repo cook host:llvm21 host:clang21 host:lld21 -# skipping dev, while llvm libraries is already in rust +# skipping dev, llvm libraries is already in rust if building +ifeq ($(PREFIX_USE_UPSTREAM_RUST_COMPILER),1) + cp -r "$(LLVM_TARGET)/stage/usr/". "$@.partial" +endif cp -r "$(LLVM_TARGET)/stage.runtime/usr/". "$@.partial" cp -r "$(CLANG_TARGET)/stage/usr/". "$@.partial" cp -r "$(LLD_TARGET)/stage/usr/". "$@.partial" diff --git a/recipes/dev/clang21/recipe.toml b/recipes/dev/clang21/recipe.toml index 3aa91f19..5c271acd 100644 --- a/recipes/dev/clang21/recipe.toml +++ b/recipes/dev/clang21/recipe.toml @@ -10,12 +10,6 @@ dev-dependencies = [ "libstdcxx", # no idea "llvm21.dev", "llvm21.runtime", - "host:llvm21", - "host:llvm21.dev", - "host:llvm21.runtime", - "host:clang21", # for clang-tblgen - "host:xz", - "host:libarchive", # workaround for cmake error ] script = """ DYNAMIC_INIT @@ -26,7 +20,6 @@ generate_cookbook_cmake_file $COOKBOOK_HOST_TARGET "" "$COOKBOOK_TOOLCHAIN" nati COOKBOOK_CMAKE_FLAGS+=( -DLLVM_ROOT="${COOKBOOK_SYSROOT}" -DCLANG_LINK_CLANG_DYLIB=ON - -DLLVM_TABLEGEN_EXE=${COOKBOOK_TOOLCHAIN}/bin/llvm-tblgen -DLIBCLANG_BUILD_STATIC=1 -DLLVM_BUILD_UTILS=On @@ -52,6 +45,8 @@ COOKBOOK_SOURCE="$COOKBOOK_SOURCE/clang" if [ "$TARGET" = "$COOKBOOK_HOST_TARGET" ]; then + COOKBOOK_CMAKE_FLAGS+=( -DLLVM_TABLEGEN_EXE=${COOKBOOK_TOOLCHAIN}/bin/llvm-tblgen ) + "${COOKBOOK_CMAKE}" "${COOKBOOK_SOURCE}" \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_INCLUDEDIR=include \ @@ -75,7 +70,8 @@ else COOKBOOK_CMAKE_FLAGS+=( -DCROSS_TOOLCHAIN_FLAGS_NATIVE="-DCMAKE_TOOLCHAIN_FILE=$(realpath native.cmake)" - -DCLANG_TABLEGEN_EXE=${COOKBOOK_TOOLCHAIN}/bin/clang-tblgen + -DCLANG_TABLEGEN_EXE=${COOKBOOK_HOST_SYSROOT}/bin/clang-tblgen + -DLLVM_TABLEGEN_EXE=${COOKBOOK_HOST_SYSROOT}/bin/llvm-tblgen ) cookbook_cmake diff --git a/recipes/dev/lld21/recipe.toml b/recipes/dev/lld21/recipe.toml index e15dc327..65f3b289 100644 --- a/recipes/dev/lld21/recipe.toml +++ b/recipes/dev/lld21/recipe.toml @@ -10,11 +10,6 @@ dependencies = [ dev-dependencies = [ "llvm21.dev", "llvm21.runtime", - "host:llvm21", - "host:llvm21.dev", - "host:llvm21.runtime", - "host:xz", - "host:libarchive", # workaround for cmake error ] script = """ DYNAMIC_INIT @@ -22,10 +17,15 @@ ARCH="$(echo "${TARGET}" | cut -d - -f1)" generate_cookbook_cmake_file $COOKBOOK_HOST_TARGET "" "$COOKBOOK_TOOLCHAIN" native.cmake +if [ "$TARGET" = "$COOKBOOK_HOST_TARGET" ]; then +COOKBOOK_CMAKE_FLAGS+=( -DLLVM_TABLEGEN_EXE=${COOKBOOK_TOOLCHAIN}/bin/llvm-tblgen ) +else +COOKBOOK_CMAKE_FLAGS+=( -DLLVM_TABLEGEN_EXE=${COOKBOOK_HOST_SYSROOT}/bin/llvm-tblgen ) +fi + COOKBOOK_CMAKE_FLAGS+=( -DLLVM_ROOT="${COOKBOOK_SYSROOT}" -DCROSS_TOOLCHAIN_FLAGS_NATIVE="-DCMAKE_TOOLCHAIN_FILE=$(realpath native.cmake)" - -DLLVM_TABLEGEN_EXE=${COOKBOOK_TOOLCHAIN}/bin/llvm-tblgen # the shared options from llvm -DCMAKE_CXX_FLAGS="--std=gnu++11" diff --git a/recipes/dev/rust/recipe.toml b/recipes/dev/rust/recipe.toml index f5e5619c..f5ad66af 100644 --- a/recipes/dev/rust/recipe.toml +++ b/recipes/dev/rust/recipe.toml @@ -15,9 +15,6 @@ dev-dependencies = [ "llvm21.dev", "llvm21.runtime", "lld21", - "host:llvm21", - "host:llvm21.dev", - "host:llvm21.runtime", ] script = """ diff --git a/recipes/libs/mesa/recipe.toml b/recipes/libs/mesa/recipe.toml index a94a2523..6d23ee12 100644 --- a/recipes/libs/mesa/recipe.toml +++ b/recipes/libs/mesa/recipe.toml @@ -14,8 +14,6 @@ dependencies = [ ] dev-dependencies = [ "llvm21.dev", - "host:llvm21.dev", - "host:llvm21.runtime", ] script = """ DYNAMIC_INIT diff --git a/recipes/wip/dev/lang/dotnet8/recipe.toml b/recipes/wip/dev/lang/dotnet8/recipe.toml index 7a324677..60f24e3b 100644 --- a/recipes/wip/dev/lang/dotnet8/recipe.toml +++ b/recipes/wip/dev/lang/dotnet8/recipe.toml @@ -15,8 +15,3 @@ dependencies = [ "kerberos5", "zlib", ] -dev-dependencies = [ - "host:clang21", - "host:lld21", - "host:llvm21.dev", -] diff --git a/recipes/wip/net/onion-routing/tor-browser/recipe.toml b/recipes/wip/net/onion-routing/tor-browser/recipe.toml index 63243963..59e2e024 100644 --- a/recipes/wip/net/onion-routing/tor-browser/recipe.toml +++ b/recipes/wip/net/onion-routing/tor-browser/recipe.toml @@ -35,12 +35,6 @@ dependencies = [ # "libepoxy", # "pipewire", ] -dev-dependencies = [ - "host:llvm21", - "host:llvm21.dev", - "host:llvm21.runtime", - "host:clang21", -] script = """ DYNAMIC_INIT diff --git a/recipes/wip/web/firefox-esr/recipe.toml b/recipes/wip/web/firefox-esr/recipe.toml index 31dc6f26..54947da8 100644 --- a/recipes/wip/web/firefox-esr/recipe.toml +++ b/recipes/wip/web/firefox-esr/recipe.toml @@ -37,12 +37,6 @@ dependencies = [ # "libepoxy", # "pipewire", ] -dev-dependencies = [ - "host:llvm21", - "host:llvm21.dev", - "host:llvm21.runtime", - "host:clang21", -] script = """ DYNAMIC_INIT diff --git a/recipes/wip/web/servo/recipe.toml b/recipes/wip/web/servo/recipe.toml index 17d42d0b..71253490 100644 --- a/recipes/wip/web/servo/recipe.toml +++ b/recipes/wip/web/servo/recipe.toml @@ -12,12 +12,6 @@ dependencies = [ "mesa", "zlib", ] -dev-dependencies = [ - "llvm21.dev", - "host:llvm21.dev", - "host:llvm21.runtime", - "host:libarchive", # workaround for cmake error -] script = """ DYNAMIC_INIT @@ -41,7 +35,6 @@ export CLANGFLAGS="-I $PREFIX_INCLUDE/c++/13.2.0 -I $PREFIX_INCLUDE/c++/13.2.0/$ #Mozjs specifics unset CC_WRAPPER export CARGO_MAKEFLAGS="-j $COOKBOOK_MAKE_JOBS" CCACHE="sccache" -unset CC_WRAPPER PACKAGE_PATH="ports/servoshell" cookbook_cargo diff --git a/recipes/wip/x11/mesa-x11/recipe.toml b/recipes/wip/x11/mesa-x11/recipe.toml index 67f6452b..dfb07c14 100644 --- a/recipes/wip/x11/mesa-x11/recipe.toml +++ b/recipes/wip/x11/mesa-x11/recipe.toml @@ -18,8 +18,6 @@ dependencies = [ ] dev-dependencies = [ "llvm21.dev", - "host:llvm21.dev", - "host:llvm21.runtime", ] script = """