From 69cd43fb5a2a88f795712bda3efda1fb5965b5b3 Mon Sep 17 00:00:00 2001 From: Jean-Louis Leroy Date: Sat, 22 Aug 2026 16:35:05 -0400 Subject: [PATCH 1/2] CI: restore the 32-bit GCC 12 C++17/20 Drone stage There were two GCC 12 stages, both misnamed: "C++11-14" ran CXXSTD 17,20 and "C++17-20" ran 2b. e520c1d corrected the first name, which made the two names identical; dd2c40d then resolved the clash by deleting one of the pair - the 17,20 stage - leaving the 2b stage wearing the 17,20 label. Net effect: GCC 12 at C++17/20 was no longer built for 32 bits anywhere. The GHA matrix covers gcc-12 at those standards, but 64-bit only, so nothing was testing this library's 32-bit codegen on GCC 12 at C++17/20. Restore the deleted stage and name the surviving one for the standard it actually runs. Bundling 17,20 in one stage matches the neighbouring GCC 11 stage (17,2a x 32/64), which is well inside the 60-minute Drone step limit that f886630 and 44d0d61 split the heavier stages to respect. Verified locally by evaluating .drone.jsonnet with jsonnet: 35 -> 36 pipelines, all names unique, and every stage whose name states a standard now matches its CXXSTD. Not exercised on Drone itself. Co-Authored-By: Claude Opus 5 --- .drone.jsonnet | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.drone.jsonnet b/.drone.jsonnet index 8acdabdd..2b7a9fee 100644 --- a/.drone.jsonnet +++ b/.drone.jsonnet @@ -144,6 +144,13 @@ local windows_pipeline(name, image, environment, arch = "amd64") = linux_pipeline( "Linux 22.04 GCC 12 32/64 C++17-20", "cppalliance/droneubuntu2204:1", + { TOOLSET: 'gcc', COMPILER: 'g++-12', CXXSTD: '17,20', ADDRMD: '32,64' }, + "g++-12-multilib", + ), + + linux_pipeline( + "Linux 22.04 GCC 12 32/64 C++2b", + "cppalliance/droneubuntu2204:1", { TOOLSET: 'gcc', COMPILER: 'g++-12', CXXSTD: '2b', ADDRMD: '32,64' }, "g++-12-multilib", ), From 725d5fde201c1b8c550a2ce43c5baa1d2b651240 Mon Sep 17 00:00:00 2001 From: Jean-Louis Leroy Date: Sat, 22 Aug 2026 20:59:52 -0400 Subject: [PATCH 2/2] CI: name the split Drone stages for the standard they run f886630 and 44d0d61 split the heavy sanitizer stages one C++ standard per stage, naming the new ones C++17 and C++20 but leaving the original of each trio unnamed - so "GCC 14 UBSAN C++17", "GCC 14 UBSAN C++20" and a bare "GCC 14 UBSAN" that is in fact the 2b run, and reads like the whole set. Four stages were in that shape. Names only; no environment, matrix or coverage change. This is the same ambiguity that let dd2c40d delete the wrong member of the GCC 12 pair. Verified with jsonnet: 36 pipelines before and after, all names unique, no bare name left inside a split group, and every stage name that states a standard matches its CXXSTD. Co-Authored-By: Claude Opus 5 --- .drone.jsonnet | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.drone.jsonnet b/.drone.jsonnet index 2b7a9fee..92bd008d 100644 --- a/.drone.jsonnet +++ b/.drone.jsonnet @@ -170,7 +170,7 @@ local windows_pipeline(name, image, environment, arch = "amd64") = ), linux_pipeline( - "Linux 24.04 GCC 13 32/64 UBSAN", + "Linux 24.04 GCC 13 32/64 UBSAN C++2b", "cppalliance/droneubuntu2404:1", { TOOLSET: 'gcc', COMPILER: 'g++-13', CXXSTD: '2b', ADDRMD: '32,64' } + ubsan, "g++-13-multilib", @@ -191,7 +191,7 @@ local windows_pipeline(name, image, environment, arch = "amd64") = ), linux_pipeline( - "Linux 24.04 GCC 13 32 ASAN", + "Linux 24.04 GCC 13 32 ASAN C++2b", "cppalliance/droneubuntu2404:1", { TOOLSET: 'gcc', COMPILER: 'g++-13', CXXSTD: '2b', ADDRMD: '32' } + asan, "g++-13-multilib", @@ -212,7 +212,7 @@ local windows_pipeline(name, image, environment, arch = "amd64") = ), linux_pipeline( - "Linux 24.04 GCC 14 UBSAN", + "Linux 24.04 GCC 14 UBSAN C++2b", "cppalliance/droneubuntu2404:1", { TOOLSET: 'gcc', COMPILER: 'g++-14', CXXSTD: '2b' } + ubsan, "g++-14-multilib", @@ -233,7 +233,7 @@ local windows_pipeline(name, image, environment, arch = "amd64") = ), linux_pipeline( - "Linux 24.04 GCC 14 ASAN", + "Linux 24.04 GCC 14 ASAN C++2b", "cppalliance/droneubuntu2404:1", { TOOLSET: 'gcc', COMPILER: 'g++-14', CXXSTD: '2b' } + asan, "g++-14-multilib",