Skip to content

Build failure with gcc 15.2.1 #130

@mnhauke

Description

@mnhauke

master fails to build on openSUSE Tumbleweed (gcc 15.2.1)

[   87s] cd /home/abuild/rpmbuild/BUILD/crogine-0-build/crogine-golfv1.21.2+git20251004/build/crogine && /usr/bin/c++ -DAL_AUDIO -DCRO_BUILD -Dcrogine_EXPORTS -I/usr/include/SDL2 -I/usr/include/freetype2 -I/usr/include/opus -I/home/abuild/rpmbuild/BUILD/crogine-0-build/crogine-golfv1.21.2+git20251004/crogine/include -I/usr/include/AL -Wall -Wno-comment -std=c++17 -O3 -DNDEBUG -std=gnu++17 -fPIC -MD -MT crogine/CMakeFiles/crogine.dir/src/ecs/systems/ModelRenderer.cpp.o -MF CMakeFiles/crogine.dir/src/ecs/systems/ModelRenderer.cpp.o.d -o CMakeFiles/crogine.dir/src/ecs/systems/ModelRenderer.cpp.o -c /home/abuild/rpmbuild/BUILD/crogine-0-build/crogine-golfv1.21.2+git20251004/crogine/src/ecs/systems/ModelRenderer.cpp
[   88s] In file included from /usr/include/c++/15/bits/stl_algobase.h:71,
[   88s]                  from /usr/include/c++/15/string:53,
[   88s]                  from /home/abuild/rpmbuild/BUILD/crogine-0-build/crogine-golfv1.21.2+git20251004/crogine/src/ecs/systems/../../graphics/shaders/Unlit.hpp:32,
[   88s]                  from /home/abuild/rpmbuild/BUILD/crogine-0-build/crogine-golfv1.21.2+git20251004/crogine/src/ecs/systems/ModelRenderer.cpp:30:
[   88s] /usr/include/c++/15/bits/predefined_ops.h: In instantiation of ‘bool __gnu_cxx::__ops::_Val_comp_iter<_Compare>::operator()(_Value&, _Iterator) [with _Value = const std::pair<cro::Entity, cro::SortData>; _Iterator = __gnu_cxx::__normal_iterator<std::pair<cro::Entity, cro::SortData>*, std::vector<std::pair<cro::Entity, cro::SortData> > >; _Compare = cro::ModelRenderer::updateDrawList(cro::Entity)::<lambda(cro::MaterialPair&, cro::MaterialPair&)>]’:
[   88s] /usr/include/c++/15/bits/stl_algo.h:1994:14:   required from ‘_ForwardIterator std::__upper_bound(_ForwardIterator, _ForwardIterator, const _Tp&, _Compare) [with _ForwardIterator = __gnu_cxx::__normal_iterator<pair<cro::Entity, cro::SortData>*, vector<pair<cro::Entity, cro::SortData> > >; _Tp = pair<cro::Entity, cro::SortData>; _Compare = __gnu_cxx::__ops::_Val_comp_iter<cro::ModelRenderer::updateDrawList(cro::Entity)::<lambda(cro::MaterialPair&, cro::MaterialPair&)> >]’
[   88s]  1994 |           if (__comp(__val, __middle))
[   88s]       |               ~~~~~~^~~~~~~~~~~~~~~~~
[   88s] /usr/include/c++/15/bits/stl_algo.h:2061:32:   required from ‘_FIter std::upper_bound(_FIter, _FIter, const _Tp&, _Compare) [with _FIter = __gnu_cxx::__normal_iterator<pair<cro::Entity, cro::SortData>*, vector<pair<cro::Entity, cro::SortData> > >; _Tp = pair<cro::Entity, cro::SortData>; _Compare = cro::ModelRenderer::updateDrawList(cro::Entity)::<lambda(cro::MaterialPair&, cro::MaterialPair&)>]’
[   88s]  2061 |       return std::__upper_bound(__first, __last, __val,
[   88s]       |              ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
[   88s]  2062 |                                 __gnu_cxx::__ops::__val_comp_iter(__comp));
[   88s]       |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[   88s] /usr/include/c++/15/pstl/parallel_backend_tbb.h:1030:40:   required from ‘__pstl::__tbb_backend::__task* __pstl::__tbb_backend::__merge_func<_RandomAccessIterator1, _RandomAccessIterator2, _Compare, _Cleanup, _LeafMerge>::split_merging(__pstl::__tbb_backend::__task*) [with _RandomAccessIterator1 = __gnu_cxx::__normal_iterator<std::pair<cro::Entity, cro::SortData>*, std::vector<std::pair<cro::Entity, cro::SortData> > >; _RandomAccessIterator2 = std::pair<cro::Entity, cro::SortData>*; _Compare = cro::ModelRenderer::updateDrawList(cro::Entity)::<lambda(cro::MaterialPair&, cro::MaterialPair&)>; _Cleanup = __pstl::__utils::__serial_destroy; _LeafMerge = __pstl::__utils::__serial_move_merge]’
[   88s]  1030 |                 __xm = std::upper_bound(_M_x_beg + _M_xs, _M_x_beg + _M_xe, *(_M_x_beg + __ym), _M_comp) - _M_x_beg;
[   88s]       |                        ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[   88s] /usr/include/c++/15/pstl/parallel_backend_tbb.h:939:20:   required from ‘__pstl::__tbb_backend::__task* __pstl::__tbb_backend::__merge_func<_RandomAccessIterator1, _RandomAccessIterator2, _Compare, _Cleanup, _LeafMerge>::merge_ranges(__pstl::__tbb_backend::__task*) [with _RandomAccessIterator1 = __gnu_cxx::__normal_iterator<std::pair<cro::Entity, cro::SortData>*, std::vector<std::pair<cro::Entity, cro::SortData> > >; _RandomAccessIterator2 = std::pair<cro::Entity, cro::SortData>*; _Compare = cro::ModelRenderer::updateDrawList(cro::Entity)::<lambda(cro::MaterialPair&, cro::MaterialPair&)>; _Cleanup = __pstl::__utils::__serial_destroy; _LeafMerge = __pstl::__utils::__serial_move_merge]’
[   88s]   939 |             return split_merging(__self);
[   88s]       |                    ^~~~~~~~~~~~~
[   88s] /usr/include/c++/15/pstl/parallel_backend_tbb.h:1069:16:   required from ‘__pstl::__tbb_backend::__task* __pstl::__tbb_backend::__merge_func<_RandomAccessIterator1, _RandomAccessIterator2, _Compare, _Cleanup, _LeafMerge>::operator()(__pstl::__tbb_backend::__task*) [with _RandomAccessIterator1 = __gnu_cxx::__normal_iterator<std::pair<cro::Entity, cro::SortData>*, std::vector<std::pair<cro::Entity, cro::SortData> > >; _RandomAccessIterator2 = std::pair<cro::Entity, cro::SortData>*; _Compare = cro::ModelRenderer::updateDrawList(cro::Entity)::<lambda(cro::MaterialPair&, cro::MaterialPair&)>; _Cleanup = __pstl::__utils::__serial_destroy; _LeafMerge = __pstl::__utils::__serial_move_merge]’
[   88s]  1069 |         return merge_ranges(__self);
[   88s]       |                ^~~~~~~~~~~~
[   88s] /usr/include/c++/15/pstl/parallel_backend_tbb.h:630:33:   required from ‘__pstl::__tbb_backend::__task* __pstl::__tbb_backend::__func_task<_Func>::execute(tbb::detail::d1::execution_data&) [with _Func = __pstl::__tbb_backend::__merge_func<__gnu_cxx::__normal_iterator<std::pair<cro::Entity, cro::SortData>*, std::vector<std::pair<cro::Entity, cro::SortData> > >, std::pair<cro::Entity, cro::SortData>*, cro::ModelRenderer::updateDrawList(cro::Entity)::<lambda(cro::MaterialPair&, cro::MaterialPair&)>, __pstl::__utils::__serial_destroy, __pstl::__utils::__serial_move_merge>]’
[   88s]   630 |         __task* __next = _M_func(this);
[   88s]       |                          ~~~~~~~^~~~~~
[   88s] /usr/include/c++/15/pstl/parallel_backend_tbb.h:626:5:   required from here
[   88s]   626 |     execute(tbb::detail::d1::execution_data& __ed) override
[   88s]       |     ^~~~~~~
[   88s] /usr/include/c++/15/bits/predefined_ops.h:240:30: error: no match for call to ‘(cro::ModelRenderer::updateDrawList(cro::Entity)::<lambda(cro::MaterialPair&, cro::MaterialPair&)>) (const std::pair<cro::Entity, cro::SortData>&, std::pair<cro::Entity, cro::SortData>&)’
[   88s]   240 |         { return bool(_M_comp(__val, *__it)); }
[   88s]       |                       ~~~~~~~^~~~~~~~~~~~~~
[   88s] /home/abuild/rpmbuild/BUILD/crogine-0-build/crogine-golfv1.21.2+git20251004/crogine/src/ecs/systems/ModelRenderer.cpp:236:14: note: there are 2 candidates
[   88s]   236 |             [](MaterialPair& a, MaterialPair& b)
[   88s]       |              ^
[   88s] /usr/include/c++/15/bits/predefined_ops.h:240:30: note: candidate 1: ‘bool (*)(cro::MaterialPair&, cro::MaterialPair&)’ {aka ‘bool (*)(std::pair<cro::Entity, cro::SortData>&, std::pair<cro::Entity, cro::SortData>&)’} (conversion)
[   88s]   240 |         { return bool(_M_comp(__val, *__it)); }
[   88s]       |                       ~~~~~~~^~~~~~~~~~~~~~
[   88s] /usr/include/c++/15/bits/predefined_ops.h:240:30: note: conversion of argument 2 would be ill-formed:
[   88s] /usr/include/c++/15/bits/predefined_ops.h:240:30: error: binding reference of type ‘cro::MaterialPair&’ {aka ‘std::pair<cro::Entity, cro::SortData>&’} to ‘const std::pair<cro::Entity, cro::SortData>’ discards qualifiers
[   88s] /home/abuild/rpmbuild/BUILD/crogine-0-build/crogine-golfv1.21.2+git20251004/crogine/src/ecs/systems/ModelRenderer.cpp:236:13: note: candidate 2: ‘cro::ModelRenderer::updateDrawList(cro::Entity)::<lambda(cro::MaterialPair&, cro::MaterialPair&)>’ (near match)
[   88s]   236 |             [](MaterialPair& a, MaterialPair& b)
[   88s]       |             ^
[   88s] /home/abuild/rpmbuild/BUILD/crogine-0-build/crogine-golfv1.21.2+git20251004/crogine/src/ecs/systems/ModelRenderer.cpp:236:13: note: conversion of argument 1 would be ill-formed:
[   88s] /home/abuild/rpmbuild/BUILD/crogine-0-build/crogine-golfv1.21.2+git20251004/crogine/src/ecs/systems/ModelRenderer.cpp:236:13: error: binding reference of type ‘cro::MaterialPair&’ {aka ‘std::pair<cro::Entity, cro::SortData>&’} to ‘const std::pair<cro::Entity, cro::SortData>’ discards qualifiers
[   88s] /usr/include/c++/15/bits/predefined_ops.h: In instantiation of ‘bool __gnu_cxx::__ops::_Val_comp_iter<_Compare>::operator()(_Value&, _Iterator) [with _Value = const std::pair<cro::Entity, cro::SortData>; _Iterator = std::pair<cro::Entity, cro::SortData>*; _Compare = cro::ModelRenderer::updateDrawList(cro::Entity)::<lambda(cro::MaterialPair&, cro::MaterialPair&)>]’:
[   88s] /usr/include/c++/15/bits/stl_algo.h:1994:14:   required from ‘_ForwardIterator std::__upper_bound(_ForwardIterator, _ForwardIterator, const _Tp&, _Compare) [with _ForwardIterator = pair<cro::Entity, cro::SortData>*; _Tp = pair<cro::Entity, cro::SortData>; _Compare = __gnu_cxx::__ops::_Val_comp_iter<cro::ModelRenderer::updateDrawList(cro::Entity)::<lambda(cro::MaterialPair&, cro::MaterialPair&)> >]’
[   88s]  1994 |           if (__comp(__val, __middle))
[   88s]       |               ~~~~~~^~~~~~~~~~~~~~~~~
[   88s] /usr/include/c++/15/bits/stl_algo.h:2061:32:   required from ‘_FIter std::upper_bound(_FIter, _FIter, const _Tp&, _Compare) [with _FIter = pair<cro::Entity, cro::SortData>*; _Tp = pair<cro::Entity, cro::SortData>; _Compare = cro::ModelRenderer::updateDrawList(cro::Entity)::<lambda(cro::MaterialPair&, cro::MaterialPair&)>]’
[   88s]  2061 |       return std::__upper_bound(__first, __last, __val,
[   88s]       |              ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
[   88s]  2062 |                                 __gnu_cxx::__ops::__val_comp_iter(__comp));
[   88s]       |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[   88s] /usr/include/c++/15/pstl/parallel_backend_tbb.h:1032:40:   required from ‘__pstl::__tbb_backend::__task* __pstl::__tbb_backend::__merge_func<_RandomAccessIterator1, _RandomAccessIterator2, _Compare, _Cleanup, _LeafMerge>::split_merging(__pstl::__tbb_backend::__task*) [with _RandomAccessIterator1 = __gnu_cxx::__normal_iterator<std::pair<cro::Entity, cro::SortData>*, std::vector<std::pair<cro::Entity, cro::SortData> > >; _RandomAccessIterator2 = std::pair<cro::Entity, cro::SortData>*; _Compare = cro::ModelRenderer::updateDrawList(cro::Entity)::<lambda(cro::MaterialPair&, cro::MaterialPair&)>; _Cleanup = __pstl::__utils::__serial_destroy; _LeafMerge = __pstl::__utils::__serial_move_merge]’
[   88s]  1032 |                 __xm = std::upper_bound(_M_z_beg + _M_xs, _M_z_beg + _M_xe, *(_M_z_beg + __ym), _M_comp) - _M_z_beg;
[   88s]       |                        ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[   88s] /usr/include/c++/15/pstl/parallel_backend_tbb.h:939:20:   required from ‘__pstl::__tbb_backend::__task* __pstl::__tbb_backend::__merge_func<_RandomAccessIterator1, _RandomAccessIterator2, _Compare, _Cleanup, _LeafMerge>::merge_ranges(__pstl::__tbb_backend::__task*) [with _RandomAccessIterator1 = __gnu_cxx::__normal_iterator<std::pair<cro::Entity, cro::SortData>*, std::vector<std::pair<cro::Entity, cro::SortData> > >; _RandomAccessIterator2 = std::pair<cro::Entity, cro::SortData>*; _Compare = cro::ModelRenderer::updateDrawList(cro::Entity)::<lambda(cro::MaterialPair&, cro::MaterialPair&)>; _Cleanup = __pstl::__utils::__serial_destroy; _LeafMerge = __pstl::__utils::__serial_move_merge]’
[   88s]   939 |             return split_merging(__self);
[   88s]       |                    ^~~~~~~~~~~~~
[   88s] /usr/include/c++/15/pstl/parallel_backend_tbb.h:1069:16:   required from ‘__pstl::__tbb_backend::__task* __pstl::__tbb_backend::__merge_func<_RandomAccessIterator1, _RandomAccessIterator2, _Compare, _Cleanup, _LeafMerge>::operator()(__pstl::__tbb_backend::__task*) [with _RandomAccessIterator1 = __gnu_cxx::__normal_iterator<std::pair<cro::Entity, cro::SortData>*, std::vector<std::pair<cro::Entity, cro::SortData> > >; _RandomAccessIterator2 = std::pair<cro::Entity, cro::SortData>*; _Compare = cro::ModelRenderer::updateDrawList(cro::Entity)::<lambda(cro::MaterialPair&, cro::MaterialPair&)>; _Cleanup = __pstl::__utils::__serial_destroy; _LeafMerge = __pstl::__utils::__serial_move_merge]’
[   88s]  1069 |         return merge_ranges(__self);
[   88s]       |                ^~~~~~~~~~~~
[   88s] /usr/include/c++/15/pstl/parallel_backend_tbb.h:630:33:   required from ‘__pstl::__tbb_backend::__task* __pstl::__tbb_backend::__func_task<_Func>::execute(tbb::detail::d1::execution_data&) [with _Func = __pstl::__tbb_backend::__merge_func<__gnu_cxx::__normal_iterator<std::pair<cro::Entity, cro::SortData>*, std::vector<std::pair<cro::Entity, cro::SortData> > >, std::pair<cro::Entity, cro::SortData>*, cro::ModelRenderer::updateDrawList(cro::Entity)::<lambda(cro::MaterialPair&, cro::MaterialPair&)>, __pstl::__utils::__serial_destroy, __pstl::__utils::__serial_move_merge>]’
[   88s]   630 |         __task* __next = _M_func(this);
[   88s]       |                          ~~~~~~~^~~~~~
[   88s] /usr/include/c++/15/pstl/parallel_backend_tbb.h:626:5:   required from here
[   88s]   626 |     execute(tbb::detail::d1::execution_data& __ed) override
[   88s]       |     ^~~~~~~
[   88s] /usr/include/c++/15/bits/predefined_ops.h:240:30: error: no match for call to ‘(cro::ModelRenderer::updateDrawList(cro::Entity)::<lambda(cro::MaterialPair&, cro::MaterialPair&)>) (const std::pair<cro::Entity, cro::SortData>&, std::pair<cro::Entity, cro::SortData>&)’
[   88s]   240 |         { return bool(_M_comp(__val, *__it)); }
[   88s]       |                       ~~~~~~~^~~~~~~~~~~~~~
[   88s] /home/abuild/rpmbuild/BUILD/crogine-0-build/crogine-golfv1.21.2+git20251004/crogine/src/ecs/systems/ModelRenderer.cpp:236:14: note: there are 2 candidates
[   88s]   236 |             [](MaterialPair& a, MaterialPair& b)
[   88s]       |              ^
[   88s] /usr/include/c++/15/bits/predefined_ops.h:240:30: note: candidate 1: ‘bool (*)(cro::MaterialPair&, cro::MaterialPair&)’ {aka ‘bool (*)(std::pair<cro::Entity, cro::SortData>&, std::pair<cro::Entity, cro::SortData>&)’} (conversion)
[   88s]   240 |         { return bool(_M_comp(__val, *__it)); }
[   88s]       |                       ~~~~~~~^~~~~~~~~~~~~~
[   88s] /usr/include/c++/15/bits/predefined_ops.h:240:30: note: conversion of argument 2 would be ill-formed:
[   88s] /usr/include/c++/15/bits/predefined_ops.h:240:30: error: binding reference of type ‘cro::MaterialPair&’ {aka ‘std::pair<cro::Entity, cro::SortData>&’} to ‘const std::pair<cro::Entity, cro::SortData>’ discards qualifiers
[   88s] /home/abuild/rpmbuild/BUILD/crogine-0-build/crogine-golfv1.21.2+git20251004/crogine/src/ecs/systems/ModelRenderer.cpp:236:13: note: candidate 2: ‘cro::ModelRenderer::updateDrawList(cro::Entity)::<lambda(cro::MaterialPair&, cro::MaterialPair&)>’ (near match)
[   88s]   236 |             [](MaterialPair& a, MaterialPair& b)
[   88s]       |             ^
[   88s] /home/abuild/rpmbuild/BUILD/crogine-0-build/crogine-golfv1.21.2+git20251004/crogine/src/ecs/systems/ModelRenderer.cpp:236:13: note: conversion of argument 1 would be ill-formed:
[   88s] /home/abuild/rpmbuild/BUILD/crogine-0-build/crogine-golfv1.21.2+git20251004/crogine/src/ecs/systems/ModelRenderer.cpp:236:13: error: binding reference of type ‘cro::MaterialPair&’ {aka ‘std::pair<cro::Entity, cro::SortData>&’} to ‘const std::pair<cro::Entity, cro::SortData>’ discards qualifiers
[   88s] /usr/include/c++/15/bits/predefined_ops.h: In instantiation of ‘bool __gnu_cxx::__ops::_Iter_comp_val<_Compare>::operator()(_Iterator, _Value&) [with _Iterator = __gnu_cxx::__normal_iterator<std::pair<cro::Entity, cro::SortData>*, std::vector<std::pair<cro::Entity, cro::SortData> > >; _Value = const std::pair<cro::Entity, cro::SortData>; _Compare = cro::ModelRenderer::updateDrawList(cro::Entity)::<lambda(cro::MaterialPair&, cro::MaterialPair&)>]’:
[   88s] /usr/include/c++/15/bits/stl_algobase.h:1509:14:   required from ‘_ForwardIterator std::__lower_bound(_ForwardIterator, _ForwardIterator, const _Tp&, _Compare) [with _ForwardIterator = __gnu_cxx::__normal_iterator<pair<cro::Entity, cro::SortData>*, vector<pair<cro::Entity, cro::SortData> > >; _Tp = pair<cro::Entity, cro::SortData>; _Compare = __gnu_cxx::__ops::_Iter_comp_val<cro::ModelRenderer::updateDrawList(cro::Entity)::<lambda(cro::MaterialPair&, cro::MaterialPair&)> >]’
[   88s]  1509 |           if (__comp(__middle, __val))
...

full buildlog:
crogine-openSUSE-Tumbleweed-buildlog.txt

$ gcc --version
gcc (SUSE Linux) 15.2.1 20251006
Copyright (C) 2025 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions