Hi, pyqt6 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/pyqt6_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. [...] | ^~~~~ In file included from /usr/include/c++/16/unordered_map:44, from /usr/include/c++/16/functional:80, from /usr/include/aarch64-linux-gnu/qt6/QtCore/qcomparehelpers.h:28, from /usr/include/aarch64-linux-gnu/qt6/QtCore/qcompare.h:639, from /usr/include/aarch64-linux-gnu/qt6/QtCore/qnamespace.h:13, from /usr/include/aarch64-linux-gnu/qt6/QtCore/qbytearray.h:10, from /usr/include/aarch64-linux-gnu/qt6/QtCore/qmetatype.h:11: /usr/include/c++/16/bits/range_access.h:325:24: note: here. Use ‘-Wsfinae-incomplete=2’ for a diagnostic at that point 325 | -> decltype(__cont.data()) | ~~~~~~~^~~~ In file included from /usr/include/aarch64-linux-gnu/qt6/QtCore/qcborvalue.h:13, from /usr/include/aarch64-linux-gnu/qt6/QtCore/qjsonvalue.h:8, from /usr/include/aarch64-linux-gnu/qt6/QtCore/QJsonValue:1, from ../../../../qpy/QtCore/qpycore_api.h:25, from /build/reproducible-path/pyqt6-6.10.2/sip/QtCore/qobject.sip:638: /usr/include/aarch64-linux-gnu/qt6/QtCore/qregularexpression.h:30:21: warning: defining ‘QRegularExpression’, which previously failed to be complete in a SFINAE context [-Wsfinae-incomplete=] 30 | class Q_CORE_EXPORT QRegularExpression | ^~~~~~~~~~~~~~~~~~ /usr/include/c++/16/bits/range_access.h:325:24: note: here. Use ‘-Wsfinae-incomplete=2’ for a diagnostic at that point 325 | -> decltype(__cont.data()) | ~~~~~~~^~~~ In file included from /build/reproducible-path/pyqt6-6.10.2/sip/QtCore/qbitarray.sip:26: /usr/include/aarch64-linux-gnu/qt6/QtCore/qbitarray.h:12:21: warning: defining ‘QBitArray’, which previously failed to be complete in a SFINAE context [-Wsfinae-incomplete=] 12 | class Q_CORE_EXPORT QBitArray | ^~~~~~~~~ /usr/include/c++/16/bits/range_access.h:325:24: note: here. Use ‘-Wsfinae-incomplete=2’ for a diagnostic at that point 325 | -> decltype(__cont.data()) | ~~~~~~~^~~~ /build/reproducible-path/pyqt6-6.10.2/.pybuild/cpython3_3.13/build/QtCore/sipQtCorecmodule.cpp: In function ‘PyObject* slot_QLocale_Language___ne__(PyObject*, PyObject*)’: /build/reproducible-path/pyqt6-6.10.2/.pybuild/cpython3_3.13/build/QtCore/sipQtCorecmodule.cpp:8332:32: error: no matching function for call to ‘operator!=(QLocale::Language&, const QLocale&)’ 8332 | sipRes = operator!=(sipCpp, *a0); | ~~~~~~~~~~^~~~~~~~~~~~~ • there are 2 candidates In file included from /usr/include/aarch64-linux-gnu/qt6/QtCore/qcborvalue.h:9: • candidate 1: ‘bool operator!=(QCborTag, QCborKnownTags)’ /usr/include/aarch64-linux-gnu/qt6/QtCore/qcborcommon.h:61:13: 61 | inline bool operator!=(QCborTag t, QCborKnownTags kt) { return quint64(t) != quint64(kt); } | ^~~~~~~~ • no known conversion for argument 1 from ‘QLocale::Language’ to ‘QCborTag’ /usr/include/aarch64-linux-gnu/qt6/QtCore/qcborcommon.h:61:33: 61 | inline bool operator!=(QCborTag t, QCborKnownTags kt) { return quint64(t) != quint64(kt); } | ~~~~~~~~~^ • candidate 2: ‘bool operator!=(QCborKnownTags, QCborTag)’ /usr/include/aarch64-linux-gnu/qt6/QtCore/qcborcommon.h:62:13: 62 | inline bool operator!=(QCborKnownTags kt, QCborTag t) { return quint64(t) != quint64(kt); } | ^~~~~~~~ • no known conversion for argument 1 from ‘QLocale::Language’ to ‘QCborKnownTags’ /usr/include/aarch64-linux-gnu/qt6/QtCore/qcborcommon.h:62:39: 62 | inline bool operator!=(QCborKnownTags kt, QCborTag t) { return quint64(t) != quint64(kt); } | ~~~~~~~~~~~~~~~^~ /build/reproducible-path/pyqt6-6.10.2/.pybuild/cpython3_3.13/build/QtCore/sipQtCorecmodule.cpp: At global scope: /build/reproducible-path/pyqt6-6.10.2/.pybuild/cpython3_3.13/build/QtCore/sipQtCorecmodule.cpp:9439:46: warning: ‘QtSystemMsg’ is deprecated: Use QtCriticalMsg instead. [-Wdeprecated-declarations] 9439 | {sipName_QtSystemMsg, static_cast<int>(::QtSystemMsg)}, | ^~~~~~~~~~~ In file included from /usr/include/aarch64-linux-gnu/qt6/QtCore/qglobal.h:47, from /usr/include/aarch64-linux-gnu/qt6/QtCore/qmetatype.h:9: /usr/include/aarch64-linux-gnu/qt6/QtCore/qlogging.h:37:5: note: declared here 37 | QtSystemMsg Q_DECL_ENUMERATOR_DEPRECATED_X("Use QtCriticalMsg instead.") = QtCriticalMsg | ^~~~~~~~~~~ /build/reproducible-path/pyqt6-6.10.2/sip/QtCore/qabstractitemmodel.sip:340:13: warning: ‘void qpycore_gc_modelroledata(PyObject*)’ declared ‘static’ but never defined [-Wunused-function] 340 | static void qpycore_gc_modelroledata(PyObject *mrd_obj); | ^~~~~~~~~~~~~~~~~~~~~~~~ make[2]: *** [Makefile:1579: sipQtCorecmodule.o] Error 1 make[2]: Leaving directory '/build/reproducible-path/pyqt6-6.10.2/.pybuild/cpython3_3.13/build/QtCore' make[1]: *** [Makefile:212: sub-QtCore-make_first-ordered] Error 2 make[1]: Leaving directory '/build/reproducible-path/pyqt6-6.10.2/.pybuild/cpython3_3.13/build' E: pybuild pybuild:485: build: plugin custom failed with: exit code=2: /usr/bin/make -C /build/reproducible-path/pyqt6-6.10.2/.pybuild/cpython3_3.13/build dh_auto_build: error: pybuild --build -i python{version} -p "3.14 3.13" --parallel=128 returned exit code 13 make: *** [debian/rules:22: binary] Error 25 dpkg-buildpackage: error: debian/rules binary subprocess failed with exit status 2