#1096481 criterion: ftbfs with GCC-15

Package:
src:criterion
Source:
src:criterion
Submitter:
Matthias Klose
Date:
2026-10-17 04:51:02 UTC
Severity:
normal
Tags:
#1096481#5
Date:
2025-02-17 17:08:36 UTC
From:
To:
[This bug is NOT targeted to the upcoming trixie release]

Please keep this issue open in the bug tracker for the package it
was filed for.  If a fix in another package is required, please
file a bug for the other package (or clone), and add a block in this
package. Please keep the issue open until the package can be built in
a follow-up test rebuild.

The package fails to build in a test rebuild on at least amd64 with
gcc-15/g++-15, but succeeds to build with gcc-14/g++-14. The
severity of this report will be raised before the forky release.

The full build log can be found at:
http://qa-logs.debian.net/2025/02/16/amd64exp/criterion_2.4.1-2_unstable_gccexp.log.gz
The last lines of the build log are at the end of this report.

To build with GCC 15, either set CC=gcc-15 CXX=g++-15 explicitly,
or install the gcc, g++, gfortran, ... packages from experimental.

  apt-get -t=experimental install g++

GCC 15 now defaults to the C23/C++23 standards, exposing many FTBFS.
Other Common build failures are new warnings resulting in build failures
with -Werror turned on, or new/dropped symbols in Debian symbols files.
For other C/C++ related build failures see the porting guide at
http://gcc.gnu.org/gcc-15/porting_to.html

[...]
../include/criterion/alloc.h:39:1: note: ‘SIZE_MAX’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
   38 | #include "internal/common.h"
  +++ |+#include <cstdint>
   39 |
