1#!/usr/bin/env bash 2 3set -e 4 5# Checkout LLVM sources 6git clone --depth=1 --branch llvmorg-16.0.6 https://github.com/llvm/llvm-project.git llvm-project 7 8## Setup libc++ options 9if [ -z "$BUILD_32_BITS" ]; then 10 export BUILD_32_BITS=OFF && echo disabling 32 bit build 11fi 12 13## Build and install libc++ (Use unstable ABI for better sanitizer coverage) 14mkdir llvm-build && cd llvm-build 15cmake -DCMAKE_C_COMPILER=${CC} \ 16 -DCMAKE_CXX_COMPILER=${CXX} \ 17 -DCMAKE_BUILD_TYPE=RelWithDebInfo \ 18 -DCMAKE_INSTALL_PREFIX=/usr \ 19 -DLIBCXX_ABI_UNSTABLE=OFF \ 20 -DLLVM_USE_SANITIZER=${LIBCXX_SANITIZER} \ 21 -DLLVM_BUILD_32_BITS=${BUILD_32_BITS} \ 22 -DLLVM_ENABLE_RUNTIMES='libcxx;libcxxabi;libunwind' \ 23 -G "Unix Makefiles" \ 24 ../llvm-project/runtimes/ 25make -j cxx cxxabi unwind 26cd .. 27