[Debichem-devel] Bug#1133558: molds: ftbfs with GCC-16

Emanuele Rocca ema at debian.org
Mon Apr 13 14:07:29 BST 2026


Package: src:molds
Version: 0.3.1-3
Severity: important
Tags: sid forky ftbfs
User: debian-gcc at lists.debian.org
Usertags: ftbfs-gcc-16

Hi,

molds 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/molds_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.

[...]


  110 |       catch(MolDS_base::MolDSException ex){
      |                                        ^~
In file included from mndo/Mndo.cpp:38:
mndo/../mpi/AsyncCommunicator.h: In instantiation of ‘void MolDS_mpi::AsyncCommunicator::Run() [with T = double]’:
mndo/Mndo.cpp:3577:50:   required from here
 3577 |    boost::thread communicationThread( boost::bind(&MolDS_mpi::AsyncCommunicator::Run<double>, &asyncCommunicator) );
      |                                       ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mndo/../mpi/AsyncCommunicator.h:62:43: warning: catching polymorphic type ‘class MolDS_base::MolDSException’ by value [-Wcatch-value=]
   62 |          catch(MolDS_base::MolDSException ex){
      |                                           ^~
mndo/../mpi/AsyncCommunicator.h:32:11: warning: unused variable ‘mpiRank’ [-Wunused-variable]
   32 |       int mpiRank = MolDS_mpi::MpiProcess::GetInstance()->GetRank();
      |           ^~~~~~~
cndo/../mpi/MpiProcess.h: In instantiation of ‘void MolDS_mpi::MpiProcess::SplitMessage2Chunks(std::vector<Chunk>&, int, T*, MolDS_mpi::molds_mpi_int) const [with T = const double; MolDS_mpi::molds_mpi_int = long int]’:
cndo/../mpi/MpiProcess.h:39:32:   required from ‘void MolDS_mpi::MpiProcess::Send(int, int, const T*, MolDS_mpi::molds_mpi_int) [with T = double; MolDS_mpi::molds_mpi_int = long int]’
   39 |       this->SplitMessage2Chunks(chunks, tag, values, num);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
cndo/../mpi/AsyncCommunicator.h:38:58:   required from ‘void MolDS_mpi::AsyncCommunicator::Run() [with T = double]’
   38 |                MolDS_mpi::MpiProcess::GetInstance()->Send(mInfo.dest,
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
   39 |                                                           mInfo.tag,
      |                                                           ~~~~~~~~~~
   40 |                                                           reinterpret_cast<T*>(mInfo.vectorPtr),
      |                                                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   41 |                                                           mInfo.num);
      |                                                           ~~~~~~~~~~
cndo/Cndo2.cpp:1446:50:   required from here
 1446 |    boost::thread communicationThread( boost::bind(&MolDS_mpi::AsyncCommunicator::Run<double>, &asyncCommunicator) );
      |                                       ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cndo/../mpi/MpiProcess.h:177:41: warning: narrowing conversion of ‘num’ from ‘MolDS_mpi::molds_mpi_int’ {aka ‘long int’} to ‘int’ [-Wnarrowing]
  177 |          Chunk chunk = {origianlTag, 0, num};
      |                                         ^~~
mndo/../mpi/MpiProcess.h: In instantiation of ‘void MolDS_mpi::MpiProcess::SplitMessage2Chunks(std::vector<Chunk>&, int, T*, MolDS_mpi::molds_mpi_int) const [with T = double; MolDS_mpi::molds_mpi_int = long int]’:
mndo/../mpi/MpiProcess.h:53:32:   required from ‘void MolDS_mpi::MpiProcess::Recv(int, int, T*, MolDS_mpi::molds_mpi_int) [with T = double; MolDS_mpi::molds_mpi_int = long int]’
   53 |       this->SplitMessage2Chunks(chunks, tag, values, num);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
mndo/Mndo.cpp:988:52:   required from here
  988 |          MolDS_mpi::MpiProcess::GetInstance()->Recv(source, tag, matrixCIS[k], this->matrixCISdimension);
      |          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mndo/../mpi/MpiProcess.h:177:41: warning: narrowing conversion of ‘num’ from ‘MolDS_mpi::molds_mpi_int’ {aka ‘long int’} to ‘int’ [-Wnarrowing]
  177 |          Chunk chunk = {origianlTag, 0, num};
      |                                         ^~~
mndo/../mpi/MpiProcess.h: In instantiation of ‘void MolDS_mpi::MpiProcess::SplitMessage2Chunks(std::vector<Chunk>&, int, T*, MolDS_mpi::molds_mpi_int) const [with T = const double; MolDS_mpi::molds_mpi_int = long int]’:
mndo/../mpi/MpiProcess.h:39:32:   required from ‘void MolDS_mpi::MpiProcess::Send(int, int, const T*, MolDS_mpi::molds_mpi_int) [with T = double; MolDS_mpi::molds_mpi_int = long int]’
   39 |       this->SplitMessage2Chunks(chunks, tag, values, num);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
mndo/Mndo.cpp:997:52:   required from here
  997 |          MolDS_mpi::MpiProcess::GetInstance()->Send(dest, tag, matrixCIS[k], this->matrixCISdimension);
      |          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mndo/../mpi/MpiProcess.h:177:41: warning: narrowing conversion of ‘num’ from ‘MolDS_mpi::molds_mpi_int’ {aka ‘long int’} to ‘int’ [-Wnarrowing]
  177 |          Chunk chunk = {origianlTag, 0, num};
      |                                         ^~~
mndo/../mpi/MpiProcess.h: In instantiation of ‘void MolDS_mpi::MpiProcess::AllReduce(const T*, MolDS_mpi::molds_mpi_int, T*, Op) [with T = double; Op = std::plus<double>; MolDS_mpi::molds_mpi_int = long int]’:
mndo/../mpi/MpiProcess.h:105:25:   required from ‘void MolDS_mpi::MpiProcess::AllReduce(T*, MolDS_mpi::molds_mpi_int, Op) [with T = double; Op = std::plus<double>; MolDS_mpi::molds_mpi_int = long int]’
  105 |          this->AllReduce(values, num, tmpValues, op);
      |          ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
mndo/Mndo.cpp:2852:51:   required from here
 2852 |    MolDS_mpi::MpiProcess::GetInstance()->AllReduce(&this->matrixForce[0][0][0], numTransported, std::plus<double>());
      |    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mndo/../mpi/MpiProcess.h:92:31: warning: comparison of integer expressions of different signedness: ‘MolDS_mpi::molds_mpi_int’ {aka ‘long int’} and ‘std::vector<MolDS_mpi::MpiProcess::Chunk>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   92 |       for(molds_mpi_int i=0; i<chunks.size(); i++){
      |                              ~^~~~~~~~~~~~~~
make[2]: *** [Makefile_GNU:56: obj/Cndo2.o] Error 1
make[2]: *** [Makefile_GNU:56: obj/ZindoS.o] Error 1
make[2]: *** [Makefile_GNU:56: obj/Mndo.o] Error 1
make[2]: Leaving directory '/build/reproducible-path/molds-0.3.1/src'
dh_auto_build: error: cd src && make -j128 INSTALL="install --strip-program=true" -f Makefile_GNU returned exit code 2
make[1]: *** [debian/rules:29: override_dh_auto_build] Error 25
make[1]: Leaving directory '/build/reproducible-path/molds-0.3.1'
make: *** [debian/rules:20: binary] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess failed with exit status 2



More information about the Debichem-devel mailing list