light/tools/ci/amd64/Dockerfile
light7734 fc0f039395
Some checks failed
continuous-integration/drone/push Build is failing
ci(amd64): clean up Dockerfile
2025-09-24 09:54:21 +03:30

99 lines
2 KiB
Docker

FROM archlinux:latest
## Packages ##
RUN \
sed -i 's/^#ParallelDownloads = .*/ParallelDownloads = 8/' /etc/pacman.conf \
&& echo 'NoExtract = usr/share/{man,doc,info}/*' >> /etc/pacman.conf \
&& pacman -Syyu --noconfirm --needed --disable-download-timeout \
afl++ \
afl-utils \
base-devel \
bash \
clang \
cmake \
curl \
expat \
gcc \
gdb \
git \
glm \
libc++ \
libinput \
libpciaccess \
libpng \
libunwind \
libx11 \
libxcb \
libxcursor \
libxi \
libxinerama \
libxpresent \
libxrandr \
lz4 \
mesa \
mold \
ninja \
python \
python-distlib \
python-distutils-extra \
python-jsonschema \
qt5-base \
qt6-base \
valgrind \
vulkan-headers \
vulkan-icd-loader \
vulkan-tools \
vulkan-validation-layers \
wayland \
wayland-protocols \
wget \
xcb-util \
xcb-util-cursor \
xcb-util-keysyms \
xcb-util-wm \
xorg-server-xvfb \
xorg-util-macros \
xtrans \
zlib \
zstd \
&& pacman -Scc --noconfirm
## Sanitizers ##
RUN \
git clone --depth=1 https://github.com/llvm/llvm-project.git -b llvmorg-20.1.8 \
&& mkdir llvm-project/build-lsan llvm-project/build-msan \
\
&& cd llvm-project/build-lsan \
&& cmake -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_LINKER_TYPE="MOLD" \
-DCMAKE_INSTALL_PREFIX=/libcxx_lsan \
-DCMAKE_C_COMPILER=clang \
-DCMAKE_CXX_COMPILER=clang++ \
-DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi" \
-DLLVM_ENABLE_PIC=ON \
-DLIBCXX_INSTALL_MODULES=ON \
-DLIBCXXABI_USE_LLVM_UNWINDER=OFF \
-DLLVM_USE_SANITIZER=Leaks \
../runtimes \
&& ninja cxx cxxabi \
&& ninja install-cxx install-cxxabi \
\
&& cd ../build-msan \
&& cmake -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_LINKER_TYPE="MOLD" \
-DCMAKE_INSTALL_PREFIX=/libcxx_msan \
-DCMAKE_C_COMPILER=clang \
-DCMAKE_CXX_COMPILER=clang++ \
-DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi" \
-DLLVM_ENABLE_PIC=ON \
-DLIBCXX_INSTALL_MODULES=ON \
-DLIBCXXABI_USE_LLVM_UNWINDER=OFF \
-DLLVM_USE_SANITIZER=MemoryWithOrigins \
../runtimes \
&& ninja cxx cxxabi \
&& ninja install-cxx install-cxxabi \
\
&& cd ../.. \
&& rm -rf llvm-project