name: Build libc++ for MemorySanitizer on: [workflow_dispatch] jobs: build-libcxx_msan: runs-on: ubuntu-22.04 steps: - name: Install dependencies run: | sudo apt update sudo apt install -y git cmake ninja-build - name: Install clang run: | wget https://apt.llvm.org/llvm.sh chmod +x llvm.sh sudo ./llvm.sh 16 - name: Build libcxx_msan run: | git clone --depth=1 https://github.com/llvm/llvm-project -b release/16.x cd llvm-project mkdir build cmake -G Ninja -S runtimes -B build -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi" -DCMAKE_C_COMPILER=clang-16 -DCMAKE_CXX_COMPILER=clang++-16 -DLLVM_USE_SANITIZER=MemoryWithOrigins ninja -C build cxx cxxabi cd build XZ_OPT=-e9 tar cfJ libcxx_msan.tar.xz include lib - name: Archive libcxx_msan.tar.xz uses: actions/upload-artifact@v3 with: name: libcxx_msan path: llvm-project/build/libcxx_msan.tar.xz