WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
NEW
275872
error: pack expansion contains parameter pack '_UTypes' that has a different length (3 vs. 1) from outer parameter packs
https://bugs.webkit.org/show_bug.cgi?id=275872
Summary
error: pack expansion contains parameter pack '_UTypes' that has a different ...
Michael Catanzaro
Reported
2024-06-25 14:32:26 PDT
I failed to build WebKitGTK 2.45.4 for GNOME. The error message is a little impressive: /usr/bin/../lib/gcc/x86_64-unknown-linux-gnu/13.2.0/../../../../include/c++/13.2.0/tuple:691:2: error: pack expansion contains parameter pack '_UTypes' that has a different length (3 vs. 1) from outer parameter packs 691 | using __convertible = __and_<is_convertible<_UTypes, _Types>...>; | ^~~~~ /usr/bin/../lib/gcc/x86_64-unknown-linux-gnu/13.2.0/../../../../include/c++/13.2.0/tuple:853:27: note: in instantiation of template type alias '__convertible' requested here 853 | = _TCC<true>::template __convertible<_Args...>::value; | ^ /usr/bin/../lib/gcc/x86_64-unknown-linux-gnu/13.2.0/../../../../include/c++/13.2.0/tuple:948:12: note: in instantiation of static data member 'std::tuple<gl::TextureType, unsigned int, unsigned int>::__convertible<const std::tuple<gl::TextureType, unsigned int, unsigned int> &>' requested here 948 | explicit(!__convertible<_UElements&...>) | ^ /usr/bin/../lib/gcc/x86_64-unknown-linux-gnu/13.2.0/../../../../include/c++/13.2.0/type_traits:1108:57: note: while substituting deduced template arguments into function template 'tuple' [with _UElements = <const std::tuple<gl::TextureType, unsigned int, unsigned int> &>] 1108 | = __bool_constant<__is_nothrow_constructible(_Tp, _Args...)>; | ^ /usr/bin/../lib/gcc/x86_64-unknown-linux-gnu/13.2.0/../../../../include/c++/13.2.0/type_traits:1108:57: note: while substituting deduced template arguments into function template 'tuple' [with _NotEmpty = (no value), $1 = (no value)] /usr/bin/../lib/gcc/x86_64-unknown-linux-gnu/13.2.0/../../../../include/c++/13.2.0/type_traits:1114:14: note: in instantiation of template type alias '__is_nothrow_constructible_impl' requested here 1114 | : public __is_nothrow_constructible_impl<_Tp, _Args...> | ^ /usr/bin/../lib/gcc/x86_64-unknown-linux-gnu/13.2.0/../../../../include/c++/13.2.0/bits/alloc_traits.h:534:16: note: (skipping 3 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all) 534 | noexcept(std::is_nothrow_constructible<_Up, _Args...>::value) | ^ /usr/bin/../lib/gcc/x86_64-unknown-linux-gnu/13.2.0/../../../../include/c++/13.2.0/bits/stl_tree.h:614:4: note: in instantiation of function template specialization 'std::_Rb_tree<std::tuple<gl::TextureType, unsigned int, unsigned int>, std::pair<const std::tuple<gl::TextureType, unsigned int, unsigned int>, rx::BlitGL::BlitProgram>, std::_Select1st<std::pair<const std::tuple<gl::TextureType, unsigned int, unsigned int>, rx::BlitGL::BlitProgram>>, std::less<std::tuple<gl::TextureType, unsigned int, unsigned int>>>::_M_construct_node<const std::piecewise_construct_t &, std::tuple<const std::tuple<gl::TextureType, unsigned int, unsigned int> &>, std::tuple<>>' requested here 614 | _M_construct_node(__tmp, std::forward<_Args>(__args)...); | ^ /usr/bin/../lib/gcc/x86_64-unknown-linux-gnu/13.2.0/../../../../include/c++/13.2.0/bits/stl_tree.h:1637:18: note: in instantiation of function template specialization 'std::_Rb_tree<std::tuple<gl::TextureType, unsigned int, unsigned int>, std::pair<const std::tuple<gl::TextureType, unsigned int, unsigned int>, rx::BlitGL::BlitProgram>, std::_Select1st<std::pair<const std::tuple<gl::TextureType, unsigned int, unsigned int>, rx::BlitGL::BlitProgram>>, std::less<std::tuple<gl::TextureType, unsigned int, unsigned int>>>::_M_create_node<const std::piecewise_construct_t &, std::tuple<const std::tuple<gl::TextureType, unsigned int, unsigned int> &>, std::tuple<>>' requested here 1637 | _M_node(__t._M_create_node(std::forward<_Args>(__args)...)) | ^ /usr/bin/../lib/gcc/x86_64-unknown-linux-gnu/13.2.0/../../../../include/c++/13.2.0/bits/stl_tree.h:2462:13: note: in instantiation of function template specialization 'std::_Rb_tree<std::tuple<gl::TextureType, unsigned int, unsigned int>, std::pair<const std::tuple<gl::TextureType, unsigned int, unsigned int>, rx::BlitGL::BlitProgram>, std::_Select1st<std::pair<const std::tuple<gl::TextureType, unsigned int, unsigned int>, rx::BlitGL::BlitProgram>>, std::less<std::tuple<gl::TextureType, unsigned int, unsigned int>>>::_Auto_node::_Auto_node<const std::piecewise_construct_t &, std::tuple<const std::tuple<gl::TextureType, unsigned int, unsigned int> &>, std::tuple<>>' requested here 2462 | _Auto_node __z(*this, std::forward<_Args>(__args)...); | ^ /usr/bin/../lib/gcc/x86_64-unknown-linux-gnu/13.2.0/../../../../include/c++/13.2.0/bits/stl_map.h:513:15: note: in instantiation of function template specialization 'std::_Rb_tree<std::tuple<gl::TextureType, unsigned int, unsigned int>, std::pair<const std::tuple<gl::TextureType, unsigned int, unsigned int>, rx::BlitGL::BlitProgram>, std::_Select1st<std::pair<const std::tuple<gl::TextureType, unsigned int, unsigned int>, rx::BlitGL::BlitProgram>>, std::less<std::tuple<gl::TextureType, unsigned int, unsigned int>>>::_M_emplace_hint_unique<const std::piecewise_construct_t &, std::tuple<const std::tuple<gl::TextureType, unsigned int, unsigned int> &>, std::tuple<>>' requested here 513 | __i = _M_t._M_emplace_hint_unique(__i, std::piecewise_construct, | ^ /buildstream/gnome/sdk/webkit2gtk-4.1.bst/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/BlitGL.cpp:1481:40: note: in instantiation of member function 'std::map<std::tuple<gl::TextureType, unsigned int, unsigned int>, rx::BlitGL::BlitProgram>::operator[]' requested here 1481 | BlitProgram &result = mBlitPrograms[programType]; | ^ Not sure what's wrong yet.
Attachments
Add attachment
proposed patch, testcase, etc.
Michael Catanzaro
Comment 1
2024-06-25 14:37:34 PDT
https://gitlab.gnome.org/GNOME/gnome-build-meta/-/jobs/4014334
Alberto Garcia
Comment 2
2024-06-27 02:08:56 PDT
This only happens with clang, with gcc it works fine
Michael Catanzaro
Comment 3
2024-06-27 06:15:02 PDT
Yes. I have switched the GNOME runtime from Clang back to GCC due to this issue because I cannot reproduce it on my host system with libstdc++ 14. I'm guessing only libstdc++ 13 is affected, but I'm not sure.
Michael Catanzaro
Comment 4
2024-07-02 08:06:10 PDT
By coincidence, GNOME just did its annual upgrade from GCC 13 to GCC 14. This Clang build failure is now fixed with the newer libstdc++.
Michael Catanzaro
Comment 5
2024-09-18 07:37:32 PDT
(In reply to Michael Catanzaro from
comment #4
)
> By coincidence, GNOME just did its annual upgrade from GCC 13 to GCC 14. > This Clang build failure is now fixed with the newer libstdc++.
Turns out this is a regression between 2.44 -> 2.46. I'm going to switch the GNOME 46 build back to GCC rather than Clang so that I can upgrade to 2.46. This means we lose all those Skia optimizations, but it's easier than trying to figure out what this error message goo is trying to tell us.
Michael Catanzaro
Comment 6
2024-09-18 07:40:38 PDT
(In reply to Michael Catanzaro from
comment #4
)
> By coincidence, GNOME just did its annual upgrade from GCC 13 to GCC 14. > This Clang build failure is now fixed with the newer libstdc++.
(For avoidance of doubt, GNOME 47 gets the new libstdc++. GNOME 46 stays on GCC 13 forever, just as Linux distros would do.)
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug