diff --git a/bolt/utils/docker/Dockerfile b/bolt/utils/docker/Dockerfile new file mode 100644 index 000000000000..499883fb896e --- /dev/null +++ b/bolt/utils/docker/Dockerfile @@ -0,0 +1,31 @@ +FROM ubuntu:20.04 AS builder + +ARG DEBIAN_FRONTEND=noninteractive +ENV TZ=UTC + +RUN apt-get update && \ + apt-get install -y --no-install-recommends ca-certificates git \ + build-essential cmake ninja-build python3 libjemalloc-dev \ + python3-psutil && \ + rm -rf /var/lib/apt/lists + +WORKDIR /home/bolt + +RUN git clone --depth 1 https://github.com/facebookincubator/BOLT llvm-project + +RUN mkdir build && \ + cd build && \ + cmake -G Ninja ../llvm-project/llvm \ + -DLLVM_ENABLE_PROJECTS="bolt;clang;lld" \ + -DLLVM_TARGETS_TO_BUILD="X86;AArch64" \ + -DCMAKE_BUILD_TYPE=Release \ + -DLLVM_ENABLE_ASSERTIONS=ON \ + -DCMAKE_EXE_LINKER_FLAGS="-Wl,--push-state -Wl,-whole-archive -ljemalloc_pic -Wl,--pop-state -lpthread -lstdc++ -lm -ldl" \ + -DCMAKE_INSTALL_PREFIX=/home/bolt/install && \ + ninja check-bolt && \ + ninja install-llvm-bolt install-perf2bolt install-merge-fdata \ + install-llvm-boltdiff install-bolt_rt + +FROM ubuntu:20.04 + +COPY --from=builder /home/bolt/install /usr/local