59 lines
1.5 KiB
Docker
59 lines
1.5 KiB
Docker
FROM ubuntu:rolling
|
|
|
|
WORKDIR /tmp
|
|
ENV HOME=/tmp
|
|
RUN chmod -R 777 /tmp
|
|
|
|
# Install apt dependencies
|
|
RUN apt-get update
|
|
RUN apt-get upgrade -y
|
|
RUN TZ=America/Los_Angeles DEBIAN_FRONTEND=noninteractive apt-get install -y \
|
|
binutils-aarch64-linux-gnu \
|
|
build-essential \
|
|
ccache \
|
|
cmake \
|
|
curl \
|
|
devscripts \
|
|
g++-aarch64-linux-gnu \
|
|
gcovr \
|
|
git \
|
|
gnupg \
|
|
libc6-dbg \
|
|
lsb-release \
|
|
mold \
|
|
ninja-build \
|
|
pre-commit \
|
|
python3-requests \
|
|
qemu-user \
|
|
rpm \
|
|
software-properties-common \
|
|
texlive-full \
|
|
wget \
|
|
zstd
|
|
|
|
# Install recent valgrind from source
|
|
RUN curl -Ls https://sourceware.org/pub/valgrind/valgrind-3.22.0.tar.bz2 -o valgrind.tar.bz2 && \
|
|
echo "c811db5add2c5f729944caf47c4e7a65dcaabb9461e472b578765dd7bf6d2d4c valgrind.tar.bz2" > valgrind-sha.txt && \
|
|
sha256sum --quiet -c valgrind-sha.txt && \
|
|
mkdir valgrind && \
|
|
tar --strip-components 1 --no-same-owner --no-same-permissions --directory valgrind -xjf valgrind.tar.bz2 && \
|
|
cd valgrind && \
|
|
./configure --enable-only64bit --enable-lto && \
|
|
make -j`nproc` && \
|
|
make install && \
|
|
cd .. && \
|
|
rm -rf /tmp/*
|
|
|
|
# Recent clang
|
|
RUN wget https://apt.llvm.org/llvm.sh && chmod +x ./llvm.sh && ./llvm.sh 20
|
|
|
|
RUN apt-get -y install clang llvm
|
|
|
|
# Set after building valgrind, which doesn't build with clang for some reason
|
|
ENV CC=clang
|
|
ENV CXX=clang++
|
|
|
|
# Try to have all the pre-commit hooks we'll need already initialized
|
|
COPY .pre-commit-config.yaml /tmp/
|
|
RUN git init && pre-commit install-hooks
|