In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/include/g++-v11/map:60, from /var/tmp/portage/dev-games/ogre-1.9.0-r3/work/ogre-1.9.0/OgreMain/include/OgreStdHeaders.h:32, from /var/tmp/portage/dev-games/ogre-1.9.0-r3/work/ogre-1.9.0/OgreMain/include/OgrePrerequisites.h:325, from /var/tmp/portage/dev-games/ogre-1.9.0-r3/work/ogre-1.9.0/OgreMain/include/OgrePlugin.h:31, from /var/tmp/portage/dev-games/ogre-1.9.0-r3/work/ogre-1.9.0/Samples/Common/include/SamplePlugin.h:31, from /var/tmp/portage/dev-games/ogre-1.9.0-r3/work/ogre-1.9.0/Samples/ParticleFX/src/ParticleFX.cpp:1: /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/include/g++-v11/bits/stl_tree.h: In instantiation of ‘static const _Key& std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_S_key(std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Const_Link_type) [with _Key = OgreBites::Sample*; _Val = OgreBites::Sample*; _KeyOfValue = std::_Identity<OgreBites::Sample*>; _Compare = OgreBites::Sample::Comparer; _Alloc = std::allocator<OgreBites::Sample*>; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Const_Link_type = const std::_Rb_tree_node<OgreBites::Sample*>*]’: /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/include/g++-v11/bits/stl_tree.h:2069:47: required from ‘std::pair<std::_Rb_tree_node_base*, std::_Rb_tree_node_base*> std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_get_insert_unique_pos(const key_type&) [with _Key = OgreBites::Sample*; _Val = OgreBites::Sample*; _KeyOfValue = std::_Identity<OgreBites::Sample*>; _Compare = OgreBites::Sample::Comparer; _Alloc = std::allocator<OgreBites::Sample*>; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::key_type = OgreBites::Sample*]’ /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/include/g++-v11/bits/stl_tree.h:2122:4: required from ‘std::pair<std::_Rb_tree_iterator<_Val>, bool> std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_insert_unique(_Arg&&) [with _Arg = OgreBites::Sample* const&; _Key = OgreBites::Sample*; _Val = OgreBites::Sample*; _KeyOfValue = std::_Identity<OgreBites::Sample*>; _Compare = OgreBites::Sample::Comparer; _Alloc = std::allocator<OgreBites::Sample*>]’ /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/include/g++-v11/bits/stl_set.h:512:25: required from ‘std::pair<typename std::_Rb_tree<_Key, _Key, std::_Identity<_Tp>, _Compare, typename __gnu_cxx::__alloc_traits<_Alloc>::rebind<_Key>::other>::const_iterator, bool> std::set<_Key, _Compare, _Alloc>::insert(const value_type&) [with _Key = OgreBites::Sample*; _Compare = OgreBites::Sample::Comparer; _Alloc = std::allocator<OgreBites::Sample*>; typename std::_Rb_tree<_Key, _Key, std::_Identity<_Tp>, _Compare, typename __gnu_cxx::__alloc_traits<_Alloc>::rebind<_Key>::other>::const_iterator = std::_Rb_tree<OgreBites::Sample*, OgreBites::Sample*, std::_Identity<OgreBites::Sample*>, OgreBites::Sample::Comparer, std::allocator<OgreBites::Sample*> >::const_iterator; typename __gnu_cxx::__alloc_traits<_Alloc>::rebind<_Key>::other = std::allocator<OgreBites::Sample*>; typename __gnu_cxx::__alloc_traits<_Alloc>::rebind<_Key> = __gnu_cxx::__alloc_traits<std::allocator<OgreBites::Sample*>, OgreBites::Sample*>::rebind<OgreBites::Sample*>; typename _Alloc::value_type = OgreBites::Sample*; std::set<_Key, _Compare, _Alloc>::value_type = OgreBites::Sample*]’ /var/tmp/portage/dev-games/ogre-1.9.0-r3/work/ogre-1.9.0/Samples/Common/include/SamplePlugin.h:81:19: required from here /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/include/g++-v11/bits/stl_tree.h:770:15: error: static assertion failed: comparison object must be invocable as const 770 | is_invocable_v<const _Compare&, const _Key&, const _Key&>, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/include/g++-v11/bits/stl_tree.h:770:15: note: ‘std::is_invocable_v<const OgreBites::Sample::Comparer&, OgreBites::Sample* const&, OgreBites::Sample* const&>’ evaluates to false Reproducible: Always Steps to Reproduce: 1. Update gcc to recent version 2. Reemerge ogre 3. Build failure Actual Results: Build failure Expected Results: No build failure Previously successfully emerged same version of ogre. Assuming it was updating gcc that broke it.
Please attach the full build.log. Anyway: - USE=-examples may help - ... or CXXFLAGS="... -std=c++14"
Created attachment 759139 [details] build.log.xz Forgot to make the build.log readable by non-root users, and got this when uploading: Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator at webmaster@gentoo.org to inform them of the time this error occurred, and the actions you performed just before this error. More information about this error may be available in the server error log. Apache Server at bugs.gentoo.org Port 443
As a workaround I compile with clang.
You may also compile with gcc 10 but ois and openexr needs to be compiled with gcc-10 too then
(In reply to Samuel Bauer from comment #4) > You may also compile with gcc 10 but ois and openexr needs to be compiled > with gcc-10 too then Or just do what I said..
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=dcefab179a1230eed77c6732e355a1e32edd1950 commit dcefab179a1230eed77c6732e355a1e32edd1950 Author: Sam James <sam@gentoo.org> AuthorDate: 2022-01-16 02:11:48 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2022-01-16 02:11:48 +0000 dev-games/ogre: workaround 1.9.0 USE=examples failure with GCC 11 Fixed properly in newer versions. Closes: https://bugs.gentoo.org/829253 Signed-off-by: Sam James <sam@gentoo.org> dev-games/ogre/ogre-1.9.0-r3.ebuild | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-)