Bug#984140: freeorion: ftbfs with GCC-11

Matthias Klose doko at debian.org
Wed Mar 3 16:12:32 GMT 2021


Package: src:freeorion
Version: 0.4.10.1-1
Severity: normal
Tags: sid bookworm
User: debian-gcc at lists.debian.org
Usertags: ftbfs-gcc-11

[This bug is not targeted to the upcoming bullseye 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-11/g++-11, but succeeds to build with gcc-10/g++-10. The
severity of this report will be raised before the bookworm release,
so nothing has to be done for the bullseye release.

The full build log can be found at:
http://people.debian.org/~doko/logs/20210228/filtered/gcc11/freeorion_0.4.10.1-1_unstable_gcc11.log
The last lines of the build log are at the end of this report.

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

  apt-get -t=experimental install g++ 

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-11/porting_to.html

GCC 11 defaults to the GNU++17 standard.  If your package installs
header files in /usr/include, please don't work around C++17 issues
by choosing a lower C++ standard for the package build, but fix these
issues to build with the C++17 standard.

[...]
[ 26%] Building CXX object CMakeFiles/freeorionparseobj.dir/parse/FleetPlansParser.cpp.o
/usr/bin/c++ -DBINPATH=\"/usr/bin\" -DBOOST_ALL_DYN_LINK -DBOOST_ALL_NO_LIB -DENABLE_BINRELOC -DFREEORION_BUILD_PARSE -DFREEORION_LINUX -DNDEBUG -DSHAREPATH=\"/usr/share\" -I/<<PKGBUILDDIR>>/GG/Boost::boost -I/<<PKGBUILDDIR>>/GG -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -O2 -g -DNDEBUG -fPIC -fvisibility=hidden -Wall -O3 -std=c++14 -o CMakeFiles/freeorionparseobj.dir/parse/FleetPlansParser.cpp.o -c /<<PKGBUILDDIR>>/parse/FleetPlansParser.cpp
[ 26%] Building CXX object CMakeFiles/freeorionparseobj.dir/parse/GameRulesParser.cpp.o
/usr/bin/c++ -DBINPATH=\"/usr/bin\" -DBOOST_ALL_DYN_LINK -DBOOST_ALL_NO_LIB -DENABLE_BINRELOC -DFREEORION_BUILD_PARSE -DFREEORION_LINUX -DNDEBUG -DSHAREPATH=\"/usr/share\" -I/<<PKGBUILDDIR>>/GG/Boost::boost -I/<<PKGBUILDDIR>>/GG -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -O2 -g -DNDEBUG -fPIC -fvisibility=hidden -Wall -O3 -std=c++14 -o CMakeFiles/freeorionparseobj.dir/parse/GameRulesParser.cpp.o -c /<<PKGBUILDDIR>>/parse/GameRulesParser.cpp
In file included from /usr/include/c++/11/bits/move.h:57,
                 from /usr/include/c++/11/bits/nested_exception.h:40,
                 from /usr/include/c++/11/exception:148,
                 from /usr/include/c++/11/ios:39,
                 from /usr/include/c++/11/ostream:38,
                 from /usr/include/boost/system/error_code.hpp:17,
                 from /usr/include/boost/filesystem/path_traits.hpp:22,
                 from /usr/include/boost/filesystem/path.hpp:26,
                 from /<<PKGBUILDDIR>>/parse/Parse.h:10,
                 from /<<PKGBUILDDIR>>/parse/GameRulesParser.cpp:1:
/usr/include/c++/11/type_traits: In instantiation of ‘struct std::is_destructible<GameRules>’:
/usr/include/c++/11/future:769:21:   required from ‘class std::future<GameRules>’
/usr/include/boost/optional/detail/optional_aligned_storage.hpp:31:20:   required from ‘union boost::optional_detail::aligned_storage<std::future<GameRules> >::dummy_u’
/usr/include/boost/optional/detail/optional_aligned_storage.hpp:34:7:   required from ‘class boost::optional_detail::aligned_storage<std::future<GameRules> >’
/usr/include/boost/optional/optional.hpp:775:18:   required from ‘class boost::optional_detail::optional_base<std::future<GameRules> >’
/usr/include/boost/optional/optional.hpp:850:7:   required from ‘class boost::optional<std::future<GameRules> >’
/<<PKGBUILDDIR>>/parse/../util/Pending.h:38:41:   required from ‘struct Pending::Pending<GameRules>’
/usr/include/boost/optional/detail/optional_aligned_storage.hpp:31:20:   required from ‘union boost::optional_detail::aligned_storage<Pending::Pending<GameRules> >::dummy_u’
/usr/include/boost/optional/detail/optional_aligned_storage.hpp:34:7:   required from ‘class boost::optional_detail::aligned_storage<Pending::Pending<GameRules> >’
/usr/include/boost/optional/optional.hpp:775:18:   required from ‘class boost::optional_detail::optional_base<Pending::Pending<GameRules> >’
/usr/include/boost/optional/optional.hpp:850:7:   required from ‘class boost::optional<Pending::Pending<GameRules> >’
/<<PKGBUILDDIR>>/parse/../util/GameRules.h:157:83:   required from here
/usr/include/c++/11/type_traits:849:52: error: static assertion failed: template argument must be a complete class or an unbounded array
  849 |       static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/11/type_traits:849:52: note: ‘std::__is_complete_or_unbounded<std::__type_identity<GameRules> >((std::__type_identity<GameRules>{}, std::__type_identity<GameRules>()))’ evaluates to false
In file included from /<<PKGBUILDDIR>>/parse/../util/Pending.h:10,
                 from /<<PKGBUILDDIR>>/parse/../util/GameRules.h:5,
                 from /<<PKGBUILDDIR>>/parse/GameRulesParser.cpp:6:
/usr/include/c++/11/future: In instantiation of ‘class std::future<GameRules>’:
/usr/include/boost/optional/detail/optional_aligned_storage.hpp:31:20:   required from ‘union boost::optional_detail::aligned_storage<std::future<GameRules> >::dummy_u’
/usr/include/boost/optional/detail/optional_aligned_storage.hpp:34:7:   required from ‘class boost::optional_detail::aligned_storage<std::future<GameRules> >’
/usr/include/boost/optional/optional.hpp:775:18:   required from ‘class boost::optional_detail::optional_base<std::future<GameRules> >’
/usr/include/boost/optional/optional.hpp:850:7:   required from ‘class boost::optional<std::future<GameRules> >’
/<<PKGBUILDDIR>>/parse/../util/Pending.h:38:41:   required from ‘struct Pending::Pending<GameRules>’
/usr/include/boost/optional/detail/optional_aligned_storage.hpp:31:20:   required from ‘union boost::optional_detail::aligned_storage<Pending::Pending<GameRules> >::dummy_u’
/usr/include/boost/optional/detail/optional_aligned_storage.hpp:34:7:   required from ‘class boost::optional_detail::aligned_storage<Pending::Pending<GameRules> >’
/usr/include/boost/optional/optional.hpp:775:18:   required from ‘class boost::optional_detail::optional_base<Pending::Pending<GameRules> >’
/usr/include/boost/optional/optional.hpp:850:7:   required from ‘class boost::optional<Pending::Pending<GameRules> >’
/<<PKGBUILDDIR>>/parse/../util/GameRules.h:157:83:   required from here
/usr/include/c++/11/future:769:21: error: static assertion failed: result type must be destructible
  769 |       static_assert(is_destructible<_Res>{},
      |                     ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/11/future:769:21: note: ‘std::is_destructible<GameRules>()’ evaluates to false
/usr/include/c++/11/future: In instantiation of ‘class std::shared_future<GameRules>’:
/usr/include/c++/11/future:788:66:   required from ‘std::future<_Res>::future(std::future<_Res>&&) [with _Res = GameRules]’
/usr/include/boost/optional/optional.hpp:409:8:   required from ‘void boost::optional_detail::optional_base<T>::construct(boost::optional_detail::optional_base<T>::rval_reference_type) [with T = std::future<GameRules>; boost::optional_detail::optional_base<T>::rval_reference_type = std::future<GameRules>&&]’
/usr/include/boost/optional/optional.hpp:211:18:   required from ‘boost::optional_detail::optional_base<T>::optional_base(boost::optional_detail::optional_base<T>&&) [with T = std::future<GameRules>]’
/usr/include/boost/optional/optional.hpp:975:5:   required from ‘Pending::Pending<T>::Pending(Pending::Pending<T>&&) [with T = GameRules]’
/usr/include/boost/optional/optional.hpp:409:8:   required from ‘void boost::optional_detail::optional_base<T>::construct(boost::optional_detail::optional_base<T>::rval_reference_type) [with T = Pending::Pending<GameRules>; boost::optional_detail::optional_base<T>::rval_reference_type = Pending::Pending<GameRules>&&]’
/usr/include/boost/optional/optional.hpp:211:18:   required from ‘boost::optional_detail::optional_base<T>::optional_base(boost::optional_detail::optional_base<T>&&) [with T = Pending::Pending<GameRules>]’
/usr/include/boost/optional/optional.hpp:975:5:   required from here
/usr/include/c++/11/future:906:21: error: static assertion failed: result type must be destructible
  906 |       static_assert(is_destructible<_Res>{},
      |                     ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/11/future:906:21: note: ‘std::is_destructible<GameRules>()’ evaluates to false
make[3]: *** [CMakeFiles/freeorionparseobj.dir/build.make:397: CMakeFiles/freeorionparseobj.dir/parse/GameRulesParser.cpp.o] Error 1
make[3]: *** Waiting for unfinished jobs....
make[3]: Leaving directory '/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu'
make[2]: *** [CMakeFiles/Makefile2:632: CMakeFiles/freeorionparseobj.dir/all] Error 2
make[2]: Leaving directory '/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu'
make[1]: *** [Makefile:174: all] Error 2
make[1]: Leaving directory '/<<PKGBUILDDIR>>/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:21: build] Error 25
dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2



More information about the Pkg-games-devel mailing list