From af578a4dd46e397d87779668b31621ea0fd6dece Mon Sep 17 00:00:00 2001 From: Schrodinger ZHU Yifan Date: Thu, 29 Jan 2026 09:52:39 -0500 Subject: [PATCH 1/3] ci: experiment with new mingw clang64 --- .github/workflows/mingw.yml | 54 +++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 .github/workflows/mingw.yml diff --git a/.github/workflows/mingw.yml b/.github/workflows/mingw.yml new file mode 100644 index 000000000..e2f0ac29b --- /dev/null +++ b/.github/workflows/mingw.yml @@ -0,0 +1,54 @@ +name: MinGW Clang64 Full Pipeline + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +jobs: + build: + strategy: + fail-fast: false + matrix: + profile: [RelWithDebInfo, Debug] + + name: MinGW Clang64 Build (${{ matrix.profile }}) + runs-on: windows-2025 + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + + - name: Setup MSYS2 + id: msys2 + uses: msys2/setup-msys2@v2 + with: + msystem: clang64 + update: true + install: >- + git + mingw-w64-clang-x86_64-toolchain + mingw-w64-clang-x86_64-cmake + mingw-w64-clang-x86_64-ninja + + - name: Configure + run: > + cmake -GNinja + -B${{github.workspace}}/build + -DCMAKE_BUILD_TYPE=${{ matrix.profile }} + -DCMAKE_CXX_COMPILER=clang++ + -DCMAKE_C_COMPILER=clang + + - name: Build + run: > + cmake + --build ${{github.workspace}}/build + --parallel + + - name: Test + run: > + cd ${{github.workspace}}/build + ctest + From 14f61ba76ea416e745329c6cbb39ab3c1412752b Mon Sep 17 00:00:00 2001 From: Schrodinger ZHU Yifan Date: Thu, 29 Jan 2026 10:02:39 -0500 Subject: [PATCH 2/3] fix --- .github/workflows/mingw.yml | 2 +- CMakeLists.txt | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/mingw.yml b/.github/workflows/mingw.yml index e2f0ac29b..a396722c1 100644 --- a/.github/workflows/mingw.yml +++ b/.github/workflows/mingw.yml @@ -48,7 +48,7 @@ jobs: --parallel - name: Test - run: > + run: | cd ${{github.workspace}}/build ctest diff --git a/CMakeLists.txt b/CMakeLists.txt index cad25ef65..4d834e463 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -381,9 +381,11 @@ function(add_warning_flags name) $<$:/Zi /W4 /WX /wd4127 /wd4324 /wd4201> $<$,$>>:-fno-rtti -Wall -Wextra -Werror -Wundef> $<$:-Wsign-conversion -Wconversion>) - target_link_options(${name} PRIVATE - $<$:-Wl,--no-undefined> - $<$:$<${ci_or_debug}:/DEBUG>>) + if (NOT MINGW) + target_link_options(${name} PRIVATE + $<$:-Wl,--no-undefined> + $<$:$<${ci_or_debug}:/DEBUG>>) + endif() endfunction() # To build with just the header library target define SNMALLOC_HEADER_ONLY_LIBRARY From 79543e94625cb427e187d598a00507365dd0ed2d Mon Sep 17 00:00:00 2001 From: Schrodinger ZHU Yifan Date: Fri, 30 Jan 2026 10:39:22 -0500 Subject: [PATCH 3/3] try fix --- CMakeLists.txt | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4d834e463..cc8bfdf10 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -381,11 +381,10 @@ function(add_warning_flags name) $<$:/Zi /W4 /WX /wd4127 /wd4324 /wd4201> $<$,$>>:-fno-rtti -Wall -Wextra -Werror -Wundef> $<$:-Wsign-conversion -Wconversion>) - if (NOT MINGW) - target_link_options(${name} PRIVATE - $<$:-Wl,--no-undefined> - $<$:$<${ci_or_debug}:/DEBUG>>) - endif() + + target_link_options(${name} PRIVATE + $<$:-Wl,--no-undefined> + $<$:$<${ci_or_debug}:LINKER:/DEBUG>>) endfunction() # To build with just the header library target define SNMALLOC_HEADER_ONLY_LIBRARY