Merge branch 'split-clang-3' into 'master'

Split lld, add LLVM aarch64 target again

See merge request redox-os/redox!1856
This commit is contained in:
Jeremy Soller 2026-02-02 06:39:06 -07:00
commit 641cf334d4
6 changed files with 71 additions and 26 deletions

View File

@ -7,10 +7,13 @@ dependencies = [
"llvm21",
]
dev-dependencies = [
"host:clang21", # for clang-tblgen
"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
]
@ -40,7 +43,7 @@ COOKBOOK_CMAKE_FLAGS+=(
-DLLVM_INCLUDE_TESTS=Off
-DLLVM_OPTIMIZED_TABLEGEN=On
-DLLVM_TARGET_ARCH=$ARCH
-DLLVM_TARGETS_TO_BUILD="X86"
-DLLVM_TARGETS_TO_BUILD="X86;AArch64"
-DLLVM_TOOLS_INSTALL_DIR=bin
-DLLVM_UTILS_INSTALL_DIR=bin
-DUNIX=1
@ -81,16 +84,6 @@ fi
"""
# lld runtime (no library)
[[optional-packages]]
name = "lld"
dependencies = [ ".runtime" ]
files = [
"usr/bin/*.lld",
"usr/bin/*-ld",
"usr/bin/lld*",
]
[[optional-packages]]
name = "dev"
files = [
@ -98,12 +91,3 @@ files = [
"usr/lib/libclang*.a",
"usr/lib/cmake/clang/**",
]
[[optional-packages]]
name = "lld-dev"
dependencies = [ ".lld" ]
files = [
"usr/include/lld*/**",
"usr/lib/liblld*.a",
"usr/lib/cmake/lld/**",
]

View File

@ -0,0 +1,61 @@
[source]
same_as = "../llvm21"
[build]
template = "custom"
dependencies = [
"llvm21",
"zstd",
]
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
ARCH="$(echo "${TARGET}" | cut -d - -f1)"
generate_cookbook_cmake_file $COOKBOOK_HOST_TARGET "" "$COOKBOOK_TOOLCHAIN" native.cmake
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"
-DBUILD_SHARED_LIBS=False
-DLLVM_BUILD_EXAMPLES=Off
-DLLVM_BUILD_TESTS=Off
-DLLVM_DEFAULT_TARGET_TRIPLE="${TARGET}"
-DLLVM_ENABLE_LTO=Off
-DLLVM_ENABLE_RTTI=On
-DLLVM_ENABLE_THREADS=On
-DLLVM_INCLUDE_EXAMPLES=Off
-DLLVM_INCLUDE_TESTS=Off
-DLLVM_OPTIMIZED_TABLEGEN=On
-DLLVM_TARGET_ARCH=$ARCH
-DLLVM_TARGETS_TO_BUILD="X86;AArch64"
-DLLVM_TOOLS_INSTALL_DIR=bin
-DLLVM_UTILS_INSTALL_DIR=bin
-DUNIX=1
)
COOKBOOK_SOURCE="$COOKBOOK_SOURCE/lld"
cookbook_cmake
"""
[[optional-packages]]
name = "dev"
dependencies = []
files = [
"usr/include/lld*/**",
"usr/lib/liblld*.a",
"usr/lib/cmake/lld/**",
]

View File

@ -43,7 +43,7 @@ COOKBOOK_CMAKE_FLAGS+=(
-DLLVM_INCLUDE_TESTS=Off
-DLLVM_OPTIMIZED_TABLEGEN=On
-DLLVM_TARGET_ARCH=$ARCH
-DLLVM_TARGETS_TO_BUILD="X86"
-DLLVM_TARGETS_TO_BUILD="X86;AArch64"
-DLLVM_TOOLS_INSTALL_DIR=bin
-DLLVM_UTILS_INSTALL_DIR=bin
-DUNIX=1

View File

@ -45,7 +45,7 @@ sed -i "s|COOKBOOK_TOOLCHAIN|${COOKBOOK_TOOLCHAIN}|g" config.toml
python3 "${COOKBOOK_SOURCE}/x.py" install \
--config config.toml \
--jobs $(nproc)
--jobs ${COOKBOOK_MAKE_JOBS}
mkdir -p "${COOKBOOK_STAGE}"/usr
rsync -av --delete "${COOKBOOK_BUILD}"/install/* "${COOKBOOK_STAGE}"/usr/

View File

@ -17,6 +17,6 @@ dependencies = [
]
dev-dependencies = [
"host:clang21",
"host:clang21.lld",
"host:lld21",
"host:llvm21.dev",
]

View File

@ -15,8 +15,8 @@ dev-dependencies = [
"llvm21.runtime",
"clang21",
"clang21.dev",
"clang21.lld-dev",
"clang21.lld",
"lld21.dev",
"lld21",
"host:libarchive",
"host:zig",
]