From 418fa22ebe9943e109d3eaa53b17527997a35f84 Mon Sep 17 00:00:00 2001 From: light7734 Date: Thu, 17 Jul 2025 12:36:36 +0330 Subject: [PATCH 01/19] ci: add leak sanitizer Dockerfile --- tools/ci/images/leak_sanitizer/Dockerfile | 63 +++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 tools/ci/images/leak_sanitizer/Dockerfile diff --git a/tools/ci/images/leak_sanitizer/Dockerfile b/tools/ci/images/leak_sanitizer/Dockerfile new file mode 100644 index 0000000..c4cf7b1 --- /dev/null +++ b/tools/ci/images/leak_sanitizer/Dockerfile @@ -0,0 +1,63 @@ +FROM alpine:latest + +RUN apk add --no-cache \ + bash \ + clang \ + llvm \ + cmake \ + git \ + make \ + g++ \ + python3 \ + py3-pip \ + mesa-dev \ + mesa-gl \ + pkgconf \ + mold \ + ninja \ + libc-dev \ + zlib-dev \ + libexecinfo-dev \ + libunwind-dev + +RUN pip install --no-cache-dir --break-system-packages conan gitpython \ + && conan profile detect + +RUN clang --version \ + && conan --version \ + && pip --version \ + && cmake --version \ + && g++ --version \ + && clang --version \ + && ninja --version \ + && mold --version + +RUN git clone --depth=1 https://github.com/llvm/llvm-project.git -b llvmorg-20.1.8 +RUN cd llvm-project/ \ + && rm -rf build/ \ + && mkdir build/ \ + && cd build/ \ + && cmake \ + -G Ninja \ + -DCMAKE_BUILD_TYPE=Release \ + -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 && \ + cd ../\ + && DESTDIR="/libcxx_lsan" ninja -C build install-cxx install-cxxabi\ + && rm -rf /usr/src/llvm-project/ + +# RUN git clone 'https://git.light7734.com/light7734/light.git' --recursive \ +# && cd light \ +# && conan install . \ +# -s build_type=Release \ +# -c tools.system.package_manager:mode=install \ +# -c tools.cmake.cmaketoolchain:generator=Ninja \ +# --build=missing -- 2.45.3 From 0fbd4ebad168a1edb33be39cb01074266fec445a Mon Sep 17 00:00:00 2001 From: light7734 Date: Thu, 17 Jul 2025 12:39:50 +0330 Subject: [PATCH 02/19] ci: modify leak sanitizer Dockerfile --- tools/ci/images/leak_sanitizer/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/ci/images/leak_sanitizer/Dockerfile b/tools/ci/images/leak_sanitizer/Dockerfile index c4cf7b1..cf6318a 100644 --- a/tools/ci/images/leak_sanitizer/Dockerfile +++ b/tools/ci/images/leak_sanitizer/Dockerfile @@ -17,7 +17,6 @@ RUN apk add --no-cache \ ninja \ libc-dev \ zlib-dev \ - libexecinfo-dev \ libunwind-dev RUN pip install --no-cache-dir --break-system-packages conan gitpython \ @@ -40,6 +39,7 @@ RUN cd llvm-project/ \ && cmake \ -G Ninja \ -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_LINKER_TYPE="MOLD" \ -DCMAKE_INSTALL_PREFIX=/libcxx_lsan \ -DCMAKE_C_COMPILER=clang \ -DCMAKE_CXX_COMPILER=clang++ \ -- 2.45.3 From 77582a3bde6859664c5c8a199292f57309c9e22a Mon Sep 17 00:00:00 2001 From: light7734 Date: Thu, 17 Jul 2025 12:56:46 +0330 Subject: [PATCH 03/19] ci: change leak sanitizer Dockerfile base image to arch linux --- tools/ci/images/leak_sanitizer/Dockerfile | 24 ++++++++++------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/tools/ci/images/leak_sanitizer/Dockerfile b/tools/ci/images/leak_sanitizer/Dockerfile index cf6318a..fb668cc 100644 --- a/tools/ci/images/leak_sanitizer/Dockerfile +++ b/tools/ci/images/leak_sanitizer/Dockerfile @@ -1,23 +1,19 @@ -FROM alpine:latest - -RUN apk add --no-cache \ +FROM archlinux/base +RUN pacman -Syu --noconfirm && \ + pacman -S --noconfirm \ bash \ + base-devel \ clang \ llvm \ cmake \ git \ - make \ - g++ \ - python3 \ - py3-pip \ - mesa-dev \ - mesa-gl \ - pkgconf \ + python \ + python-pip \ + mesa \ mold \ ninja \ - libc-dev \ - zlib-dev \ - libunwind-dev + zlib \ + libunwind RUN pip install --no-cache-dir --break-system-packages conan gitpython \ && conan profile detect @@ -50,7 +46,7 @@ RUN cd llvm-project/ \ -DLLVM_USE_SANITIZER=Leaks \ ../runtimes &&\ ninja cxx cxxabi && \ - cd ../\ + cd ../ \ && DESTDIR="/libcxx_lsan" ninja -C build install-cxx install-cxxabi\ && rm -rf /usr/src/llvm-project/ -- 2.45.3 From f33882ba3907ccd93e846d42e47d928a901c618e Mon Sep 17 00:00:00 2001 From: light7734 Date: Thu, 17 Jul 2025 13:02:19 +0330 Subject: [PATCH 04/19] ci: change leak_sanitizer base image to arch linux base devel --- tools/ci/images/leak_sanitizer/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/ci/images/leak_sanitizer/Dockerfile b/tools/ci/images/leak_sanitizer/Dockerfile index fb668cc..ab52948 100644 --- a/tools/ci/images/leak_sanitizer/Dockerfile +++ b/tools/ci/images/leak_sanitizer/Dockerfile @@ -1,4 +1,4 @@ -FROM archlinux/base +FROM archlinux/base-devel RUN pacman -Syu --noconfirm && \ pacman -S --noconfirm \ bash \ -- 2.45.3 From de89e09953f367f9ef4fef597440bea7f72dab6d Mon Sep 17 00:00:00 2001 From: light7734 Date: Thu, 17 Jul 2025 13:04:25 +0330 Subject: [PATCH 05/19] ci: fix leak_sanitizer base image name --- tools/ci/images/leak_sanitizer/Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/ci/images/leak_sanitizer/Dockerfile b/tools/ci/images/leak_sanitizer/Dockerfile index ab52948..bd07fcb 100644 --- a/tools/ci/images/leak_sanitizer/Dockerfile +++ b/tools/ci/images/leak_sanitizer/Dockerfile @@ -1,4 +1,5 @@ -FROM archlinux/base-devel +FROM archlinux:base-devel + RUN pacman -Syu --noconfirm && \ pacman -S --noconfirm \ bash \ -- 2.45.3 From a21717978912574bc9a116108e205081b579d0c6 Mon Sep 17 00:00:00 2001 From: light7734 Date: Fri, 18 Jul 2025 21:43:00 +0330 Subject: [PATCH 06/19] ci: update dockerfile to install conan dependency with lsan enabled --- tools/ci/images/leak_sanitizer/Dockerfile | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/tools/ci/images/leak_sanitizer/Dockerfile b/tools/ci/images/leak_sanitizer/Dockerfile index bd07fcb..8cc1b00 100644 --- a/tools/ci/images/leak_sanitizer/Dockerfile +++ b/tools/ci/images/leak_sanitizer/Dockerfile @@ -51,10 +51,12 @@ RUN cd llvm-project/ \ && DESTDIR="/libcxx_lsan" ninja -C build install-cxx install-cxxabi\ && rm -rf /usr/src/llvm-project/ -# RUN git clone 'https://git.light7734.com/light7734/light.git' --recursive \ -# && cd light \ -# && conan install . \ -# -s build_type=Release \ -# -c tools.system.package_manager:mode=install \ -# -c tools.cmake.cmaketoolchain:generator=Ninja \ -# --build=missing +RUN git clone 'https://git.light7734.com/light7734/light.git' --recursive \ + && cd light \ + && conan install . \ + -s build_type=Release \ + -c tools.system.package_manager:mode=install \ + -c tools.cmake.cmaketoolchain:generator=Ninja \ + -c tools.build:cxxflags=["-g", "-fno-omit-frame-pointer", "-nostdinc++", "-isystem", "/libcxx_lsan/include", "-fsanitize=leak"] \ + -c tools.build:ldflags=["-L/libcxx_lsan/lib", "-Wl,-rpath,/libcxx_lsan/lib", "-lc++", "-lc++abi", "-fsanitize=leak"] \ + --build=missing -- 2.45.3 From ce201bcee74344b6103a9949d699bfa52e76b4b1 Mon Sep 17 00:00:00 2001 From: light7734 Date: Fri, 18 Jul 2025 21:52:53 +0330 Subject: [PATCH 07/19] ci: update lsan dockerfile --- tools/ci/images/leak_sanitizer/Dockerfile | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/tools/ci/images/leak_sanitizer/Dockerfile b/tools/ci/images/leak_sanitizer/Dockerfile index 8cc1b00..d496e94 100644 --- a/tools/ci/images/leak_sanitizer/Dockerfile +++ b/tools/ci/images/leak_sanitizer/Dockerfile @@ -54,9 +54,11 @@ RUN cd llvm-project/ \ RUN git clone 'https://git.light7734.com/light7734/light.git' --recursive \ && cd light \ && conan install . \ - -s build_type=Release \ - -c tools.system.package_manager:mode=install \ - -c tools.cmake.cmaketoolchain:generator=Ninja \ - -c tools.build:cxxflags=["-g", "-fno-omit-frame-pointer", "-nostdinc++", "-isystem", "/libcxx_lsan/include", "-fsanitize=leak"] \ - -c tools.build:ldflags=["-L/libcxx_lsan/lib", "-Wl,-rpath,/libcxx_lsan/lib", "-lc++", "-lc++abi", "-fsanitize=leak"] \ - --build=missing + -s build_type=Release \ + -c tools.system.package_manager:mode=install \ + -c tools.cmake.cmaketoolchain:generator=Ninja \ + -c tools.build:cxxflags=["-g", "-fno-omit-frame-pointer", "-nostdinc++", "-isystem", "/libcxx_lsan/include", "-fsanitize=leak"] \ + -c tools.build:sharedlinkflags=["-L/libcxx_lsan/lib", "-Wl,-rpath,/libcxx_lsan/lib", "-lc++", "-lc++abi", "-fsanitize=leak"] \ + -c tools.build:exelinkflags=["-L/libcxx_lsan/lib", "-Wl,-rpath,/libcxx_lsan/lib", "-lc++", "-lc++abi", "-fsanitize=leak"] \ + -c tools.info.package_id:confs=["tools.build:cxxflags","sharedlinkflags","tools.build:exelinkflags"] \ + --build=missing -- 2.45.3 From c18b445b84e368e951e8ac15250d99cdec604b72 Mon Sep 17 00:00:00 2001 From: light7734 Date: Fri, 18 Jul 2025 21:56:41 +0330 Subject: [PATCH 08/19] ci: update lsan dockerfile --- tools/ci/images/leak_sanitizer/Dockerfile | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/tools/ci/images/leak_sanitizer/Dockerfile b/tools/ci/images/leak_sanitizer/Dockerfile index d496e94..d9120ea 100644 --- a/tools/ci/images/leak_sanitizer/Dockerfile +++ b/tools/ci/images/leak_sanitizer/Dockerfile @@ -52,13 +52,14 @@ RUN cd llvm-project/ \ && rm -rf /usr/src/llvm-project/ RUN git clone 'https://git.light7734.com/light7734/light.git' --recursive \ - && cd light \ - && conan install . \ - -s build_type=Release \ - -c tools.system.package_manager:mode=install \ - -c tools.cmake.cmaketoolchain:generator=Ninja \ - -c tools.build:cxxflags=["-g", "-fno-omit-frame-pointer", "-nostdinc++", "-isystem", "/libcxx_lsan/include", "-fsanitize=leak"] \ - -c tools.build:sharedlinkflags=["-L/libcxx_lsan/lib", "-Wl,-rpath,/libcxx_lsan/lib", "-lc++", "-lc++abi", "-fsanitize=leak"] \ - -c tools.build:exelinkflags=["-L/libcxx_lsan/lib", "-Wl,-rpath,/libcxx_lsan/lib", "-lc++", "-lc++abi", "-fsanitize=leak"] \ - -c tools.info.package_id:confs=["tools.build:cxxflags","sharedlinkflags","tools.build:exelinkflags"] \ - --build=missing + && cd light \ + && conan install . \ + -s build_type=Release \ + -c tools.system.package_manager:mode=install \ + -c tools.cmake.cmaketoolchain:generator=Ninja \ + -c tools.build:cxxflags='["-g", "-fno-omit-frame-pointer", "-nostdinc++", "-isystem", "/libcxx_lsan/include", "-fsanitize=leak"]' \ + -c tools.build:sharedlinkflags='["-L/libcxx_lsan/lib", "-Wl,-rpath,/libcxx_lsan/lib", "-lc++", "-lc++abi", "-fsanitize=leak"]' \ + -c tools.build:exelinkflags='["-L/libcxx_lsan/lib", "-Wl,-rpath,/libcxx_lsan/lib", "-lc++", "-lc++abi", "-fsanitize=leak"]' \ + -c tools.info.package_id:confs='["tools.build:cxxflags","tools.build:sharedlinkflags","tools.build:exelinkflags"]' \ + --build=missing + -- 2.45.3 From ba0b6ceec46d44c7dd2e8d40bccc1a7e94f6e5b3 Mon Sep 17 00:00:00 2001 From: light7734 Date: Fri, 18 Jul 2025 22:02:07 +0330 Subject: [PATCH 09/19] ci: update lsan dockerfile --- tools/ci/images/leak_sanitizer/Dockerfile | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/tools/ci/images/leak_sanitizer/Dockerfile b/tools/ci/images/leak_sanitizer/Dockerfile index d9120ea..0c359e6 100644 --- a/tools/ci/images/leak_sanitizer/Dockerfile +++ b/tools/ci/images/leak_sanitizer/Dockerfile @@ -54,12 +54,14 @@ RUN cd llvm-project/ \ RUN git clone 'https://git.light7734.com/light7734/light.git' --recursive \ && cd light \ && conan install . \ - -s build_type=Release \ - -c tools.system.package_manager:mode=install \ - -c tools.cmake.cmaketoolchain:generator=Ninja \ - -c tools.build:cxxflags='["-g", "-fno-omit-frame-pointer", "-nostdinc++", "-isystem", "/libcxx_lsan/include", "-fsanitize=leak"]' \ - -c tools.build:sharedlinkflags='["-L/libcxx_lsan/lib", "-Wl,-rpath,/libcxx_lsan/lib", "-lc++", "-lc++abi", "-fsanitize=leak"]' \ - -c tools.build:exelinkflags='["-L/libcxx_lsan/lib", "-Wl,-rpath,/libcxx_lsan/lib", "-lc++", "-lc++abi", "-fsanitize=leak"]' \ - -c tools.info.package_id:confs='["tools.build:cxxflags","tools.build:sharedlinkflags","tools.build:exelinkflags"]' \ - --build=missing - + -s build_type=Release \ + -s compiler=clang \ + -s compiler.version=20 \ + -s compiler.libcxx=libc++ \ + -c tools.system.package_manager:mode=install \ + -c tools.cmake.cmaketoolchain:generator=Ninja \ + -c tools.build:cxxflags='["-g", "-fno-omit-frame-pointer", "-nostdinc++", "-isystem", "/libcxx_lsan/include", "-fsanitize=leak"]' \ + -c tools.build:sharedlinkflags='["-L/libcxx_lsan/lib", "-Wl,-rpath,/libcxx_lsan/lib", "-lc++", "-lc++abi", "-fsanitize=leak"]' \ + -c tools.build:exelinkflags='["-L/libcxx_lsan/lib", "-Wl,-rpath,/libcxx_lsan/lib", "-lc++", "-lc++abi", "-fsanitize=leak"]' \ + -c tools.info.package_id:confs='["tools.build:cxxflags","tools.build:sharedlinkflags","tools.build:exelinkflags"]' \ + --build=missing -- 2.45.3 From a353b81aa15a0debfd9631ea84181405ed53c203 Mon Sep 17 00:00:00 2001 From: light7734 Date: Fri, 18 Jul 2025 22:07:07 +0330 Subject: [PATCH 10/19] ci: update lsan dockerfile --- tools/ci/images/leak_sanitizer/Dockerfile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tools/ci/images/leak_sanitizer/Dockerfile b/tools/ci/images/leak_sanitizer/Dockerfile index 0c359e6..49437f9 100644 --- a/tools/ci/images/leak_sanitizer/Dockerfile +++ b/tools/ci/images/leak_sanitizer/Dockerfile @@ -64,4 +64,6 @@ RUN git clone 'https://git.light7734.com/light7734/light.git' --recursive \ -c tools.build:sharedlinkflags='["-L/libcxx_lsan/lib", "-Wl,-rpath,/libcxx_lsan/lib", "-lc++", "-lc++abi", "-fsanitize=leak"]' \ -c tools.build:exelinkflags='["-L/libcxx_lsan/lib", "-Wl,-rpath,/libcxx_lsan/lib", "-lc++", "-lc++abi", "-fsanitize=leak"]' \ -c tools.info.package_id:confs='["tools.build:cxxflags","tools.build:sharedlinkflags","tools.build:exelinkflags"]' \ - --build=missing + -c tools.build:compiler_executables='{"c": "clang", "cpp": "clang++"}' \ + --build=missing + -- 2.45.3 From 8aa0bff07ddc4608fd0c605f59871c5a3aeb4b7b Mon Sep 17 00:00:00 2001 From: light7734 Date: Fri, 18 Jul 2025 22:16:48 +0330 Subject: [PATCH 11/19] ci: update lsan dockerfile --- tools/ci/images/leak_sanitizer/Dockerfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tools/ci/images/leak_sanitizer/Dockerfile b/tools/ci/images/leak_sanitizer/Dockerfile index 49437f9..79e78f1 100644 --- a/tools/ci/images/leak_sanitizer/Dockerfile +++ b/tools/ci/images/leak_sanitizer/Dockerfile @@ -47,8 +47,7 @@ RUN cd llvm-project/ \ -DLLVM_USE_SANITIZER=Leaks \ ../runtimes &&\ ninja cxx cxxabi && \ - cd ../ \ - && DESTDIR="/libcxx_lsan" ninja -C build install-cxx install-cxxabi\ + && ninja -C build install-cxx install-cxxabi\ && rm -rf /usr/src/llvm-project/ RUN git clone 'https://git.light7734.com/light7734/light.git' --recursive \ -- 2.45.3 From db79616ecc16091963662ec79eef5e5e20086846 Mon Sep 17 00:00:00 2001 From: light7734 Date: Fri, 18 Jul 2025 22:20:33 +0330 Subject: [PATCH 12/19] ci: optimize leak sanitizer docker image for space --- tools/ci/images/leak_sanitizer/Dockerfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/ci/images/leak_sanitizer/Dockerfile b/tools/ci/images/leak_sanitizer/Dockerfile index 79e78f1..bb09cad 100644 --- a/tools/ci/images/leak_sanitizer/Dockerfile +++ b/tools/ci/images/leak_sanitizer/Dockerfile @@ -28,8 +28,8 @@ RUN clang --version \ && ninja --version \ && mold --version -RUN git clone --depth=1 https://github.com/llvm/llvm-project.git -b llvmorg-20.1.8 -RUN cd llvm-project/ \ +RUN git clone --depth=1 https://github.com/llvm/llvm-project.git -b llvmorg-20.1.8 \ + && cd llvm-project/ \ && rm -rf build/ \ && mkdir build/ \ && cd build/ \ @@ -45,7 +45,7 @@ RUN cd llvm-project/ \ -DLIBCXX_INSTALL_MODULES=ON \ -DLIBCXXABI_USE_LLVM_UNWINDER=OFF \ -DLLVM_USE_SANITIZER=Leaks \ - ../runtimes &&\ + ../runtimes && \ ninja cxx cxxabi && \ && ninja -C build install-cxx install-cxxabi\ && rm -rf /usr/src/llvm-project/ -- 2.45.3 From e9e23061df39a58693725776f162a61c79f3b88c Mon Sep 17 00:00:00 2001 From: light7734 Date: Fri, 18 Jul 2025 22:23:50 +0330 Subject: [PATCH 13/19] ci: fix dockerfile bugs --- tools/ci/images/leak_sanitizer/Dockerfile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tools/ci/images/leak_sanitizer/Dockerfile b/tools/ci/images/leak_sanitizer/Dockerfile index bb09cad..8da04f3 100644 --- a/tools/ci/images/leak_sanitizer/Dockerfile +++ b/tools/ci/images/leak_sanitizer/Dockerfile @@ -45,10 +45,10 @@ RUN git clone --depth=1 https://github.com/llvm/llvm-project.git -b llvmorg-20.1 -DLIBCXX_INSTALL_MODULES=ON \ -DLIBCXXABI_USE_LLVM_UNWINDER=OFF \ -DLLVM_USE_SANITIZER=Leaks \ - ../runtimes && \ - ninja cxx cxxabi && \ - && ninja -C build install-cxx install-cxxabi\ - && rm -rf /usr/src/llvm-project/ + ../runtimes \ + && ninja cxx cxxabi \ + && ninja -C . install-cxx install-cxxabi \ + && rm -r /llvm-project/ RUN git clone 'https://git.light7734.com/light7734/light.git' --recursive \ && cd light \ -- 2.45.3 From 30bd0fc27cd81073ff6d4af1b3e101c6cc576e4a Mon Sep 17 00:00:00 2001 From: light7734 Date: Fri, 18 Jul 2025 22:37:03 +0330 Subject: [PATCH 14/19] ci: update lsan dockerfile --- tools/ci/images/leak_sanitizer/Dockerfile | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/tools/ci/images/leak_sanitizer/Dockerfile b/tools/ci/images/leak_sanitizer/Dockerfile index 8da04f3..b49404d 100644 --- a/tools/ci/images/leak_sanitizer/Dockerfile +++ b/tools/ci/images/leak_sanitizer/Dockerfile @@ -30,7 +30,6 @@ RUN clang --version \ RUN git clone --depth=1 https://github.com/llvm/llvm-project.git -b llvmorg-20.1.8 \ && cd llvm-project/ \ - && rm -rf build/ \ && mkdir build/ \ && cd build/ \ && cmake \ @@ -59,10 +58,9 @@ RUN git clone 'https://git.light7734.com/light7734/light.git' --recursive \ -s compiler.libcxx=libc++ \ -c tools.system.package_manager:mode=install \ -c tools.cmake.cmaketoolchain:generator=Ninja \ - -c tools.build:cxxflags='["-g", "-fno-omit-frame-pointer", "-nostdinc++", "-isystem", "/libcxx_lsan/include", "-fsanitize=leak"]' \ + -c tools.build:cxxflags='["-g", "-fno-omit-frame-pointer", "-isystem", "/libcxx_lsan/include", "-fsanitize=leak"]' \ -c tools.build:sharedlinkflags='["-L/libcxx_lsan/lib", "-Wl,-rpath,/libcxx_lsan/lib", "-lc++", "-lc++abi", "-fsanitize=leak"]' \ -c tools.build:exelinkflags='["-L/libcxx_lsan/lib", "-Wl,-rpath,/libcxx_lsan/lib", "-lc++", "-lc++abi", "-fsanitize=leak"]' \ -c tools.info.package_id:confs='["tools.build:cxxflags","tools.build:sharedlinkflags","tools.build:exelinkflags"]' \ -c tools.build:compiler_executables='{"c": "clang", "cpp": "clang++"}' \ - --build=missing - + --build=missing -- 2.45.3 From accc8e3038abeea24414fa37189ac5c879bb59aa Mon Sep 17 00:00:00 2001 From: light7734 Date: Fri, 18 Jul 2025 22:46:48 +0330 Subject: [PATCH 15/19] ci: update lsan dockerfile --- tools/ci/images/leak_sanitizer/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/ci/images/leak_sanitizer/Dockerfile b/tools/ci/images/leak_sanitizer/Dockerfile index b49404d..781888a 100644 --- a/tools/ci/images/leak_sanitizer/Dockerfile +++ b/tools/ci/images/leak_sanitizer/Dockerfile @@ -59,6 +59,7 @@ RUN git clone 'https://git.light7734.com/light7734/light.git' --recursive \ -c tools.system.package_manager:mode=install \ -c tools.cmake.cmaketoolchain:generator=Ninja \ -c tools.build:cxxflags='["-g", "-fno-omit-frame-pointer", "-isystem", "/libcxx_lsan/include", "-fsanitize=leak"]' \ + -c tools.build:cflags='["-g", "-fno-omit-frame-pointer", "-isystem", "/libcxx_lsan/include", "-fsanitize=leak"]' \ -c tools.build:sharedlinkflags='["-L/libcxx_lsan/lib", "-Wl,-rpath,/libcxx_lsan/lib", "-lc++", "-lc++abi", "-fsanitize=leak"]' \ -c tools.build:exelinkflags='["-L/libcxx_lsan/lib", "-Wl,-rpath,/libcxx_lsan/lib", "-lc++", "-lc++abi", "-fsanitize=leak"]' \ -c tools.info.package_id:confs='["tools.build:cxxflags","tools.build:sharedlinkflags","tools.build:exelinkflags"]' \ -- 2.45.3 From 63eea1e844baffb381c709d0253a2e9c9124181f Mon Sep 17 00:00:00 2001 From: light7734 Date: Fri, 18 Jul 2025 23:29:39 +0330 Subject: [PATCH 16/19] w add BASH entrypoint to debug lsan dockerfile --- tools/ci/images/leak_sanitizer/Dockerfile | 34 ++++++++++++----------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/tools/ci/images/leak_sanitizer/Dockerfile b/tools/ci/images/leak_sanitizer/Dockerfile index 781888a..c85f961 100644 --- a/tools/ci/images/leak_sanitizer/Dockerfile +++ b/tools/ci/images/leak_sanitizer/Dockerfile @@ -49,19 +49,21 @@ RUN git clone --depth=1 https://github.com/llvm/llvm-project.git -b llvmorg-20.1 && ninja -C . install-cxx install-cxxabi \ && rm -r /llvm-project/ -RUN git clone 'https://git.light7734.com/light7734/light.git' --recursive \ - && cd light \ - && conan install . \ - -s build_type=Release \ - -s compiler=clang \ - -s compiler.version=20 \ - -s compiler.libcxx=libc++ \ - -c tools.system.package_manager:mode=install \ - -c tools.cmake.cmaketoolchain:generator=Ninja \ - -c tools.build:cxxflags='["-g", "-fno-omit-frame-pointer", "-isystem", "/libcxx_lsan/include", "-fsanitize=leak"]' \ - -c tools.build:cflags='["-g", "-fno-omit-frame-pointer", "-isystem", "/libcxx_lsan/include", "-fsanitize=leak"]' \ - -c tools.build:sharedlinkflags='["-L/libcxx_lsan/lib", "-Wl,-rpath,/libcxx_lsan/lib", "-lc++", "-lc++abi", "-fsanitize=leak"]' \ - -c tools.build:exelinkflags='["-L/libcxx_lsan/lib", "-Wl,-rpath,/libcxx_lsan/lib", "-lc++", "-lc++abi", "-fsanitize=leak"]' \ - -c tools.info.package_id:confs='["tools.build:cxxflags","tools.build:sharedlinkflags","tools.build:exelinkflags"]' \ - -c tools.build:compiler_executables='{"c": "clang", "cpp": "clang++"}' \ - --build=missing +# RUN git clone 'https://git.light7734.com/light7734/light.git' --recursive \ +# && cd light \ +# && conan install . \ +# -s build_type=Release \ +# -s compiler=clang \ +# -s compiler.version=20 \ +# -s compiler.libcxx=libc++ \ +# -c tools.system.package_manager:mode=install \ +# -c tools.cmake.cmaketoolchain:generator=Ninja \ +# -c tools.build:cxxflags='["-g", "-fno-omit-frame-pointer", "-isystem", "/libcxx_lsan/include", "-fsanitize=leak"]' \ +# -c tools.build:cflags='["-g", "-fno-omit-frame-pointer", "-isystem", "/libcxx_lsan/include", "-fsanitize=leak"]' \ +# -c tools.build:sharedlinkflags='["-L/libcxx_lsan/lib", "-Wl,-rpath,/libcxx_lsan/lib", "-lc++", "-lc++abi", "-fsanitize=leak"]' \ +# -c tools.build:exelinkflags='["-L/libcxx_lsan/lib", "-Wl,-rpath,/libcxx_lsan/lib", "-lc++", "-lc++abi", "-fsanitize=leak"]' \ +# -c tools.info.package_id:confs='["tools.build:cxxflags","tools.build:sharedlinkflags","tools.build:exelinkflags"]' \ +# -c tools.build:compiler_executables='{"c": "clang", "cpp": "clang++"}' \ +# --build=missing + +ENTRYPOINT ["bash"] -- 2.45.3 From 21f80073bb083b56fa282baf7af89ff0cd85b860 Mon Sep 17 00:00:00 2001 From: light7734 Date: Fri, 18 Jul 2025 23:43:18 +0330 Subject: [PATCH 17/19] ci: update lsan dockerfile --- tools/ci/images/leak_sanitizer/Dockerfile | 34 +++++++++++------------ 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/tools/ci/images/leak_sanitizer/Dockerfile b/tools/ci/images/leak_sanitizer/Dockerfile index c85f961..bf5e456 100644 --- a/tools/ci/images/leak_sanitizer/Dockerfile +++ b/tools/ci/images/leak_sanitizer/Dockerfile @@ -49,21 +49,19 @@ RUN git clone --depth=1 https://github.com/llvm/llvm-project.git -b llvmorg-20.1 && ninja -C . install-cxx install-cxxabi \ && rm -r /llvm-project/ -# RUN git clone 'https://git.light7734.com/light7734/light.git' --recursive \ -# && cd light \ -# && conan install . \ -# -s build_type=Release \ -# -s compiler=clang \ -# -s compiler.version=20 \ -# -s compiler.libcxx=libc++ \ -# -c tools.system.package_manager:mode=install \ -# -c tools.cmake.cmaketoolchain:generator=Ninja \ -# -c tools.build:cxxflags='["-g", "-fno-omit-frame-pointer", "-isystem", "/libcxx_lsan/include", "-fsanitize=leak"]' \ -# -c tools.build:cflags='["-g", "-fno-omit-frame-pointer", "-isystem", "/libcxx_lsan/include", "-fsanitize=leak"]' \ -# -c tools.build:sharedlinkflags='["-L/libcxx_lsan/lib", "-Wl,-rpath,/libcxx_lsan/lib", "-lc++", "-lc++abi", "-fsanitize=leak"]' \ -# -c tools.build:exelinkflags='["-L/libcxx_lsan/lib", "-Wl,-rpath,/libcxx_lsan/lib", "-lc++", "-lc++abi", "-fsanitize=leak"]' \ -# -c tools.info.package_id:confs='["tools.build:cxxflags","tools.build:sharedlinkflags","tools.build:exelinkflags"]' \ -# -c tools.build:compiler_executables='{"c": "clang", "cpp": "clang++"}' \ -# --build=missing - -ENTRYPOINT ["bash"] +RUN git clone 'https://git.light7734.com/light7734/light.git' --recursive \ + && cd light \ + && conan install . \ + -s build_type=Release \ + -s compiler=clang \ + -s compiler.version=20 \ + -s compiler.libcxx=libc++ \ + -c tools.system.package_manager:mode=install \ + -c tools.cmake.cmaketoolchain:generator=Ninja \ + -c tools.build:cxxflags='["-g", "-fno-omit-frame-pointer", "-nostdinc++", "-isystem", "/libcxx_lsan/include/c++/v1/", "-fsanitize=leak"]' \ + -c tools.build:sharedlinkflags='["-L/libcxx_lsan/lib", "-Wl,-rpath,/libcxx_lsan/lib", "-lc++", "-lc++abi", "-fsanitize=leak"]' \ + -c tools.build:exelinkflags='["-L/libcxx_lsan/lib", "-Wl,-rpath,/libcxx_lsan/lib", "-lc++", "-lc++abi", "-fsanitize=leak"]' \ + -c tools.info.package_id:confs='["tools.build:cxxflags","tools.build:sharedlinkflags","tools.build:exelinkflags"]' \ + -c tools.build:compiler_executables='{"c": "clang", "cpp": "clang++"}' \ + --build=missing + -- 2.45.3 From d86b6b288ff4b474aad10cb7f1d84c4d5647e8af Mon Sep 17 00:00:00 2001 From: light7734 Date: Fri, 18 Jul 2025 23:46:22 +0330 Subject: [PATCH 18/19] ci: add lsan ci step to .drone.yml --- .drone.yml | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/.drone.yml b/.drone.yml index 3c533b3..596c780 100644 --- a/.drone.yml +++ b/.drone.yml @@ -63,6 +63,47 @@ steps: find ./build -type f -name "*_tests" -executable | xargs -I {} bash -c 'valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes --verbose --error-exitcode=255 {}' || exit 1 +--- +kind: pipeline +type: docker +name: leak sanitizer +clone: + recursive: true + submodule_update_remote: true + +trigger: + branch: + - main + +steps: +- name: leak sanitizer + image: leak_sanitizer:latest + pull: if-not-exists + commands: + - | + set -e + + git submodule update --init --recursive + conan install . \ + -s build_type=Release \ + -s compiler=clang \ + -s compiler.version=20 \ + -s compiler.libcxx=libc++ \ + -c tools.system.package_manager:mode=install \ + -c tools.cmake.cmaketoolchain:generator=Ninja \ + -c tools.build:cxxflags='["-g", "-fno-omit-frame-pointer", "-nostdinc++", "-isystem", "/libcxx_lsan/include/c++/v1/", "-fsanitize=leak"]' \ + -c tools.build:sharedlinkflags='["-L/libcxx_lsan/lib", "-Wl,-rpath,/libcxx_lsan/lib", "-lc++", "-lc++abi", "-fsanitize=leak"]' \ + -c tools.build:exelinkflags='["-L/libcxx_lsan/lib", "-Wl,-rpath,/libcxx_lsan/lib", "-lc++", "-lc++abi", "-fsanitize=leak"]' \ + -c tools.info.package_id:confs='["tools.build:cxxflags","tools.build:sharedlinkflags","tools.build:exelinkflags"]' \ + -c tools.build:compiler_executables='{"c": "clang", "cpp": "clang++"}' \ + -o enable_static_analysis=False \ + -o enable_tests=True \ + --build=missing + for test in $(find ./build -type f -name '*_tests' -executable); do + echo "Running $test" + "$test" + done + --- kind: pipeline type: docker -- 2.45.3 From 0d3d68a94a7c47d0345c4fc7952a4a92e12f9132 Mon Sep 17 00:00:00 2001 From: light7734 Date: Fri, 18 Jul 2025 23:49:01 +0330 Subject: [PATCH 19/19] ci: fix lsan ci check not conan building --- .drone.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.yml b/.drone.yml index 596c780..3929ed9 100644 --- a/.drone.yml +++ b/.drone.yml @@ -84,7 +84,7 @@ steps: set -e git submodule update --init --recursive - conan install . \ + conan build . \ -s build_type=Release \ -s compiler=clang \ -s compiler.version=20 \ -- 2.45.3