98 lines
2 KiB
Docker
98 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-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
|