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