alicelinux

A lightweight musl + clang/llvm + libressl + busybox distro
git clone https://codeberg.org/emmett1/alicelinux
Log | Files | Refs | README | LICENSE

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 }