blob: c58e1a533df94b26f6a440ccdd06c1650c4b7911 [file] [log] [blame]
Tristan Rossffd62402024-07-25 08:20:57 -07001FROM ubuntu:24.04 AS builder
Maksim Panchenko1ccc3d52021-10-23 15:44:08 -07002
3ARG DEBIAN_FRONTEND=noninteractive
4ENV TZ=UTC
5
6RUN apt-get update && \
7 apt-get install -y --no-install-recommends ca-certificates git \
8 build-essential cmake ninja-build python3 libjemalloc-dev \
9 python3-psutil && \
10 rm -rf /var/lib/apt/lists
11
12WORKDIR /home/bolt
13
Amir Ayupov68c393c2022-01-12 19:06:03 -080014RUN git clone --depth 1 https://github.com/llvm/llvm-project
Maksim Panchenko1ccc3d52021-10-23 15:44:08 -070015
16RUN mkdir build && \
17 cd build && \
18 cmake -G Ninja ../llvm-project/llvm \
19 -DLLVM_ENABLE_PROJECTS="bolt;clang;lld" \
20 -DLLVM_TARGETS_TO_BUILD="X86;AArch64" \
21 -DCMAKE_BUILD_TYPE=Release \
22 -DLLVM_ENABLE_ASSERTIONS=ON \
23 -DCMAKE_EXE_LINKER_FLAGS="-Wl,--push-state -Wl,-whole-archive -ljemalloc_pic -Wl,--pop-state -lpthread -lstdc++ -lm -ldl" \
24 -DCMAKE_INSTALL_PREFIX=/home/bolt/install && \
25 ninja check-bolt && \
Yevhen Babiichuk (DustDFG)36cd6012025-03-05 09:23:06 +000026 ninja install-llvm-bolt install-merge-fdata install-bolt_rt
Maksim Panchenko1ccc3d52021-10-23 15:44:08 -070027
Tristan Rossffd62402024-07-25 08:20:57 -070028FROM ubuntu:24.04
Maksim Panchenko1ccc3d52021-10-23 15:44:08 -070029
30COPY --from=builder /home/bolt/install /usr/local