Bug#1133519: libixion: ftbfs with GCC-16

Emanuele Rocca <[email protected]> Mon, 13 Apr 2026 15:05:38 +0200
Newsgroups gmane.linux.debian.devel.openoffice
Message-ID <[email protected]>
Package: src:libixion
Version: 0.20.0-7
Severity: important
Tags: sid forky ftbfs
User: [email protected]
Usertags: ftbfs-gcc-16

Hi,

libixion 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/libixion_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.

[...]


/usr/include/mdds-3.0/mdds/./multi_type_vector/soa/main_def.inl:3261:54:   required from 'mdds::mtv::soa::multi_type_vector<Traits>::iterator mdds::mtv::soa::multi_type_vector<Traits>::set_cell_to_empty_block(size_type, size_type, const T&) [with T = ixion::formula_cell*; Traits = ixion::column_store_traits; iterator = mdds::mtv::soa::detail::iterator_base<mdds::mtv::soa::multi_type_vector<ixion::column_store_traits>::iterator_trait>; size_type = long unsigned int]'
 3261 |                             block_funcs::resize_block(*prev_data, 0);
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
/usr/include/mdds-3.0/mdds/./multi_type_vector/soa/main_def.inl:1353:39:   required from 'mdds::mtv::soa::multi_type_vector<Traits>::iterator mdds::mtv::soa::multi_type_vector<Traits>::set_impl(size_type, size_type, const T&) [with T = ixion::formula_cell*; Traits = ixion::column_store_traits; iterator = mdds::mtv::soa::detail::iterator_base<mdds::mtv::soa::multi_type_vector<ixion::column_store_traits>::iterator_trait>; size_type = long unsigned int]'
 1353 |         return set_cell_to_empty_block(block_index, pos_in_block, value);
      |                ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/mdds-3.0/mdds/./multi_type_vector/soa/main_def.inl:783:28:   required from 'mdds::mtv::soa::multi_type_vector<Traits>::iterator mdds::mtv::soa::multi_type_vector<Traits>::set(const iterator&, size_type, const T&) [with T = ixion::formula_cell*; Traits = ixion::column_store_traits; iterator = mdds::mtv::soa::detail::iterator_base<mdds::mtv::soa::multi_type_vector<ixion::column_store_traits>::iterator_trait>; size_type = long unsigned int]'
  783 |     iterator ret = set_impl(pos, block_index, value);
      |                    ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
model_context_impl.cpp:139:37:   required from here
  139 |             pos_hint = col_store.set(pos_hint, row, new formula_cell(row_offset, col_offset, cs, ts));
      |                        ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/mdds-3.0/mdds/multi_type_vector/./types_util.hpp:119:48: error: no type named 'type' in 'struct mdds::mtv::detail::has_shrink_to_fit_method<mdds::mtv::delayed_delete_vector<unsigned int, std::allocator<unsigned int> > >'
  119 |     typename has_shrink_to_fit_method<T>::type v;
      |                                                ^
