Bug#1096657: freeorion: ftbfs with GCC-15

Matthias Klose doko at debian.org
Mon Feb 17 17:14:09 GMT 2025


Package: src:freeorion
Version: 0.5.0.1-1
Severity: important
Tags: sid forky
User: debian-gcc at lists.debian.org
Usertags: ftbfs-gcc-15

[This bug is NOT targeted to the upcoming trixie release]

Please keep this issue open in the bug tracker for the package it
was filed for.  If a fix in another package is required, please
file a bug for the other package (or clone), and add a block in this
package. Please keep the issue open until the package can be built in
a follow-up test rebuild.

The package fails to build in a test rebuild on at least amd64 with
gcc-15/g++-15, but succeeds to build with gcc-14/g++-14. The
severity of this report will be raised before the forky release.

The full build log can be found at:
http://qa-logs.debian.net/2025/02/16/amd64exp/freeorion_0.5.0.1-1_unstable_gccexp.log.gz
The last lines of the build log are at the end of this report.

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

  apt-get -t=experimental install g++ 

GCC 15 now defaults to the C23/C++23 standards, exposing many FTBFS.
Other Common build failures are new warnings resulting in build failures
with -Werror turned on, or new/dropped symbols in Debian symbols files.
For other C/C++ related build failures see the porting guide at
http://gcc.gnu.org/gcc-15/porting_to.html

[...]
 1720 |         : _M_ptr(), _M_refcount(_M_ptr, __tag, std::forward<_Args>(__args)...)
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/15/bits/shared_ptr.h:463:59:   required from ‘std::shared_ptr<_Tp>::shared_ptr(std::_Sp_alloc_shared_tag<_Tp>, _Args&& ...) [with _Alloc = std::allocator<void>; _Args = {std::unique_ptr<ValueRef::ValueRef<double>, std::default_delete<ValueRef::ValueRef<double> > >, Condition::ComparisonType&, std::unique_ptr<ValueRef::ValueRef<double>, std::default_delete<ValueRef::ValueRef<double> > >}; _Tp = Condition::ValueTest]’
  463 |         : __shared_ptr<_Tp>(__tag, std::forward<_Args>(__args)...)
      |                                                                  ^
/usr/include/c++/15/bits/shared_ptr.h:1007:14:   required from ‘std::shared_ptr<typename std::enable_if<(! std::is_array<_Tp>::value), _Tp>::type> std::make_shared(_Args&& ...) [with _Tp = Condition::ValueTest; _Args = {unique_ptr<ValueRef::ValueRef<double>, default_delete<ValueRef::ValueRef<double> > >, Condition::ComparisonType&, unique_ptr<ValueRef::ValueRef<double>, default_delete<ValueRef::ValueRef<double> > >}; typename enable_if<(! is_array<_Tp>::value), _Tp>::type = Condition::ValueTest]’
 1007 |       return shared_ptr<_Tp>(_Sp_alloc_shared_tag<_Alloc>{__a},
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1008 |                              std::forward<_Args>(__args)...);
      |                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/build/reproducible-path/freeorion-0.5.0.1/parse/ValueRefPythonParser.h:64:76:   required from ‘value_ref_wrapper<T>::operator condition_wrapper() const [with T = double]’
   64 |             return condition_wrapper(std::make_shared<Condition::ValueTest>(op->LHS()->Clone(),
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
   65 |                 cmp_type,
      |                 ~~~~~~~~~                                                   
   66 |                 op->RHS()->Clone()));
      |                 ~~~~~~~~~~~~~~~~~~~                                         
/build/reproducible-path/freeorion-0.5.0.1/parse/ConditionPythonParser.cpp:64:48:   required from here
   64 |     return lhs & rhs.operator condition_wrapper();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
/usr/include/c++/15/bits/stl_construct.h:133:7: error: invalid new-expression of abstract class type ‘Condition::ValueTest’
  133 |       ::new(static_cast<void*>(__p)) _Tp(std::forward<_Args>(__args)...);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/15/bits/stl_construct.h: In instantiation of ‘void std::_Construct(_Tp*, _Args&& ...) [with _Tp = Condition::ValueTest; _Args = {unique_ptr<ValueRef::ValueRef<int>, default_delete<ValueRef::ValueRef<int> > >, Condition::ComparisonType&, unique_ptr<ValueRef::ValueRef<int>, default_delete<ValueRef::ValueRef<int> > >}]’:
/usr/include/c++/15/bits/alloc_traits.h:805:19:   required from ‘static void std::allocator_traits<std::allocator<void> >::construct(allocator_type&, _Up*, _Args&& ...) [with _Up = Condition::ValueTest; _Args = {std::unique_ptr<ValueRef::ValueRef<int>, std::default_delete<ValueRef::ValueRef<int> > >, Condition::ComparisonType&, std::unique_ptr<ValueRef::ValueRef<int>, std::default_delete<ValueRef::ValueRef<int> > >}; allocator_type = std::allocator<void>]’
  805 |         { std::_Construct(__p, std::forward<_Args>(__args)...); }
      |           ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/15/bits/shared_ptr_base.h:607:39:   required from ‘std::_Sp_counted_ptr_inplace<_Tp, _Alloc, _Lp>::_Sp_counted_ptr_inplace(_Alloc, _Args&& ...) [with _Args = {std::unique_ptr<ValueRef::ValueRef<int>, std::default_delete<ValueRef::ValueRef<int> > >, Condition::ComparisonType&, std::unique_ptr<ValueRef::ValueRef<int>, std::default_delete<ValueRef::ValueRef<int> > >}; _Tp = Condition::ValueTest; _Alloc = std::allocator<void>; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]’
  607 |           allocator_traits<_Alloc>::construct(__a, _M_ptr(),
      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
  608 |               std::forward<_Args>(__args)...); // might throw
      |               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
/usr/include/c++/15/bits/shared_ptr_base.h:970:16:   required from ‘std::__shared_count<_Lp>::__shared_count(_Tp*&, std::_Sp_alloc_shared_tag<_Alloc>, _Args&& ...) [with _Tp = Condition::ValueTest; _Alloc = std::allocator<void>; _Args = {std::unique_ptr<ValueRef::ValueRef<int>, std::default_delete<ValueRef::ValueRef<int> > >, Condition::ComparisonType&, std::unique_ptr<ValueRef::ValueRef<int>, std::default_delete<ValueRef::ValueRef<int> > >}; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]’
  970 |           auto __pi = ::new (__mem)
      |                       ^~~~~~~~~~~~~
  971 |             _Sp_cp_type(__a._M_a, std::forward<_Args>(__args)...);
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/15/bits/shared_ptr_base.h:1720:14:   required from ‘std::__shared_ptr<_Tp, _Lp>::__shared_ptr(std::_Sp_alloc_shared_tag<_Tp>, _Args&& ...) [with _Alloc = std::allocator<void>; _Args = {std::unique_ptr<ValueRef::ValueRef<int>, std::default_delete<ValueRef::ValueRef<int> > >, Condition::ComparisonType&, std::unique_ptr<ValueRef::ValueRef<int>, std::default_delete<ValueRef::ValueRef<int> > >}; _Tp = Condition::ValueTest; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]’
 1720 |         : _M_ptr(), _M_refcount(_M_ptr, __tag, std::forward<_Args>(__args)...)
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/15/bits/shared_ptr.h:463:59:   required from ‘std::shared_ptr<_Tp>::shared_ptr(std::_Sp_alloc_shared_tag<_Tp>, _Args&& ...) [with _Alloc = std::allocator<void>; _Args = {std::unique_ptr<ValueRef::ValueRef<int>, std::default_delete<ValueRef::ValueRef<int> > >, Condition::ComparisonType&, std::unique_ptr<ValueRef::ValueRef<int>, std::default_delete<ValueRef::ValueRef<int> > >}; _Tp = Condition::ValueTest]’
  463 |         : __shared_ptr<_Tp>(__tag, std::forward<_Args>(__args)...)
      |                                                                  ^
/usr/include/c++/15/bits/shared_ptr.h:1007:14:   required from ‘std::shared_ptr<typename std::enable_if<(! std::is_array<_Tp>::value), _Tp>::type> std::make_shared(_Args&& ...) [with _Tp = Condition::ValueTest; _Args = {unique_ptr<ValueRef::ValueRef<int>, default_delete<ValueRef::ValueRef<int> > >, Condition::ComparisonType&, unique_ptr<ValueRef::ValueRef<int>, default_delete<ValueRef::ValueRef<int> > >}; typename enable_if<(! is_array<_Tp>::value), _Tp>::type = Condition::ValueTest]’
 1007 |       return shared_ptr<_Tp>(_Sp_alloc_shared_tag<_Alloc>{__a},
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1008 |                              std::forward<_Args>(__args)...);
      |                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/build/reproducible-path/freeorion-0.5.0.1/parse/ValueRefPythonParser.h:64:76:   required from ‘value_ref_wrapper<T>::operator condition_wrapper() const [with T = int]’
   64 |             return condition_wrapper(std::make_shared<Condition::ValueTest>(op->LHS()->Clone(),
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
   65 |                 cmp_type,
      |                 ~~~~~~~~~                                                   
   66 |                 op->RHS()->Clone()));
      |                 ~~~~~~~~~~~~~~~~~~~                                         
/build/reproducible-path/freeorion-0.5.0.1/parse/ConditionPythonParser.cpp:68:48:   required from here
   68 |     return lhs & rhs.operator condition_wrapper();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
/usr/include/c++/15/bits/stl_construct.h:133:7: error: invalid new-expression of abstract class type ‘Condition::ValueTest’
  133 |       ::new(static_cast<void*>(__p)) _Tp(std::forward<_Args>(__args)...);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[3]: *** [CMakeFiles/freeorionparseobj.dir/build.make:838: CMakeFiles/freeorionparseobj.dir/parse/ConditionPythonParser.cpp.o] Error 1
make[3]: Leaving directory '/build/reproducible-path/freeorion-0.5.0.1/obj-x86_64-linux-gnu'
make[2]: *** [CMakeFiles/Makefile2:649: CMakeFiles/freeorionparseobj.dir/all] Error 2
make[2]: Leaving directory '/build/reproducible-path/freeorion-0.5.0.1/obj-x86_64-linux-gnu'
make[1]: *** [Makefile:159: all] Error 2
make[1]: Leaving directory '/build/reproducible-path/freeorion-0.5.0.1/obj-x86_64-linux-gnu'
dh_auto_build: error: cd obj-x86_64-linux-gnu && make -j2 "INSTALL=install --strip-program=true" VERBOSE=1 returned exit code 2
make: *** [debian/rules:18: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2



More information about the Pkg-games-devel mailing list