../include/criterion/alloc.h: In function ‘T* criterion::new_arr(std::size_t)’:
../include/criterion/alloc.h:175:16: error: ‘SIZE_MAX’ was not declared in this scope [-Wtemplate-body]
  175 |     if (len > (SIZE_MAX - sizeof (size_t)) / sizeof (T)) {
      |                ^~~~~~~~
../include/criterion/alloc.h:175:16: note: ‘SIZE_MAX’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
[72/138] c++ -Isamples/report.cc.bin.p -Isamples -I../samples -Iinclude -I../include -fdiagnostics-color=always -D_GLIBCXX_ASSERTIONS=1 -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=c++11 -Wno-unused-parameter -Wno-unused-value -fvisibility=hidden -fexceptions -DCRITERION_BUILDING_DLL=1 -DPB_ENABLE_MALLOC=1 -DPB_NO_PACKED_STRUCTS=1 -D_GNU_SOURCE -g -O2 -ffile-prefix-map=/build/reproducible-path/criterion-2.4.1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -MD -MQ samples/report.cc.bin.p/report.cc.o -MF samples/report.cc.bin.p/report.cc.o.d -o samples/report.cc.bin.p/report.cc.o -c ../samples/report.cc
FAILED: samples/report.cc.bin.p/report.cc.o
c++ -Isamples/report.cc.bin.p -Isamples -I../samples -Iinclude -I../include -fdiagnostics-color=always -D_GLIBCXX_ASSERTIONS=1 -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=c++11 -Wno-unused-parameter -Wno-unused-value -fvisibility=hidden -fexceptions -DCRITERION_BUILDING_DLL=1 -DPB_ENABLE_MALLOC=1 -DPB_NO_PACKED_STRUCTS=1 -D_GNU_SOURCE -g -O2 -ffile-prefix-map=/build/reproducible-path/criterion-2.4.1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -MD -MQ samples/report.cc.bin.p/report.cc.o -MF samples/report.cc.bin.p/report.cc.o.d -o samples/report.cc.bin.p/report.cc.o -c ../samples/report.cc
In file included from ../include/criterion/types.h:31,
                 from ../include/criterion/criterion.h:31,
                 from ../samples/report.cc:2:
../include/criterion/alloc.h: In function ‘typename std::enable_if<std::is_fundamental<_Tp>::value>::type* criterion::new_arr(std::size_t)’:
../include/criterion/alloc.h:146:16: error: ‘SIZE_MAX’ was not declared in this scope [-Wtemplate-body]
  146 |     if (len > (SIZE_MAX - sizeof (size_t)) / sizeof (T)) {
      |                ^~~~~~~~
../include/criterion/alloc.h:39:1: note: ‘SIZE_MAX’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
   38 | #include "internal/common.h"
  +++ |+#include <cstdint>
   39 |
../include/criterion/alloc.h: In function ‘T* criterion::new_arr(std::size_t)’:
../include/criterion/alloc.h:175:16: error: ‘SIZE_MAX’ was not declared in this scope [-Wtemplate-body]
  175 |     if (len > (SIZE_MAX - sizeof (size_t)) / sizeof (T)) {
      |                ^~~~~~~~
../include/criterion/alloc.h:175:16: note: ‘SIZE_MAX’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
[73/138] c++ -Isamples/redirect.cc.bin.p -Isamples -I../samples -Iinclude -I../include -fdiagnostics-color=always -D_GLIBCXX_ASSERTIONS=1 -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=c++11 -Wno-unused-parameter -Wno-unused-value -fvisibility=hidden -fexceptions -DCRITERION_BUILDING_DLL=1 -DPB_ENABLE_MALLOC=1 -DPB_NO_PACKED_STRUCTS=1 -D_GNU_SOURCE -g -O2 -ffile-prefix-map=/build/reproducible-path/criterion-2.4.1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -MD -MQ samples/redirect.cc.bin.p/redirect.cc.o -MF samples/redirect.cc.bin.p/redirect.cc.o.d -o samples/redirect.cc.bin.p/redirect.cc.o -c ../samples/redirect.cc
FAILED: samples/redirect.cc.bin.p/redirect.cc.o
c++ -Isamples/redirect.cc.bin.p -Isamples -I../samples -Iinclude -I../include -fdiagnostics-color=always -D_GLIBCXX_ASSERTIONS=1 -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=c++11 -Wno-unused-parameter -Wno-unused-value -fvisibility=hidden -fexceptions -DCRITERION_BUILDING_DLL=1 -DPB_ENABLE_MALLOC=1 -DPB_NO_PACKED_STRUCTS=1 -D_GNU_SOURCE -g -O2 -ffile-prefix-map=/build/reproducible-path/criterion-2.4.1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -MD -MQ samples/redirect.cc.bin.p/redirect.cc.o -MF samples/redirect.cc.bin.p/redirect.cc.o.d -o samples/redirect.cc.bin.p/redirect.cc.o -c ../samples/redirect.cc
In file included from ../include/criterion/types.h:31,
                 from ../include/criterion/criterion.h:31,
                 from ../samples/redirect.cc:1:
../include/criterion/alloc.h: In function ‘typename std::enable_if<std::is_fundamental<_Tp>::value>::type* criterion::new_arr(std::size_t)’:
../include/criterion/alloc.h:146:16: error: ‘SIZE_MAX’ was not declared in this scope [-Wtemplate-body]
  146 |     if (len > (SIZE_MAX - sizeof (size_t)) / sizeof (T)) {
      |                ^~~~~~~~
../include/criterion/alloc.h:39:1: note: ‘SIZE_MAX’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
   38 | #include "internal/common.h"
  +++ |+#include <cstdint>
   39 |
../include/criterion/alloc.h: In function ‘T* criterion::new_arr(std::size_t)’:
../include/criterion/alloc.h:175:16: error: ‘SIZE_MAX’ was not declared in this scope [-Wtemplate-body]
  175 |     if (len > (SIZE_MAX - sizeof (size_t)) / sizeof (T)) {
      |                ^~~~~~~~
../include/criterion/alloc.h:175:16: note: ‘SIZE_MAX’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
[74/138] c++ -Isamples/asserts.cc.bin.p -Isamples -I../samples -Iinclude -I../include -fdiagnostics-color=always -D_GLIBCXX_ASSERTIONS=1 -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=c++11 -Wno-unused-parameter -Wno-unused-value -fvisibility=hidden -fexceptions -DCRITERION_BUILDING_DLL=1 -DPB_ENABLE_MALLOC=1 -DPB_NO_PACKED_STRUCTS=1 -D_GNU_SOURCE -g -O2 -ffile-prefix-map=/build/reproducible-path/criterion-2.4.1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -MD -MQ samples/asserts.cc.bin.p/asserts.cc.o -MF samples/asserts.cc.bin.p/asserts.cc.o.d -o samples/asserts.cc.bin.p/asserts.cc.o -c ../samples/asserts.cc
FAILED: samples/asserts.cc.bin.p/asserts.cc.o
c++ -Isamples/asserts.cc.bin.p -Isamples -I../samples -Iinclude -I../include -fdiagnostics-color=always -D_GLIBCXX_ASSERTIONS=1 -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=c++11 -Wno-unused-parameter -Wno-unused-value -fvisibility=hidden -fexceptions -DCRITERION_BUILDING_DLL=1 -DPB_ENABLE_MALLOC=1 -DPB_NO_PACKED_STRUCTS=1 -D_GNU_SOURCE -g -O2 -ffile-prefix-map=/build/reproducible-path/criterion-2.4.1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -MD -MQ samples/asserts.cc.bin.p/asserts.cc.o -MF samples/asserts.cc.bin.p/asserts.cc.o.d -o samples/asserts.cc.bin.p/asserts.cc.o -c ../samples/asserts.cc
In file included from ../include/criterion/types.h:31,
                 from ../include/criterion/criterion.h:31,
                 from ../samples/asserts.cc:1:
../include/criterion/alloc.h: In function ‘typename std::enable_if<std::is_fundamental<_Tp>::value>::type* criterion::new_arr(std::size_t)’:
../include/criterion/alloc.h:146:16: error: ‘SIZE_MAX’ was not declared in this scope [-Wtemplate-body]
  146 |     if (len > (SIZE_MAX - sizeof (size_t)) / sizeof (T)) {
      |                ^~~~~~~~
../include/criterion/alloc.h:39:1: note: ‘SIZE_MAX’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
   38 | #include "internal/common.h"
  +++ |+#include <cstdint>
   39 |
../include/criterion/alloc.h: In function ‘T* criterion::new_arr(std::size_t)’:
../include/criterion/alloc.h:175:16: error: ‘SIZE_MAX’ was not declared in this scope [-Wtemplate-body]
  175 |     if (len > (SIZE_MAX - sizeof (size_t)) / sizeof (T)) {
      |                ^~~~~~~~
../include/criterion/alloc.h:175:16: note: ‘SIZE_MAX’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
ninja: build stopped: subcommand failed.
dh_auto_build: error: cd obj-x86_64-linux-gnu && LC_ALL=C.UTF-8 ninja -j8 -v returned exit code 1
make: *** [debian/rules:3: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2

#1096481#14
Date:
2025-10-10 00:52:12 UTC
From:
To:
tags 1096481 + patch fixed-upstream
user debian-release@lists.debian.org
usertag 1096481 + bsp-2025-10-brazil
forwarded 1096481 https://github.com/Snaipe/Criterion/issues/574
thanks

Hi!

This issue was fixed upstream [1]. I've opened an MR importing the
corresponding patch to fix it for Debian [2] until a new
(non-release-candidate) upstream version containing the fix is released.

[1] https://github.com/Snaipe/Criterion/pull/560
[2] https://salsa.debian.org/sasa/criterion/-/merge_requests/3

#1096481#23
Date:
2025-10-17 11:22:50 UTC
From:
To:
Hi,

Criterion v2.4.3 has been released, containing the mentioned fix:
https://github.com/Snaipe/Criterion/releases/tag/v2.4.3

Would it be possible to have this package reintroduced into Debian testing?

Best regards,
László Várady

#1096481#28
Date:
2026-10-12 04:20:25 UTC
From:
To:
Control: tags 1096481 + pending

Dear maintainer,

I've prepared an NMU for criterion (2.4.1-2.1)
and uploaded it to DELAYED/5. Please feel free to tell me if I should
cancel it.

#1096481#35
Date:
2026-10-17 04:49:13 UTC
From:
To:
We believe that the bug you reported is fixed in the latest version of
criterion, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 1096481@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Matheus Polkorny <polkorny@debian.org> (supplier of updated criterion package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)
Format: 1.8
Date: Mon, 12 Oct 2026 01:00:25 -0300
Source: criterion
Architecture: source
Version: 2.4.1-2.1
Distribution: unstable
Urgency: medium
Maintainer: SZALAY Attila <sasa@debian.org>
Changed-By: Matheus Polkorny <polkorny@debian.org>
Closes: 1096481
Changes:
 criterion (2.4.1-2.1) unstable; urgency=medium
 .
   * Non-maintainer upload.
 .
   [ Henrique F. Simoes ]
   * Fix FTBFS with GCC 15 (Closes: #1096481)
Checksums-Sha1:
 1bc9479eca3c0e9f84ba6b203c2bb3df574a445b 2193 criterion_2.4.1-2.1.dsc
 07004c943421511b9e06b8acccfdeda9d363f3f3 870842 criterion_2.4.1.orig.tar.gz
 cf1327c8daf35ef377e6fd5c5fcea574d663d596 12876 criterion_2.4.1-2.1.debian.tar.xz
 10052ea612b650a47bad4204338ef8d0ba80eb3e 7894 criterion_2.4.1-2.1_source.buildinfo
Checksums-Sha256:
 bafd4ea650a97200a36df04c0bac7f40e6dd3c2748cb389a324683c4c894b2b6 2193 criterion_2.4.1-2.1.dsc
 34eb5c92c2663e0c0a0b77f7c4c2f6d5600ee08a4e41833e06859b7af089c891 870842 criterion_2.4.1.orig.tar.gz
 26304423a10ead7586dd7d7d21a1a00dde06247a8692bcf8a6b6f41fc438354f 12876 criterion_2.4.1-2.1.debian.tar.xz
 a1508c4eb56fafeca5a0d5f680569423d4862f7a044f9c1ab62096a11343f19d 7894 criterion_2.4.1-2.1_source.buildinfo
Files:
 0ce090ad18635d46686691f15ac4677a 2193 devel optional criterion_2.4.1-2.1.dsc
 82b323898880531f26340cc2ab9ee8ee 870842 devel optional criterion_2.4.1.orig.tar.gz
 0f98715353116123e1c326f8b3167590 12876 devel optional criterion_2.4.1-2.1.debian.tar.xz
 3c1fda0c6787de8f46862e1a9fe139ee 7894 devel optional criterion_2.4.1-2.1_source.buildinfo
-----BEGIN PGP SIGNATURE-----

iQJIBAEBCgAyFiEEcRD/fHLtdypUR2KKShyoWjj77loFAmrMW88UHHBvbGtvcm55
QGRlYmlhbi5vcmcACgkQShyoWjj77lofTg/6AsxCgDu3y/XjomjnX/Ede/DWL0L7
QjPTTU6LCWaZpAw6/f3q7c7/oPPP5WK2hjUgf/P1y01Dyi+iCq/qPucDNDRm9snX
+dAbkN4xyssVu5WnuykEp1ErWm8PR7EmpjkJETFXCIv3T1yu+9Lr8W2efyFbvlny
lo6rw7Rgsg8q8mWjTdKn9ntqY16XrxbyxpT+YFWw3M9j+lkLh4mNKUaC7+XuLo0c
Fy/FDteQbgdtiK8eJj+h+6FUAnJCJO+i8X1c88MVqecT5xi4C3gdD2fiOH1c9sh3
oqGqsct6S+eUFn9/LKLbbXahrDfBQKw2h1Z1pj9I2z0HxQps8l2LhM7cv7b4ibW6
F7WyjQ2R258/Y5EFSKIzt5CmDMgCU0NDrK6zpT67QDkF9I2A6o+SPbDd6Ek3Jnzk
YaTO/JQJME7ZoqRNJjJpD7FaavPSq0iKHf/+epQdUxK0VhloW2yLIch3I68gb3eu
Ua3PHOJwqDF9bWDq/Xt+M2HrXzxk/duv+RzjgLn5beMs3dS8P6669MIDeZejdFMc
Lj2TZY0NXUpzjx44IIkyDj4H3wM56SX8U2scF5G9xweEuSW2uzZ82YPTDEqsAmX9
P5b2rfusTkONiWwqQI+tqFDzvMZP/1FwzUz1OvBRS9z0HZpIw/Io2fOY8DJkisty
EAxlAlW3Bz85bUQ=
=+cfk
-----END PGP SIGNATURE-----