#1133619 regina-normal: ftbfs with GCC-16

#1133619#5
Date:
2026-04-13 13:10:29 UTC
From:
To:
Hi,

regina-normal fails to build in a test rebuild on at least amd64 and arm64 with
gcc-16/g++-16, but builds properly with gcc-15/g++-15. The severity of this
report will be raised before the forky release.

The full build log can be found at:
https://people.debian.org/~ema/gcc-16-rebuilds/output-1/regina-normal_arm64.build.xz

The last lines of the build log are at the end of this report.

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

  apt-get -t=experimental install g++

Common build failures include unused (but set) variables, array subscripts
partly outside array bounds, and new/dropped symbols in Debian symbols files.
For other C/C++ related build failures see the porting guide at
http://gcc.gnu.org/gcc-16/porting_to.html

Please only close this issue after double-checking that the package can be
built correctly with GCC 16.

Please do not reassign this bug to another package. If a fix in another package
is required, then file a bug for the other package (or clone), and mark this
bug as blocked by the bug in the other package.

[...]


Writing data-tet.html for refentry(data-tet)
Writing data-tetrahedra.html for refentry(data-tetrahedra)
Writing data-text.html for refentry(data-text)
Writing data-threeball.html for refentry(data-threeball)
Writing data-triangle.html for refentry(data-triangle)
Success: 66930 records.
Writing data-triangles.html for refentry(data-triangles)
Writing data-turaevviro.html for refentry(data-turaevviro)
Success: 50817 records.
Writing removed.html for reference(removed)
Writing index.html for book
make[4]: Leaving directory '/build/reproducible-path/regina-normal-7.4.1/obj-aarch64-linux-gnu'
[ 16%] Built target regina-xml-html
Success: 162182 records.
make[4]: Leaving directory '/build/reproducible-path/regina-normal-7.4.1/obj-aarch64-linux-gnu'
[ 16%] Built target censusdata
/build/reproducible-path/regina-normal-7.4.1/engine/utilities/exception.h:114: warning: Member FailedPrecondition(const std::string &msg) (function) of class regina::FailedPrecondition is not documented.
/build/reproducible-path/regina-normal-7.4.1/engine/utilities/exception.h:115: warning: Member FailedPrecondition(const char *msg) (function) of class regina::FailedPrecondition is not documented.
/build/reproducible-path/regina-normal-7.4.1/engine/utilities/exception.h:116: warning: Member FailedPrecondition(const FailedPrecondition &) noexcept=default (function) of class regina::FailedPrecondition is not documented.
/build/reproducible-path/regina-normal-7.4.1/engine/utilities/exception.h:117: warning: Member operator=(const FailedPrecondition &) noexcept=default (function) of class regina::FailedPrecondition is not documented.
/build/reproducible-path/regina-normal-7.4.1/engine/utilities/exception.h:137: warning: Member InvalidArgument(const std::string &msg) (function) of class regina::InvalidArgument is not documented.
/build/reproducible-path/regina-normal-7.4.1/engine/utilities/exception.h:138: warning: Member InvalidArgument(const char *msg) (function) of class regina::InvalidArgument is not documented.
/build/reproducible-path/regina-normal-7.4.1/engine/utilities/exception.h:139: warning: Member InvalidArgument(const InvalidArgument &) noexcept=default (function) of class regina::InvalidArgument is not documented.
/build/reproducible-path/regina-normal-7.4.1/engine/utilities/exception.h:140: warning: Member operator=(const InvalidArgument &) noexcept=default (function) of class regina::InvalidArgument is not documented.
/build/reproducible-path/regina-normal-7.4.1/engine/utilities/exception.h:154: warning: Member InvalidInput(const std::string &msg) (function) of class regina::InvalidInput is not documented.
/build/reproducible-path/regina-normal-7.4.1/engine/utilities/exception.h:155: warning: Member InvalidInput(const char *msg) (function) of class regina::InvalidInput is not documented.
/build/reproducible-path/regina-normal-7.4.1/engine/utilities/exception.h:156: warning: Member InvalidInput(const InvalidInput &) noexcept=default (function) of class regina::InvalidInput is not documented.
/build/reproducible-path/regina-normal-7.4.1/engine/utilities/exception.h:157: warning: Member operator=(const InvalidInput &) noexcept=default (function) of class regina::InvalidInput is not documented.
/build/reproducible-path/regina-normal-7.4.1/engine/utilities/exception.h:170: warning: Member NotImplemented(const std::string &msg) (function) of class regina::NotImplemented is not documented.
/build/reproducible-path/regina-normal-7.4.1/engine/utilities/exception.h:171: warning: Member NotImplemented(const char *msg) (function) of class regina::NotImplemented is not documented.
/build/reproducible-path/regina-normal-7.4.1/engine/utilities/exception.h:172: warning: Member NotImplemented(const NotImplemented &) noexcept=default (function) of class regina::NotImplemented is not documented.
/build/reproducible-path/regina-normal-7.4.1/engine/utilities/exception.h:173: warning: Member operator=(const NotImplemented &) noexcept=default (function) of class regina::NotImplemented is not documented.
/build/reproducible-path/regina-normal-7.4.1/engine/utilities/exception.h:189: warning: Member FileError(const std::string &msg) (function) of class regina::FileError is not documented.
/build/reproducible-path/regina-normal-7.4.1/engine/utilities/exception.h:190: warning: Member FileError(const char *msg) (function) of class regina::FileError is not documented.
/build/reproducible-path/regina-normal-7.4.1/engine/utilities/exception.h:191: warning: Member FileError(const FileError &) noexcept=default (function) of class regina::FileError is not documented.
/build/reproducible-path/regina-normal-7.4.1/engine/utilities/exception.h:192: warning: Member operator=(const FileError &) noexcept=default (function) of class regina::FileError is not documented.
/build/reproducible-path/regina-normal-7.4.1/engine/utilities/exception.h:233: warning: Member UnsolvedCase(const std::string &msg) (function) of class regina::UnsolvedCase is not documented.
/build/reproducible-path/regina-normal-7.4.1/engine/utilities/exception.h:234: warning: Member UnsolvedCase(const char *msg) (function) of class regina::UnsolvedCase is not documented.
/build/reproducible-path/regina-normal-7.4.1/engine/utilities/exception.h:235: warning: Member UnsolvedCase(const UnsolvedCase &) noexcept=default (function) of class regina::UnsolvedCase is not documented.
/build/reproducible-path/regina-normal-7.4.1/engine/utilities/exception.h:236: warning: Member operator=(const UnsolvedCase &) noexcept=default (function) of class regina::UnsolvedCase is not documented.
/build/reproducible-path/regina-normal-7.4.1/engine/utilities/exception.h:251: warning: Member LockViolation(const std::string &msg) (function) of class regina::LockViolation is not documented.
/build/reproducible-path/regina-normal-7.4.1/engine/utilities/exception.h:252: warning: Member LockViolation(const char *msg) (function) of class regina::LockViolation is not documented.
/build/reproducible-path/regina-normal-7.4.1/engine/utilities/exception.h:253: warning: Member LockViolation(const LockViolation &) noexcept=default (function) of class regina::LockViolation is not documented.
/build/reproducible-path/regina-normal-7.4.1/engine/utilities/exception.h:254: warning: Member operator=(const LockViolation &) noexcept=default (function) of class regina::LockViolation is not documented.
/build/reproducible-path/regina-normal-7.4.1/engine/utilities/exception.h:278: warning: Member ImpossibleScenario(const std::string &msg) (function) of class regina::ImpossibleScenario is not documented.
/build/reproducible-path/regina-normal-7.4.1/engine/utilities/exception.h:281: warning: Member ImpossibleScenario(const char *msg) (function) of class regina::ImpossibleScenario is not documented.
/build/reproducible-path/regina-normal-7.4.1/engine/utilities/exception.h:284: warning: Member ImpossibleScenario(const ImpossibleScenario &) noexcept=default (function) of class regina::ImpossibleScenario is not documented.
/build/reproducible-path/regina-normal-7.4.1/engine/utilities/exception.h:285: warning: Member operator=(const ImpossibleScenario &) noexcept=default (function) of class regina::ImpossibleScenario is not documented.
/build/reproducible-path/regina-normal-7.4.1/engine/utilities/exception.h:307: warning: Member SnapPeaUnsolvedCase(const std::string &msg) (function) of class regina::SnapPeaUnsolvedCase is not documented.
/build/reproducible-path/regina-normal-7.4.1/engine/utilities/exception.h:308: warning: Member SnapPeaUnsolvedCase(const char *msg) (function) of class regina::SnapPeaUnsolvedCase is not documented.
/build/reproducible-path/regina-normal-7.4.1/engine/utilities/exception.h:309: warning: Member SnapPeaUnsolvedCase(const SnapPeaUnsolvedCase &) noexcept=default (function) of class regina::SnapPeaUnsolvedCase is not documented.
/build/reproducible-path/regina-normal-7.4.1/engine/utilities/exception.h:310: warning: Member operator=(const SnapPeaUnsolvedCase &) noexcept=default (function) of class regina::SnapPeaUnsolvedCase is not documented.
/build/reproducible-path/regina-normal-7.4.1/engine/utilities/memstream.h:105: warning: Member underflow() override (function) of class regina::mem_streambuf is not documented.
/build/reproducible-path/regina-normal-7.4.1/engine/utilities/memstream.h:106: warning: Member uflow() override (function) of class regina::mem_streambuf is not documented.
/build/reproducible-path/regina-normal-7.4.1/engine/utilities/memstream.h:107: warning: Member pbackfail(int_type ch) override (function) of class regina::mem_streambuf is not documented.
/build/reproducible-path/regina-normal-7.4.1/engine/utilities/memstream.h:108: warning: Member xsgetn(char *s, std::streamsize n) override (function) of class regina::mem_streambuf is not documented.
/build/reproducible-path/regina-normal-7.4.1/engine/utilities/memstream.h:109: warning: Member showmanyc() override (function) of class regina::mem_streambuf is not documented.
/build/reproducible-path/regina-normal-7.4.1/engine/utilities/memstream.h:111: warning: Member seekpos(pos_type pos, std::ios_base::openmode which) override (function) of class regina::mem_streambuf is not documented.
/build/reproducible-path/regina-normal-7.4.1/engine/utilities/memstream.h:112: warning: Member seekoff(off_type off, std::ios_base::seekdir dir, std::ios_base::openmode which) override (function) of class regina::mem_streambuf is not documented.
make[4]: Leaving directory '/build/reproducible-path/regina-normal-7.4.1/obj-aarch64-linux-gnu'
[ 16%] Built target docs
make[4]: Leaving directory '/build/reproducible-path/regina-normal-7.4.1/obj-aarch64-linux-gnu'
make[3]: *** [CMakeFiles/Makefile2:2558: engine/CMakeFiles/regina-engine.dir/all] Error 2
make[3]: Leaving directory '/build/reproducible-path/regina-normal-7.4.1/obj-aarch64-linux-gnu'
make[2]: *** [Makefile:169: all] Error 2
make[2]: Leaving directory '/build/reproducible-path/regina-normal-7.4.1/obj-aarch64-linux-gnu'
dh_auto_build: error: cd obj-aarch64-linux-gnu && make -j128 INSTALL="install --strip-program=true" VERBOSE=1 VERBOSE=1 returned exit code 2
make[1]: *** [debian/rules:25: override_dh_auto_build] Error 25
make[1]: Leaving directory '/build/reproducible-path/regina-normal-7.4.1'
make: *** [debian/rules:3: binary] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess failed with exit status 2

#1133619#10
Date:
2026-04-13 13:19:54 UTC
From:
To:
Thank you for picking this up.

I expect a new upstream release well before forky, and I will push the fixes upstream.

If anyone else is looking at this: the warnings at the end of the build are harmless doxygen warnings; the real issue is a missing #include <cstdint>, which can be fixed by the patch below. (I’m not near an environment where I can test the build myself right now, so it’s possible the same missing #include shows up in other source files also, which were not yet reached by the original failed build.)

- Ben.

diff --git a/engine/link/knotplot.cpp b/engine/link/knotplot.cpp
index 61cd0953c..314440863 100644
--- a/engine/link/knotplot.cpp
+++ b/engine/link/knotplot.cpp
@@ -32,6 +32,7 @@
 #include <bit> // for std::endian
 #include <cctype>
 #include <cstring>
+#include <cstdint>
 #include <fstream>
 #include <iostream>
 #include "link/spatiallink.h”