From cbedac612253ca286c42e3d1f4fae5da4cf0135f Mon Sep 17 00:00:00 2001 From: Daniel Black Date: Thu, 26 Feb 2026 13:34:01 +1100 Subject: [PATCH 1/3] MDBF-1185: Clang 22 released - update image --- ci_build_images/msan.fragment.Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ci_build_images/msan.fragment.Dockerfile b/ci_build_images/msan.fragment.Dockerfile index 43c60c0b..3c1dd0fe 100644 --- a/ci_build_images/msan.fragment.Dockerfile +++ b/ci_build_images/msan.fragment.Dockerfile @@ -2,14 +2,14 @@ # msan.fragment.Dockerfile # this is to create images with MSAN for BB workers -ARG CLANG_VERSION=20 +ARG CLANG_VERSION=22 # earliest tested version known to work - 19 # This CLANG_DEV_VERSION is a marker to make it possible to build a msan builder # from the nightly clang versions as they are in a differently name repositories. # This maps to the https://apt.llvm.org/ under "development" branch version. -ENV CLANG_DEV_VERSION=22 +ENV CLANG_DEV_VERSION=23 WORKDIR /msan-build From 08a219052ee26c5b74fc5e40da511e711409c30b Mon Sep 17 00:00:00 2001 From: Daniel Black Date: Thu, 26 Feb 2026 14:02:06 +1100 Subject: [PATCH 2/3] MDBF-1185: apt.llvm.org GPG has been updated to non-sha1 Per https://apt.llvm.org/ (news). --- ci_build_images/msan.fragment.Dockerfile | 4 ---- 1 file changed, 4 deletions(-) diff --git a/ci_build_images/msan.fragment.Dockerfile b/ci_build_images/msan.fragment.Dockerfile index 3c1dd0fe..5be48615 100644 --- a/ci_build_images/msan.fragment.Dockerfile +++ b/ci_build_images/msan.fragment.Dockerfile @@ -21,10 +21,6 @@ ENV MSAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer-${CLANG_VERSION} ENV CFLAGS="-fno-omit-frame-pointer -O2 -g" ENV CXXFLAGS="$CFLAGS" -# https://github.com/llvm/llvm-project/issues/179147 -RUN mkdir -p /etc/crypto-policies/back-ends \ - && printf '[hash_algorithms]\nsha1 = "always"' >> /etc/crypto-policies/back-ends/sequoia.config - # hadolint ignore=SC2046,DL3003 RUN . /etc/os-release \ && export LLVM_ENABLE_RUNTIMES="libcxx;libcxxabi;libunwind" \ From b7c4892a01c3859764027f3c7632663494d3209f Mon Sep 17 00:00:00 2001 From: Daniel Black Date: Thu, 26 Feb 2026 15:46:55 +1100 Subject: [PATCH 3/3] MDBF-1185: msan - clang 22 - need libunwind The mariadbd --bootstrap still caused a large stack trace on exit similar to the problem that existed in clang-20. Unlike clang-20 the libunwind becomes hard linked to the generated executable. As the libunwind19 is a SONAME compatible library it is replaced so the test MSAN execution can occur. --- ci_build_images/msan.fragment.Dockerfile | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/ci_build_images/msan.fragment.Dockerfile b/ci_build_images/msan.fragment.Dockerfile index 5be48615..aa36a4dd 100644 --- a/ci_build_images/msan.fragment.Dockerfile +++ b/ci_build_images/msan.fragment.Dockerfile @@ -62,10 +62,12 @@ RUN . /etc/os-release \ && cd .. \ && rm -rf -- * -RUN if [ "${CLANG_VERSION}" -le 20 ]; then \ - for f in "$MSAN_LIBDIR"/libunwind*; do mv "$f" "$f"-disable; done \ +RUN for f in "$MSAN_LIBDIR"/libunwind*; do mv "$f" "$f"-disable; done; \ + if [ "${CLANG_VERSION}" -ge 22 ]; then \ + apt-get -y install --no-install-recommends libunwind-19; \ fi -# libunwrap move/disable because of https://github.com/llvm/llvm-project/issues/128621 +# libunwind move/disable because of https://github.com/llvm/llvm-project/issues/128621 +# libunwind-19 meets ABI compatibility as its now linked to built executables. COPY msan.instrumentedlibs.sh /msan-build RUN ./msan.instrumentedlibs.sh