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.
# 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:

View File

@ -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"

View File

@ -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

View File

@ -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"

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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

View File

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