Merge branch 'update-llvm18' into 'master'

Simplify llvm18 recipe

See merge request redox-os/cookbook!531
This commit is contained in:
Jeremy Soller 2025-07-07 15:06:12 -06:00
commit 1c58dde125

View File

@ -11,32 +11,30 @@ dependencies = [
script = """
DYNAMIC_INIT
cat > CMakeToolchain-x86_64.cmake <<EOF
set(CMAKE_SYSTEM_NAME UnixPaths)
set(CMAKE_FIND_ROOT_PATH ${COOKBOOK_SYSROOT})
set(CMAKE_C_COMPILER ${TARGET}-gcc)
set(CMAKE_CXX_COMPILER ${TARGET}-g++)
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,")
set(CMAKE_PLATFORM_USES_PATH_WHEN_NO_SONAME 1)
EOF
# https://llvm.org/docs/CMake.html
case "${TARGET}" in
x86-unknown-redox)
LLVM_TARGETS_TO_BUILD="X86"
;;
x86_64-unknown-redox)
LLVM_TARGETS_TO_BUILD="X86"
;;
aarch64-unknown-redox)
LLVM_TARGETS_TO_BUILD="AArch64"
;;
riscv64gc-unknown-redox)
LLVM_TARGETS_TO_BUILD="RISCV"
;;
*)
LLVM_TARGETS_TO_BUILD="host"
;;
esac
export LDFLAGS="-Wl,-rpath-link,${COOKBOOK_SYSROOT}/lib $LDFLAGS"
COOKBOOK_MAKE="ninja"
COOKBOOK_CONFIGURE_FLAGS=(
-GNinja
-DCMAKE_TOOLCHAIN_FILE=./CMakeToolchain-x86_64.cmake
-DCMAKE_AR="$(which "${TARGET}-ar")"
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_CROSSCOMPILING=True
COOKBOOK_CMAKE_FLAGS=(
-DCMAKE_CXX_FLAGS="--std=gnu++11"
-DCMAKE_RANLIB="$(which "${TARGET}-ranlib")"
-DCMAKE_INSTALL_PREFIX="/usr"
-DCMAKE_INSTALL_INCLUDEDIR="include"
-DCMAKE_INSTALL_OLDINCLUDEDIR="/include"
-DBUILD_SHARED_LIBS=False
-DLLVM_LINK_LLVM_DYLIB=On
-DCROSS_TOOLCHAIN_FLAGS_NATIVE="-DCMAKE_TOOLCHAIN_FILE=$(realpath "${COOKBOOK_RECIPE}/native.cmake")"
-DLLVM_BUILD_BENCHMARKS=Off
@ -54,7 +52,7 @@ COOKBOOK_CONFIGURE_FLAGS=(
-DLLVM_INCLUDE_UTILS=Off
-DLLVM_OPTIMIZED_TABLEGEN=On
-DLLVM_TARGET_ARCH="$(echo "${TARGET}" | cut -d - -f1)"
-DLLVM_TARGETS_TO_BUILD=X86 # TODO: get from TARGET
-DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS_TO_BUILD}"
-DLLVM_TOOL_LLVM_COV_BUILD=Off
-DLLVM_TOOL_LLVM_LTO_BUILD=Off
-DLLVM_TOOL_LLVM_LTO2_BUILD=Off
@ -67,12 +65,9 @@ COOKBOOK_CONFIGURE_FLAGS=(
-DLLVM_UTILS_INSTALL_DIR=bin
-DUNIX=1
-DLLVM_ENABLE_PROJECTS="llvm"
-Wno-dev
"${COOKBOOK_SOURCE}/llvm"
)
set -x
cmake "${COOKBOOK_CONFIGURE_FLAGS[@]}"
ninja -j"${COOKBOOK_MAKE_JOBS}"
DESTDIR="${COOKBOOK_STAGE}" ninja install -j"${COOKBOOK_MAKE_JOBS}"
cookbook_cmake "${COOKBOOK_SOURCE}/llvm"
set +x
"""