Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:aaronpuchert:Backports:SLE-15
klee
0001-Add-support-to-build-newer-LLVM-versions.p...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0001-Add-support-to-build-newer-LLVM-versions.patch of Package klee
From: Martin Nowack <m.nowack@imperial.ac.uk> Date: Thu, 12 Oct 2023 10:23:34 +0100 Subject: Add support to build newer LLVM versions Patch-mainline: no References: llvm16 `-DLLVM_ENABLE_PROJECTS` does not include runtimes anymore, instead a `-DLLVM_ENABLE_RUNTIMES` should be used in addition Signed-off-by: Jiri Slaby <jslaby@suse.cz> --- scripts/build/p-libcxx.inc | 29 ++++++++++++++++++++++------- scripts/build/p-llvm.inc | 21 +++++++++++++-------- 2 files changed, 35 insertions(+), 15 deletions(-) diff --git a/scripts/build/p-libcxx.inc b/scripts/build/p-libcxx.inc index 641fad61..b0263c00 100644 --- a/scripts/build/p-libcxx.inc +++ b/scripts/build/p-libcxx.inc @@ -30,7 +30,6 @@ build_libcxx() { local LLVM_VERSION_MAJOR="${LLVM_VERSION/.*/}" local cmake_flags=( - "-DLLVM_ENABLE_PROJECTS=libcxx;libcxxabi" "-DLLVM_ENABLE_THREADS:BOOL=OFF" "-DLIBCXX_ENABLE_THREADS:BOOL=OFF" "-DLIBCXX_ENABLE_SHARED:BOOL=ON" @@ -40,6 +39,13 @@ build_libcxx() { ) # Static ABI libraries are not supported under OS X + if [[ "${LLVM_VERSION_SHORT}" -ge "14" ]]; then + cmake_flags+=("-DLLVM_ENABLE_RUNTIMES=libcxx;libcxxabi") + cmake_flags+=("-DLLVM_ENABLE_PROJECTS=") + cmake_flags+=("-DLLVM_ENABLE_PROJECTS_USED:BOOL=ON") + else + cmake_flags+=("-DLLVM_ENABLE_PROJECTS=libcxx;libcxxabi") + fi if [[ "${OS}" == "osx" ]]; then cmake_flags+=("-DLIBCXX_ENABLE_STATIC_ABI_LIBRARY:BOOL=OFF") else @@ -53,7 +59,11 @@ build_libcxx() { export LLVM_COMPILER_PATH="$(dirname "${BITCODE_CC}")" cmake "${cmake_flags[@]}" "${LIBCXX_SRC}/llvm" - make cxx -j$(nproc) || make cxx + if [[ "${LLVM_VERSION_SHORT}" -ge "14" ]]; then + make runtimes - j"$(nproc)" || make cxx || return 1 + else + make cxx - j"$(nproc)" || make cxx || return 1 + fi ) } @@ -65,19 +75,24 @@ install_libcxx() { export LLVM_COMPILER=clang export LLVM_COMPILER_PATH="$(dirname "${BITCODE_CC}")" - cd "${LIBCXX_BUILD}/projects" - make install + if [[ "${LLVM_VERSION_SHORT}" -ge "14" ]]; then + cd "${LIBCXX_BUILD}/runtimes" || return 1 + make install || return 1 + else + cd "${LIBCXX_BUILD}/projects" || return 1 + make install || return 1 + fi local libraries if [[ "${OS}" == "osx" ]]; then - libraries=("${LIBCXX_INSTALL}"/lib/lib*.dylib) + libraries=("${LIBCXX_INSTALL}"/lib/*/lib*.dylib) else - libraries=("${LIBCXX_INSTALL}"/lib/lib*.so) + libraries=("${LIBCXX_INSTALL}"/lib/*/lib*.so) fi local LLVM_VERSION_MAJOR="${LLVM_VERSION/.*/}" - libraries+=("${LIBCXX_INSTALL}"/lib/lib*.a) + libraries+=("${LIBCXX_INSTALL}"/lib/*/lib*.a) for p in "${libraries[@]}" ; do diff --git a/scripts/build/p-llvm.inc b/scripts/build/p-llvm.inc index abf895ae..462d69f5 100644 --- a/scripts/build/p-llvm.inc +++ b/scripts/build/p-llvm.inc @@ -174,16 +174,21 @@ configure_llvm() { ) if [[ "${SANITIZER_BUILD:-}" == "memory" ]]; then - # We have to build without libunwind if RTTI is disables + # We have to build without libunwind if RTTI is disabled CONFIG+=("-DLLVM_ENABLE_PROJECTS=${ENABLED_LLVM_PROJECTS}") else - CONFIG+=( - "-DLLVM_BUILD_LLVM_DYLIB:BOOL=ON" - "-DLLVM_LINK_LLVM_DYLIB:BOOL=ON" - "-DLLVM_BUILD_STATIC:BOOL=OFF" - "-DLIBCLANG_BUILD_STATIC:BOOL=OFF" - ) - CONFIG+=("-DLLVM_ENABLE_PROJECTS=${ENABLED_LLVM_PROJECTS};libcxx;libcxxabi;libunwind") + CONFIG+=( + "-DLLVM_BUILD_LLVM_DYLIB:BOOL=ON" + "-DLLVM_LINK_LLVM_DYLIB:BOOL=ON" + "-DLLVM_BUILD_STATIC:BOOL=OFF" + "-DLIBCLANG_BUILD_STATIC:BOOL=OFF" + ) + if [[ "${LLVM_VERSION_SHORT}" -ge "14" ]]; then + CONFIG+=("-DLLVM_ENABLE_PROJECTS=${ENABLED_LLVM_PROJECTS}") + CONFIG+=("-DLLVM_ENABLE_RUNTIMES=libcxx;libcxxabi") + else + CONFIG+=("-DLLVM_ENABLE_PROJECTS=${ENABLED_LLVM_PROJECTS};libcxx;libcxxabi") + fi fi if [[ -n ${SANITIZER_BUILD} ]]; then -- 2.43.0
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor