Hi, tcm 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/tcm_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. [...] • template argument deduction/substitution failed: • cannot convert ‘s.string::str’ (type ‘char*’) to type ‘signed char&’ lstring.c:662:16: 662 | i >> s.str; | ~~^~~ • candidate 24: ‘template<class _CharT, class _Traits, long unsigned int _Num> std::basic_istream<_CharT, _Traits>& std::operator>>(basic_istream<_CharT, _Traits>&, _CharT (&)[_Num])’ /usr/include/c++/16/istream:965:5: 965 | operator>>(basic_istream<_CharT, _Traits>& __in, _CharT (&__s)[_Num]) | ^~~~~~~~ • template argument deduction/substitution failed: • mismatched types ‘_CharT [_Num]’ and ‘char*’ lstring.c:662:16: 662 | i >> s.str; | ^~~ • candidate 25: ‘template<class _Traits, long unsigned int _Num> std::basic_istream<char, _Traits>& std::operator>>(basic_istream<char, _Traits>&, unsigned char (&)[_Num])’ /usr/include/c++/16/istream:974:5: 974 | operator>>(basic_istream<char, _Traits>& __in, unsigned char (&__s)[_Num]) | ^~~~~~~~ • template argument deduction/substitution failed: • mismatched types ‘unsigned char [_Num]’ and ‘char*’ lstring.c:662:16: 662 | i >> s.str; | ^~~ • candidate 26: ‘template<class _Traits, long unsigned int _Num> std::basic_istream<char, _Traits>& std::operator>>(basic_istream<char, _Traits>&, signed char (&)[_Num])’ /usr/include/c++/16/istream:979:5: 979 | operator>>(basic_istream<char, _Traits>& __in, signed char (&__s)[_Num]) | ^~~~~~~~ • template argument deduction/substitution failed: • mismatched types ‘signed char [_Num]’ and ‘char*’ lstring.c:662:16: 662 | i >> s.str; | ^~~ • candidate 27: ‘template<class _Istream, class _Tp> _Istream&& std::operator>>(_Istream&&, _Tp&&)’ /usr/include/c++/16/istream:1112:5: 1112 | operator>>(_Istream&& __is, _Tp&& __x) | ^~~~~~~~ • template argument deduction/substitution failed: • /usr/include/c++/16/istream: In substitution of ‘template<class _Istream, class _Tp> _Istream&& std::operator>>(_Istream&&, _Tp&&) [with _Istream = std::basic_istream<char>&; _Tp = char*&]’: • required from here lstring.c:662:9: 662 | i >> s.str; | ^~~ • error: template constraint failure for ‘template<class _Is, class _Tp> requires (__derived_from_ios_base<_Is>) && requires(_Is& __is, _Tp&& __t) {__is >> (forward<_Tp>)(__t);} using std::__rvalue_stream_extraction_t = _Is&&’ /usr/include/c++/16/istream:1112:5: 1112 | operator>>(_Istream&& __is, _Tp&& __x) | ^~~~~~~~ • constraints not satisfied • /usr/include/c++/16/bits/ostream.h: In substitution of ‘template<class _Is, class _Tp> requires (__derived_from_ios_base<_Is>) && requires(_Is& __is, _Tp&& __t) {__is >> (forward<_Tp>)(__t);} using std::__rvalue_stream_extraction_t = _Is&& [with _Is = std::basic_istream<char>&; _Tp = char*&]’: • required by substitution of ‘template<class _Istream, class _Tp> _Istream&& std::operator>>(_Istream&&, _Tp&&) [with _Istream = std::basic_istream<char>&; _Tp = char*&]’ /usr/include/c++/16/istream:1112:5: • required from here lstring.c:662:9: 662 | i >> s.str; | ^~~ • required for the satisfaction of ‘__derived_from_ios_base<_Is>’ [with _Is = std::basic_istream<char, std::char_traits<char> >&] /usr/include/c++/16/bits/ostream.h:803:13: 803 | concept __derived_from_ios_base = is_class_v<_Tp> | ^~~~~~~~~~~~~~~~~~~~~~~ • the expression ‘is_class_v<_Tp> [with _Tp = std::basic_istream<char, std::char_traits<char> >&]’ evaluated to ‘false’ /usr/include/c++/16/bits/ostream.h:803:39: 803 | concept __derived_from_ios_base = is_class_v<_Tp> | ^~~~~~~~~~~~~~~ • ‘std::basic_istream<char>&’ is not a class make[3]: *** [/build/reproducible-path/tcm-2.20+TSQD/src/Config.GEN:62: lstring.o] Error 1 make[3]: Leaving directory '/build/reproducible-path/tcm-2.20+TSQD/src/gl' make[2]: *** [Makefile.GEN:57: libglobal.a] Error 2 make[2]: Leaving directory '/build/reproducible-path/tcm-2.20+TSQD/src' make[1]: *** [Makefile:115: execs] Error 2 make[1]: Leaving directory '/build/reproducible-path/tcm-2.20+TSQD' make: *** [debian/rules:29: build-stamp] Error 2 dpkg-buildpackage: error: debian/rules binary subprocess failed with exit status 2