abuild (2659B)
1 name=llvm 2 version=20.1.8 3 release=1 4 source="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-project-${version}.src.tar.xz 5 c89 c99 6 0012-libc-libc-abi-libunwind-disable-multiarch-locations.patch 7 0014-clang-disable-multiarch-layout-on-musl.patch 8 0017-clang-use-as-needed-by-default.patch 9 0024-clang-link-libcxxabi-on-linux-when-using-libc.patch 10 compiler-rt-sanitizer-supported-arch.patch 11 fix-msan-with-musl.patch 12 musl-stack-size.patch 13 musl-targets.patch" 14 keep_static=1 15 no_strip=1 16 build_type="cmake_build" 17 build_dir="llvm-project-${version}.src/llvm" 18 patch_opt="-Np1 -d .." 19 export CFLAGS="$CFLAGS -fPIC" 20 export CXXFLAGS="$CXXFLAGS -fPIC" 21 22 # llvm 23 build_opt=" 24 -DLLVM_BUILD_LLVM_DYLIB=ON 25 -DLLVM_LINK_LLVM_DYLIB=ON 26 -DLLVM_TARGETS_TO_BUILD='host;AMDGPU' 27 -DLLVM_HOST_TRIPLE=x86_64-pc-linux-musl 28 -DLLVM_INCLUDE_BENCHMARKS=OFF 29 -DLLVM_INCLUDE_EXAMPLES=OFF 30 -DLLVM_INCLUDE_DOCS=OFF 31 -DLLVM_INCLUDE_TESTS=OFF 32 -DLLVM_ENABLE_RUNTIMES='compiler-rt;libunwind;libcxx;libcxxabi' 33 -DLLVM_ENABLE_PROJECTS='clang;clang-tools-extra;lld' 34 -DLLVM_ENABLE_RTTI=ON 35 -DLLVM_ENABLE_EH=ON 36 -DLLVM_ENABLE_LIBXML2=OFF 37 -DLLVM_ENABLE_LIBCXX=ON 38 -DLLVM_ENABLE_RTTI=ON 39 -DLLVM_ENABLE_LLD=ON 40 -DLLVM_INSTALL_BINUTILS_SYMLINKS=ON 41 -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON" 42 43 # clang 44 build_opt="$build_opt 45 -DCLANG_BUILD_EXAMPLES=OFF 46 -DCLANG_INCLUDE_DOCS=OFF 47 -DCLANG_INCLUDE_TESTS=OFF 48 -DLIBCLANG_BUILD_STATIC=ON 49 -DCLANG_DEFAULT_RTLIB=compiler-rt 50 -DCLANG_DEFAULT_UNWINDLIB=libunwind 51 -DCLANG_DEFAULT_CXX_STDLIB=libc++ 52 -DCLANG_CONFIG_FILE_SYSTEM_DIR=/etc/clang 53 -DCLANG_LINK_CLANG_DYLIB=Yes" 54 55 # libcxx 56 build_opt="$build_opt 57 -DLIBCXX_HAS_MUSL_LIBC=ON 58 -DLIBCXX_CXX_ABI=libcxxabi 59 -DLIBCXX_USE_COMPILER_RT=ON 60 -DLIBCXX_HAS_ATOMIC_LIB=No 61 -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=OFF" 62 63 # libcxxabi 64 build_opt="$build_opt 65 -DLIBCXXABI_USE_LLVM_UNWINDER=ON 66 -DLIBCXXABI_USE_COMPILER_RT=ON 67 -DLIBCXXABI_ENABLE_STATIC_UNWINDER=OFF" 68 69 # libunwind 70 build_opt="$build_opt 71 -DLIBUNWIND_HAS_NODEFAULTLIBS_FLAG=OFF 72 -DLIBUNWIND_USE_COMPILER_RT=ON 73 -DLIBUNWIND_ENABLE_ASSERTIONS=OFF" 74 75 # compiler-rt 76 build_opt="$build_opt 77 -DCOMPILER_RT_USE_BUILTINS_LIBRARY=ON 78 -DCOMPILER_RT_INCLUDE_TESTS=OFF 79 -DCOMPILER_RT_BUILD_SANITIZERS=ON 80 -DCOMPILER_RT_BUILD_GWP_ASAN=OFF" 81 82 # etc 83 build_opt="$build_opt 84 -DMLIR_INSTALL_AGGREGATE_OBJECTS=OFF 85 $([ -e /usr/bin/ccache ] && echo '-DLLVM_CCACHE_BUILD=ON') 86 " 87 88 postbuild() { 89 ln -s lld $PKG/usr/bin/ld 90 ln -s clang $PKG/usr/bin/cc 91 ln -s clang $PKG/usr/bin/gcc 92 ln -s clang $PKG/usr/bin/cpp 93 ln -s clang++ $PKG/usr/bin/c++ 94 ln -s clang++ $PKG/usr/bin/g++ 95 install -m755 $SRC/c89 $PKG/usr/bin/c89 96 install -m755 $SRC/c99 $PKG/usr/bin/c99 97 }