# This image builds clang from source. clang7 is required to build boringssl, clang10 is required for BPF. ARG BUILDBOX_VERSION ARG BUILDBOX_PREFIX FROM centos:7 AS base # Automatically supplied by the Docker buildkit ARG TARGETARCH ## GCC built from sources ##################################################### FROM $BUILDBOX_PREFIX/buildbox-multiarch-base:$BUILDBOX_VERSION-$TARGETARCH ARG CLANG_VERSION RUN git clone --branch llvmorg-${CLANG_VERSION} --depth=1 https://github.com/llvm/llvm-project.git && \ cd llvm-project/ && \ mkdir build && cd build/ && \ cmake3 \ -DCLANG_BUILD_TOOLS=ON \ -DCLANG_ENABLE_ARCMT=OFF \ -DCLANG_ENABLE_STATIC_ANALYZER=OFF \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/opt/llvm \ -DLLVM_BUILD_TOOLS=ON \ -DLLVM_BUILD_UTILS=OFF \ -DLLVM_ENABLE_BINDINGS=OFF \ -DLLVM_ENABLE_PROJECTS=clang \ -DLLVM_INCLUDE_BENCHMARKS=OFF \ -DLLVM_INCLUDE_GO_TESTS=OFF \ -DLLVM_INCLUDE_TESTS=OFF \ -DLLVM_TOOL_LLI_BUILD=OFF \ -G "Unix Makefiles" ../llvm && \ make -j$(grep -c processor /proc/cpuinfo) && \ make install && \ cd ../.. && \ rm -rf llvm-project ENV PATH="/opt/llvm/bin:$PATH"