Mercurial > vanilla
changeset 1325:ee0eedaa9476
core/llvm: fix llvm-config output
author | David Demelier <markand@malikania.fr> |
---|---|
date | Sun, 21 Nov 2021 10:43:45 +0100 |
parents | 9b16e34aee4d |
children | 6136d839c2c9 |
files | core/llvm/llvm.sh core/llvm/patch-fhs.patch |
diffstat | 2 files changed, 37 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/core/llvm/llvm.sh Sun Nov 21 10:31:09 2021 +0100 +++ b/core/llvm/llvm.sh Sun Nov 21 10:43:45 2021 +0100 @@ -24,7 +24,7 @@ PKGDEPENDS="python:build cmake:build" PKGOPTIONS="DOXYGEN FFI LIBEDIT LZMA NCURSES SPHINX TARGETS XML ZLIB" PKGSPLIT="clang compiler-rt lld lldb libcxx libcxxabi libunwind openmp" -PKGPRESERVE="lib/libLLVM-13.so" +PKGPRESERVE="lib/libLLVM-$PKGVERSION.so" PKGDEPENDS_CLANG="compiler-rt libcxx lld" PKGDEPENDS_LLD="libcxx" @@ -33,7 +33,7 @@ PKGPRESERVE_CLANG="lib/libclang.so.13.0.0" PKGPRESERVE_LIBCXX="lib/libc++.so.1.0" -PKGPRESERVE_LIBCXXABI="lib/libcxxabi.so.1.0" +PKGPRESERVE_LIBCXXABI="lib/libc++abi.so.1.0" PKGPRESERVE_LIBUNWIND="lib/libunwind.so.1.0" : ${CHOST:=$(uname -m)-linux-musl} @@ -111,6 +111,13 @@ with_zlib="-DLLVM_ENABLE_ZLIB=Off" fi +case $(uname -m) in +x86_64) + TARGET=x86_64-linux-musl ;; +aarch64) + TARGET=aarch64-linux-musl ;; +esac + build() { rm -rf llvm-project-llvmorg-$PKGVERSION @@ -118,14 +125,15 @@ cd llvm-project-llvmorg-$PKGVERSION patch -p1 < ../patch-disable-atomic.patch + patch -p1 < ../patch-fhs.patch cmake -S llvm -B build \ -DCLANG_DEFAULT_CXX_STDLIB=libc++ \ -DCLANG_DEFAULT_LINKER=lld \ -DCLANG_DEFAULT_RTLIB=compiler-rt \ -DCLANG_DEFAULT_UNWINDLIB=libunwind \ -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_MANDIR=/share/man \ -DCMAKE_INSTALL_PREFIX=/ \ - -DCMAKE_INSTALL_MANDIR=/share/man \ -DCOMPILER_RT_BUILD_LIBFUZZER=Off \ -DCOMPILER_RT_BUILD_MEMPROF=Off \ -DCOMPILER_RT_BUILD_ORC=Off \ @@ -134,6 +142,7 @@ -DCOMPILER_RT_BUILD_XRAY=Off \ -DCOMPILER_RT_EXCLUDE_ATOMIC_BUILTIN=Off \ -DLIBCXXABI_INCLUDE_TESTS=Off \ + -DLIBCXXABI_TARGET_TRIPLE=$TARGET \ -DLIBCXXABI_USE_COMPILER_RT=On \ -DLIBCXXABI_USE_LLVM_UNWINDER=On \ -DLIBCXX_CXX_ABI=libcxxabi \ @@ -150,6 +159,7 @@ -DLLVM_BUILD_TESTS=Off \ -DLLVM_BUILD_TOOLS=On \ -DLLVM_BUILD_UTILS=Off \ + -DLLVM_DEFAULT_TARGET_TRIPLE=$TARGET \ -DLLVM_ENABLE_BINDINGS=Off \ -DLLVM_ENABLE_DOXYGEN=Off \ -DLLVM_ENABLE_EH=On \ @@ -159,6 +169,7 @@ -DLLVM_ENABLE_PROJECTS="clang;lld;lldb;compiler-rt;libunwind;libcxxabi;libcxx;openmp" \ -DLLVM_ENABLE_RTTI=On \ -DLLVM_ENABLE_SPHINX=Off \ + -DLLVM_HOST_TRIPLE=$TARGET \ -DLLVM_INCLUDE_BENCHMARKS=Off \ -DLLVM_INCLUDE_DOCS=Off \ -DLLVM_INCLUDE_EXAMPLES=Off \ @@ -167,7 +178,6 @@ -DLLVM_INCLUDE_TOOLS=On \ -DLLVM_INCLUDE_UTILS=Off \ -DLLVM_INSTALL_BINUTILS_SYMLINKS=On \ - -DLLVM_INSTALL_TOOLCHAIN_ONLY=On \ -DLLVM_INSTALL_UTILS=Off \ -DLLVM_TARGETS_TO_BUILD=$TARGETS \ $with_doxygen \ @@ -210,7 +220,7 @@ mkdir -p $DESTDIR-compiler-rt/lib/clang/$PKGVERSION mv $DESTDIR/lib/clang/$PKGVERSION/lib $DESTDIR-compiler-rt/lib/clang/$PKGVERSION - # clang + # clang (/lib/cpp and /bin/cpp are still required unfortunately). mkdir -p \ $DESTDIR-clang/bin \ $DESTDIR-clang/include \ @@ -224,10 +234,13 @@ mv $DESTDIR/share/clang $DESTDIR-clang/share mv $DESTDIR/share/scan-build $DESTDIR-clang/share mv $DESTDIR/share/scan-view $DESTDIR-clang/share + ln -sf /bin/clang $DESTDIR-clang/bin/cpp + ln -sf /bin/clang $DESTDIR-clang/lib/cpp # lld mkdir -p $DESTDIR-lld/bin mv $DESTDIR/bin/lld* $DESTDIR-lld/bin + ln -sf /bin/lld $DESTDIR-lld/bin/ld cd .. rm -rf $PKGNAME-$PKGVERSION.src
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/llvm/patch-fhs.patch Sun Nov 21 10:43:45 2021 +0100 @@ -0,0 +1,19 @@ +--- a/llvm/tools/llvm-config/llvm-config.cpp ++++ b/llvm/tools/llvm-config/llvm-config.cpp +@@ -357,12 +357,12 @@ + ("-I" + ActiveIncludeDir + " " + "-I" + ActiveObjRoot + "/include"); + } else { + ActivePrefix = CurrentExecPrefix; +- ActiveIncludeDir = ActivePrefix + "/include"; ++ ActiveIncludeDir = "/include"; + SmallString<256> path(StringRef(LLVM_TOOLS_INSTALL_DIR)); + sys::fs::make_absolute(ActivePrefix, path); +- ActiveBinDir = std::string(path.str()); +- ActiveLibDir = ActivePrefix + "/lib" + LLVM_LIBDIR_SUFFIX; +- ActiveCMakeDir = ActiveLibDir + "/cmake/llvm"; ++ ActiveBinDir = "/bin"; ++ ActiveLibDir = "/lib"; ++ ActiveCMakeDir = "/lib/cmake/llvm"; + ActiveIncludeOption = "-I" + ActiveIncludeDir; + } +