Add clang-install to relibc prefix and use them for llvm-config

This commit is contained in:
Wildan M 2026-02-21 17:55:49 +07:00
parent 4478e8755a
commit 2822d533ea
No known key found for this signature in database
GPG Key ID: 01AC53185C679C79
12 changed files with 20 additions and 50 deletions

View File

@ -0,0 +1 @@
x86_64-unknown-redox-llvm-config

View File

@ -2,16 +2,15 @@
# This script wraps llvm-config that intended for cross compiling to Redox. # 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. # 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 os
import sys import sys
import subprocess import subprocess
LLVM_CONFIG = "/usr/bin/llvm-config" LLVM_CONFIG = "/bin/llvm-config"
def main(): def main():
toolchain_path = os.environ.get("COOKBOOK_TOOLCHAIN") toolchain_path = os.environ.get("COOKBOOK_HOST_SYSROOT")
sysroot_path = os.environ.get("COOKBOOK_SYSROOT") sysroot_path = os.environ.get("COOKBOOK_SYSROOT")
if not toolchain_path or not sysroot_path: if not toolchain_path or not sysroot_path:

View File

@ -36,7 +36,7 @@ static_clean: | $(FSTOOLS_TAG)
$(MAKE) c.bash,luajit,gettext,openssl1,pcre2,sdl1,zstd,zlib,bzip2,xz $(MAKE) c.bash,luajit,gettext,openssl1,pcre2,sdl1,zstd,zlib,bzip2,xz
$(MAKE) c.expat,freetype2,libffi,libiconv,libjpeg,liborbital,libpng,libxml2,ncurses,ncursesw $(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) ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@ $(PODMAN_RUN) make $@
else else
@ -45,6 +45,7 @@ else
mkdir "$@.partial" mkdir "$@.partial"
cp -r "$(PREFIX)/gcc-install/". "$@.partial" cp -r "$(PREFIX)/gcc-install/". "$@.partial"
cp -r "$(PREFIX)/rust-install/". "$@.partial" cp -r "$(PREFIX)/rust-install/". "$@.partial"
cp -r "$(PREFIX)/clang-install/". "$@.partial"
rm -rf "$@.partial/$(GNU_TARGET)/include/"* rm -rf "$@.partial/$(GNU_TARGET)/include/"*
cp -r "$(PREFIX)/gcc-install/$(GNU_TARGET)/include/c++" "$@.partial/$(GNU_TARGET)/include/c++" cp -r "$(PREFIX)/gcc-install/$(GNU_TARGET)/include/c++" "$@.partial/$(GNU_TARGET)/include/c++"
export PATH="$(ROOT)/$@.partial/bin:$$PATH" && \ 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-host-install.tar.xz
rm -f "$(PREFIX)"/rust-std-target-install.tar.xz rm -f "$(PREFIX)"/rust-std-target-install.tar.xz
rm -f "$(PREFIX)"/rust-src-install.tar.xz: rm -f "$(PREFIX)"/rust-src-install.tar.xz:
mkdir -p "$(@D)"
touch $@ touch $@
$(PREFIX)/rustc-install.tar.xz: | $(PREFIX_RUST_VERSION_TAG) $(PREFIX)/rustc-install.tar.xz: | $(PREFIX_RUST_VERSION_TAG)
@ -364,7 +366,10 @@ else
export PATH="$(ROOT)/$(PREFIX)/libtool-install/bin:$$PATH" \ export PATH="$(ROOT)/$(PREFIX)/libtool-install/bin:$$PATH" \
$(PREFIX_CONFIG) COOKBOOK_HOST_SYSROOT=/usr COOKBOOK_CROSS_TARGET=$(TARGET) && \ $(PREFIX_CONFIG) COOKBOOK_HOST_SYSROOT=/usr COOKBOOK_CROSS_TARGET=$(TARGET) && \
./target/release/repo cook host:llvm21 host:clang21 host:lld21 ./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 "$(LLVM_TARGET)/stage.runtime/usr/". "$@.partial"
cp -r "$(CLANG_TARGET)/stage/usr/". "$@.partial" cp -r "$(CLANG_TARGET)/stage/usr/". "$@.partial"
cp -r "$(LLD_TARGET)/stage/usr/". "$@.partial" cp -r "$(LLD_TARGET)/stage/usr/". "$@.partial"

View File

@ -10,12 +10,6 @@ dev-dependencies = [
"libstdcxx", # no idea "libstdcxx", # no idea
"llvm21.dev", "llvm21.dev",
"llvm21.runtime", "llvm21.runtime",
"host:llvm21",
"host:llvm21.dev",
"host:llvm21.runtime",
"host:clang21", # for clang-tblgen
"host:xz",
"host:libarchive", # workaround for cmake error
] ]
script = """ script = """
DYNAMIC_INIT DYNAMIC_INIT
@ -26,7 +20,6 @@ generate_cookbook_cmake_file $COOKBOOK_HOST_TARGET "" "$COOKBOOK_TOOLCHAIN" nati
COOKBOOK_CMAKE_FLAGS+=( COOKBOOK_CMAKE_FLAGS+=(
-DLLVM_ROOT="${COOKBOOK_SYSROOT}" -DLLVM_ROOT="${COOKBOOK_SYSROOT}"
-DCLANG_LINK_CLANG_DYLIB=ON -DCLANG_LINK_CLANG_DYLIB=ON
-DLLVM_TABLEGEN_EXE=${COOKBOOK_TOOLCHAIN}/bin/llvm-tblgen
-DLIBCLANG_BUILD_STATIC=1 -DLIBCLANG_BUILD_STATIC=1
-DLLVM_BUILD_UTILS=On -DLLVM_BUILD_UTILS=On
@ -52,6 +45,8 @@ COOKBOOK_SOURCE="$COOKBOOK_SOURCE/clang"
if [ "$TARGET" = "$COOKBOOK_HOST_TARGET" ]; then if [ "$TARGET" = "$COOKBOOK_HOST_TARGET" ]; then
COOKBOOK_CMAKE_FLAGS+=( -DLLVM_TABLEGEN_EXE=${COOKBOOK_TOOLCHAIN}/bin/llvm-tblgen )
"${COOKBOOK_CMAKE}" "${COOKBOOK_SOURCE}" \ "${COOKBOOK_CMAKE}" "${COOKBOOK_SOURCE}" \
-DCMAKE_BUILD_TYPE=Release \ -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_INCLUDEDIR=include \ -DCMAKE_INSTALL_INCLUDEDIR=include \
@ -75,7 +70,8 @@ else
COOKBOOK_CMAKE_FLAGS+=( COOKBOOK_CMAKE_FLAGS+=(
-DCROSS_TOOLCHAIN_FLAGS_NATIVE="-DCMAKE_TOOLCHAIN_FILE=$(realpath native.cmake)" -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 cookbook_cmake

View File

@ -10,11 +10,6 @@ dependencies = [
dev-dependencies = [ dev-dependencies = [
"llvm21.dev", "llvm21.dev",
"llvm21.runtime", "llvm21.runtime",
"host:llvm21",
"host:llvm21.dev",
"host:llvm21.runtime",
"host:xz",
"host:libarchive", # workaround for cmake error
] ]
script = """ script = """
DYNAMIC_INIT DYNAMIC_INIT
@ -22,10 +17,15 @@ ARCH="$(echo "${TARGET}" | cut -d - -f1)"
generate_cookbook_cmake_file $COOKBOOK_HOST_TARGET "" "$COOKBOOK_TOOLCHAIN" native.cmake 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+=( COOKBOOK_CMAKE_FLAGS+=(
-DLLVM_ROOT="${COOKBOOK_SYSROOT}" -DLLVM_ROOT="${COOKBOOK_SYSROOT}"
-DCROSS_TOOLCHAIN_FLAGS_NATIVE="-DCMAKE_TOOLCHAIN_FILE=$(realpath native.cmake)" -DCROSS_TOOLCHAIN_FLAGS_NATIVE="-DCMAKE_TOOLCHAIN_FILE=$(realpath native.cmake)"
-DLLVM_TABLEGEN_EXE=${COOKBOOK_TOOLCHAIN}/bin/llvm-tblgen
# the shared options from llvm # the shared options from llvm
-DCMAKE_CXX_FLAGS="--std=gnu++11" -DCMAKE_CXX_FLAGS="--std=gnu++11"

View File

@ -15,9 +15,6 @@ dev-dependencies = [
"llvm21.dev", "llvm21.dev",
"llvm21.runtime", "llvm21.runtime",
"lld21", "lld21",
"host:llvm21",
"host:llvm21.dev",
"host:llvm21.runtime",
] ]
script = """ script = """

View File

@ -14,8 +14,6 @@ dependencies = [
] ]
dev-dependencies = [ dev-dependencies = [
"llvm21.dev", "llvm21.dev",
"host:llvm21.dev",
"host:llvm21.runtime",
] ]
script = """ script = """
DYNAMIC_INIT DYNAMIC_INIT

View File

@ -15,8 +15,3 @@ dependencies = [
"kerberos5", "kerberos5",
"zlib", "zlib",
] ]
dev-dependencies = [
"host:clang21",
"host:lld21",
"host:llvm21.dev",
]

View File

@ -35,12 +35,6 @@ dependencies = [
# "libepoxy", # "libepoxy",
# "pipewire", # "pipewire",
] ]
dev-dependencies = [
"host:llvm21",
"host:llvm21.dev",
"host:llvm21.runtime",
"host:clang21",
]
script = """ script = """
DYNAMIC_INIT DYNAMIC_INIT

View File

@ -37,12 +37,6 @@ dependencies = [
# "libepoxy", # "libepoxy",
# "pipewire", # "pipewire",
] ]
dev-dependencies = [
"host:llvm21",
"host:llvm21.dev",
"host:llvm21.runtime",
"host:clang21",
]
script = """ script = """
DYNAMIC_INIT DYNAMIC_INIT

View File

@ -12,12 +12,6 @@ dependencies = [
"mesa", "mesa",
"zlib", "zlib",
] ]
dev-dependencies = [
"llvm21.dev",
"host:llvm21.dev",
"host:llvm21.runtime",
"host:libarchive", # workaround for cmake error
]
script = """ script = """
DYNAMIC_INIT DYNAMIC_INIT
@ -41,7 +35,6 @@ export CLANGFLAGS="-I $PREFIX_INCLUDE/c++/13.2.0 -I $PREFIX_INCLUDE/c++/13.2.0/$
#Mozjs specifics #Mozjs specifics
unset CC_WRAPPER unset CC_WRAPPER
export CARGO_MAKEFLAGS="-j $COOKBOOK_MAKE_JOBS" CCACHE="sccache" export CARGO_MAKEFLAGS="-j $COOKBOOK_MAKE_JOBS" CCACHE="sccache"
unset CC_WRAPPER
PACKAGE_PATH="ports/servoshell" cookbook_cargo PACKAGE_PATH="ports/servoshell" cookbook_cargo

View File

@ -18,8 +18,6 @@ dependencies = [
] ]
dev-dependencies = [ dev-dependencies = [
"llvm21.dev", "llvm21.dev",
"host:llvm21.dev",
"host:llvm21.runtime",
] ]
script = """ script = """