summaryrefslogtreecommitdiff
path: root/bolt/utils
diff options
context:
space:
mode:
authorMaksim Panchenko <maks@fb.com>2021-10-23 15:44:08 -0700
committerMaksim Panchenko <maks@fb.com>2021-10-23 15:44:08 -0700
commit1ccc3d500ed9ac0eb5aefd15c6f368f885da328c (patch)
tree4d484df8abe7a3b6150948278dba3c93cb791732 /bolt/utils
parent95ee12977b85b624a6e103e536cd94e58bc248c5 (diff)
downloadllvm-1ccc3d500ed9ac0eb5aefd15c6f368f885da328c.tar.gz
[BOLT] Add Dockerfile
Summary: Dockerfile based on Ubuntu:20.04. Fixes facebookincubator/BOLT#214. (cherry picked from FBD31883210)
Diffstat (limited to 'bolt/utils')
-rw-r--r--bolt/utils/docker/Dockerfile31
1 files changed, 31 insertions, 0 deletions
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