/usr/include/mdds-3.0/mdds/multi_type_vector/./types_util.hpp: In instantiation of 'std::size_t mdds::mtv::detail::get_block_capacity(const T&) [with T = mdds::mtv::delayed_delete_vector<ixion::formula_cell*, std::allocator<ixion::formula_cell*> >; std::size_t = long unsigned int]':
/usr/include/mdds-3.0/mdds/multi_type_vector/types.hpp:460:51:   required from 'static void mdds::mtv::element_block<Self, TypeId, ValueT, StoreT>::resize_block(mdds::mtv::base_element_block&, size_t) [with Self = mdds::mtv::noncopyable_managed_element_block<50, ixion::formula_cell>; int TypeId = 50; ValueT = ixion::formula_cell*; StoreT = mdds::mtv::delayed_delete_vector; size_t = long unsigned int]'
  460 |         if (new_size < (detail::get_block_capacity(st) / 2))
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
/usr/include/mdds-3.0/mdds/multi_type_vector/block_funcs.hpp:87:107:   required from 'static void mdds::mtv::element_block_funcs<Ts>::resize_block(mdds::mtv::base_element_block&, std::size_t) [with Ts = {mdds::mtv::default_element_block<0, bool, mdds::mtv::delayed_delete_vector>, mdds::mtv::default_element_block<10, double, mdds::mtv::delayed_delete_vector>, mdds::mtv::default_element_block<6, unsigned int, mdds::mtv::delayed_delete_vector>, mdds::mtv::noncopyable_managed_element_block<50, ixion::formula_cell, mdds::mtv::delayed_delete_vector>}; std::size_t = long unsigned int]'
   87 |         static const std::unordered_map<element_t, std::function<void(base_element_block&, std::size_t)>> func_map{
      |                                                                                                           ^~~~~~~~
/usr/include/mdds-3.0/mdds/./multi_type_vector/soa/main_def.inl:3261:54:   required from 'mdds::mtv::soa::multi_type_vector<Traits>::iterator mdds::mtv::soa::multi_type_vector<Traits>::set_cell_to_empty_block(size_type, size_type, const T&) [with T = ixion::formula_cell*; Traits = ixion::column_store_traits; iterator = mdds::mtv::soa::detail::iterator_base<mdds::mtv::soa::multi_type_vector<ixion::column_store_traits>::iterator_trait>; size_type = long unsigned int]'
 3261 |                             block_funcs::resize_block(*prev_data, 0);
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
/usr/include/mdds-3.0/mdds/./multi_type_vector/soa/main_def.inl:1353:39:   required from 'mdds::mtv::soa::multi_type_vector<Traits>::iterator mdds::mtv::soa::multi_type_vector<Traits>::set_impl(size_type, size_type, const T&) [with T = ixion::formula_cell*; Traits = ixion::column_store_traits; iterator = mdds::mtv::soa::detail::iterator_base<mdds::mtv::soa::multi_type_vector<ixion::column_store_traits>::iterator_trait>; size_type = long unsigned int]'
 1353 |         return set_cell_to_empty_block(block_index, pos_in_block, value);
      |                ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/mdds-3.0/mdds/./multi_type_vector/soa/main_def.inl:783:28:   required from 'mdds::mtv::soa::multi_type_vector<Traits>::iterator mdds::mtv::soa::multi_type_vector<Traits>::set(const iterator&, size_type, const T&) [with T = ixion::formula_cell*; Traits = ixion::column_store_traits; iterator = mdds::mtv::soa::detail::iterator_base<mdds::mtv::soa::multi_type_vector<ixion::column_store_traits>::iterator_trait>; size_type = long unsigned int]'
  783 |     iterator ret = set_impl(pos, block_index, value);
      |                    ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
model_context_impl.cpp:139:37:   required from here
  139 |             pos_hint = col_store.set(pos_hint, row, new formula_cell(row_offset, col_offset, cs, ts));
      |                        ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/mdds-3.0/mdds/multi_type_vector/./types_util.hpp:47:43: error: no type named 'type' in 'struct mdds::mtv::detail::has_capacity_method<mdds::mtv::delayed_delete_vector<ixion::formula_cell*, std::allocator<ixion::formula_cell*> > >'
   47 |     typename has_capacity_method<T>::type v;
      |                                           ^
/usr/include/mdds-3.0/mdds/multi_type_vector/./types_util.hpp: In instantiation of 'void mdds::mtv::detail::shrink_to_fit(T&) [with T = mdds::mtv::delayed_delete_vector<ixion::formula_cell*, std::allocator<ixion::formula_cell*> >]':
/usr/include/mdds-3.0/mdds/multi_type_vector/types.hpp:461:34:   required from 'static void mdds::mtv::element_block<Self, TypeId, ValueT, StoreT>::resize_block(mdds::mtv::base_element_block&, size_t) [with Self = mdds::mtv::noncopyable_managed_element_block<50, ixion::formula_cell>; int TypeId = 50; ValueT = ixion::formula_cell*; StoreT = mdds::mtv::delayed_delete_vector; size_t = long unsigned int]'
  461 |             detail::shrink_to_fit(st);
      |             ~~~~~~~~~~~~~~~~~~~~~^~~~
/usr/include/mdds-3.0/mdds/multi_type_vector/block_funcs.hpp:87:107:   required from 'static void mdds::mtv::element_block_funcs<Ts>::resize_block(mdds::mtv::base_element_block&, std::size_t) [with Ts = {mdds::mtv::default_element_block<0, bool, mdds::mtv::delayed_delete_vector>, mdds::mtv::default_element_block<10, double, mdds::mtv::delayed_delete_vector>, mdds::mtv::default_element_block<6, unsigned int, mdds::mtv::delayed_delete_vector>, mdds::mtv::noncopyable_managed_element_block<50, ixion::formula_cell, mdds::mtv::delayed_delete_vector>}; std::size_t = long unsigned int]'
   87 |         static const std::unordered_map<element_t, std::function<void(base_element_block&, std::size_t)>> func_map{
      |                                                                                                           ^~~~~~~~
/usr/include/mdds-3.0/mdds/./multi_type_vector/soa/main_def.inl:3261:54:   required from 'mdds::mtv::soa::multi_type_vector<Traits>::iterator mdds::mtv::soa::multi_type_vector<Traits>::set_cell_to_empty_block(size_type, size_type, const T&) [with T = ixion::formula_cell*; Traits = ixion::column_store_traits; iterator = mdds::mtv::soa::detail::iterator_base<mdds::mtv::soa::multi_type_vector<ixion::column_store_traits>::iterator_trait>; size_type = long unsigned int]'
 3261 |                             block_funcs::resize_block(*prev_data, 0);
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
/usr/include/mdds-3.0/mdds/./multi_type_vector/soa/main_def.inl:1353:39:   required from 'mdds::mtv::soa::multi_type_vector<Traits>::iterator mdds::mtv::soa::multi_type_vector<Traits>::set_impl(size_type, size_type, const T&) [with T = ixion::formula_cell*; Traits = ixion::column_store_traits; iterator = mdds::mtv::soa::detail::iterator_base<mdds::mtv::soa::multi_type_vector<ixion::column_store_traits>::iterator_trait>; size_type = long unsigned int]'
 1353 |         return set_cell_to_empty_block(block_index, pos_in_block, value);
      |                ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/mdds-3.0/mdds/./multi_type_vector/soa/main_def.inl:783:28:   required from 'mdds::mtv::soa::multi_type_vector<Traits>::iterator mdds::mtv::soa::multi_type_vector<Traits>::set(const iterator&, size_type, const T&) [with T = ixion::formula_cell*; Traits = ixion::column_store_traits; iterator = mdds::mtv::soa::detail::iterator_base<mdds::mtv::soa::multi_type_vector<ixion::column_store_traits>::iterator_trait>; size_type = long unsigned int]'
  783 |     iterator ret = set_impl(pos, block_index, value);
      |                    ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
model_context_impl.cpp:139:37:   required from here
  139 |             pos_hint = col_store.set(pos_hint, row, new formula_cell(row_offset, col_offset, cs, ts));
      |                        ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/mdds-3.0/mdds/multi_type_vector/./types_util.hpp:119:48: error: no type named 'type' in 'struct mdds::mtv::detail::has_shrink_to_fit_method<mdds::mtv::delayed_delete_vector<ixion::formula_cell*, std::allocator<ixion::formula_cell*> > >'
  119 |     typename has_shrink_to_fit_method<T>::type v;
      |                                                ^
make[4]: *** [Makefile:1007: matrix.lo] Error 1
make[4]: *** [Makefile:1007: model_context_impl.lo] Error 1
make[4]: Leaving directory '/build/reproducible-path/libixion-0.20.0/src/libixion'
make[3]: *** [Makefile:827: all-recursive] Error 1
make[3]: Leaving directory '/build/reproducible-path/libixion-0.20.0/src'
make[2]: *** [Makefile:642: all-recursive] Error 1
make[2]: Leaving directory '/build/reproducible-path/libixion-0.20.0'
make[1]: *** [Makefile:549: all] Error 2
make[1]: Leaving directory '/build/reproducible-path/libixion-0.20.0'
dh_auto_build: error: make -j128 returned exit code 2
make: *** [debian/rules:11: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess failed with exit status 2