From: "Alexis Lothoré via buildroot" <buildroot@buildroot.org>
To: <buildroot@buildroot.org>
Subject: [Buildroot] Build failure on qt5webkit
Date: Tue, 15 Jul 2025 14:42:21 +0200 [thread overview]
Message-ID: <DBCMY08KG84D.1F2PPB3UFPRK8@bootlin.com> (raw)
Hello Buildroot community,
I am facing a build issue with qt5webkit package on buildroot 2025.02.x.
The build outputs the following error:
/home/alexis/src/buildroot/output/host/opt/ext-toolchain/arm-buildroot-linux-gnueabihf/include/c++/14.2.0/type_traits:1237:52: error: non-constant condition for static assertion
1237 | static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
/home/alexis/src/buildroot/output/host/opt/ext-toolchain/arm-buildroot-linux-gnueabihf/include/c++/14.2.0/type_traits:1237:52: error: ‘constexpr std::true_type std::__is_complete_or_unbounded(__type_identity<_Tp>) [with _Tp = WTF::Vector<unsigned char>; unsigned int <anonymous> = 12; true_type = true_type]’ used before its definition
/home/alexis/src/buildroot/output/host/opt/ext-toolchain/arm-buildroot-linux-gnueabihf/include/c++/14.2.0/type_traits: In instantiation of ‘struct std::is_move_assignable<WebCore::ContentSecurityPolicyHashAlgorithm>’:
/home/alexis/src/buildroot/output/host/opt/ext-toolchain/arm-buildroot-linux-gnueabihf/include/c++/14.2.0/type_traits:183:35: required by substitution of ‘template<class ... _Bn> std::__detail::__first_t<std::integral_constant<bool, true>, typename std::enable_if<(bool)(_Bn::value), void>::type ...> std::__detail::__and_fn(int) [with _Bn = {std::is_move_assignable<WebCore::ContentSecurityPolicyHashAlgorithm>, std::is_move_assignable<WTF::Vector<unsigned char, 0, WTF::CrashOnOverflow, 16> >}]’
183 | __enable_if_t<bool(_Bn::value)>...>;
| ^~~~~
/home/alexis/src/buildroot/output/host/opt/ext-toolchain/arm-buildroot-linux-gnueabihf/include/c++/14.2.0/type_traits:199:42: required from ‘struct std::__and_<std::is_move_assignable<WebCore::ContentSecurityPolicyHashAlgorithm>, std::is_move_assignable<WTF::Vector<unsigned char, 0, WTF::CrashOnOverflow, 16> > >’
199 | : decltype(__detail::__and_fn<_Bn...>(0))
| ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/home/alexis/src/buildroot/output/host/opt/ext-toolchain/arm-buildroot-linux-gnueabihf/include/c++/14.2.0/bits/stl_pair.h:932:38: required from ‘struct std::pair<WebCore::ContentSecurityPolicyHashAlgorithm, WTF::Vector<unsigned char> >’
932 | is_move_assignable<_T2>>::value,
| ^~~~~
/home/alexis/src/buildroot/output/build/qt5webkit-5.212.0-alpha4/Source/WebCore/page/csp/ContentSecurityPolicy.cpp:235:56: required from here
235 | if ((policy.get()->*allowed)(std::make_pair(algorithm, digest)))
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
/home/alexis/src/buildroot/output/host/opt/ext-toolchain/arm-buildroot-linux-gnueabihf/include/c++/14.2.0/type_traits:1246:52: error: non-constant condition for static assertion
1246 | static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
/home/alexis/src/buildroot/output/host/opt/ext-toolchain/arm-buildroot-linux-gnueabihf/include/c++/14.2.0/type_traits:1246:52: error: ‘constexpr std::true_type std::__is_complete_or_unbounded(__type_identity<_Tp>) [with _Tp = WebCore::ContentSecurityPolicyHashAlgorithm; unsigned int <anonymous> = 4; true_type = true_type]’ used before its definition
/home/alexis/src/buildroot/output/host/opt/ext-toolchain/arm-buildroot-linux-gnueabihf/include/c++/14.2.0/type_traits: In instantiation of ‘struct std::is_move_assignable<WTF::Vector<unsigned char> >’:
/home/alexis/src/buildroot/output/host/opt/ext-toolchain/arm-buildroot-linux-gnueabihf/include/c++/14.2.0/type_traits:183:35: required by substitution of ‘template<class ... _Bn> std::__detail::__first_t<std::integral_constant<bool, true>, typename std::enable_if<(bool)(_Bn::value), void>::type ...> std::__detail::__and_fn(int) [with _Bn = {std::is_move_assignable<WebCore::ContentSecurityPolicyHashAlgorithm>, std::is_move_assignable<WTF::Vector<unsigned char, 0, WTF::CrashOnOverflow, 16> >}]’
183 | __enable_if_t<bool(_Bn::value)>...>;
| ^~~~~
/home/alexis/src/buildroot/output/host/opt/ext-toolchain/arm-buildroot-linux-gnueabihf/include/c++/14.2.0/type_traits:199:42: required from ‘struct std::__and_<std::is_move_assignable<WebCore::ContentSecurityPolicyHashAlgorithm>, std::is_move_assignable<WTF::Vector<unsigned char, 0, WTF::CrashOnOverflow, 16> > >’
199 | : decltype(__detail::__and_fn<_Bn...>(0))
| ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/home/alexis/src/buildroot/output/host/opt/ext-toolchain/arm-buildroot-linux-gnueabihf/include/c++/14.2.0/bits/stl_pair.h:932:38: required from ‘struct std::pair<WebCore::ContentSecurityPolicyHashAlgorithm, WTF::Vector<unsigned char> >’
932 | is_move_assignable<_T2>>::value,
| ^~~~~
/home/alexis/src/buildroot/output/build/qt5webkit-5.212.0-alpha4/Source/WebCore/page/csp/ContentSecurityPolicy.cpp:235:56: required from here
235 | if ((policy.get()->*allowed)(std::make_pair(algorithm, digest)))
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
/home/alexis/src/buildroot/output/host/opt/ext-toolchain/arm-buildroot-linux-gnueabihf/include/c++/14.2.0/type_traits:1246:52: error: non-constant condition for static assertion
1246 | static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
/home/alexis/src/buildroot/output/host/opt/ext-toolchain/arm-buildroot-linux-gnueabihf/include/c++/14.2.0/type_traits:1246:52: error: ‘constexpr std::true_type std::__is_complete_or_unbounded(__type_identity<_Tp>) [with _Tp = WTF::Vector<unsigned char>; unsigned int <anonymous> = 12; true_type = true_type]’ used before its definition
The issue can be replicated with the following minimal defconfig:
BR2_arm=y
BR2_cortex_a9=y
BR2_ARM_ENABLE_NEON=y
BR2_ARM_ENABLE_VFP=y
BR2_ARM_FPU_NEON=y
BR2_TOOLCHAIN_EXTERNAL=y
BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y
BR2_PACKAGE_QT5=y
BR2_PACKAGE_QT5WEBKIT=y
I am not very fluent in C++, so I struggle to fix it. Based on the build
logs, I guess it relates to some missing some header include
(ContentSecurityPolicyHash.h, containing the definition for
ContentSecurityPolicyHashAlgorithm definition ?), so I tried to sprinkle some
includes in the modules consuming it, but without success so far. I also
took a look at both webkit and qtwebkit upstream sources, hoping that the
issue could have been observed and fixed, but I found nothing yet (and
qtwebkit does not look alive, based on latest commits dates).
I am posting this issue here in case anyone has already encountered it and
found a fix that could be properly integrated in buildroot, but otherwise I
guess the next step will be to notify the upstream webkit community.
Thanks,
Alexis
--
Alexis Lothoré, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
next reply other threads:[~2025-07-15 12:42 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-15 12:42 Alexis Lothoré via buildroot [this message]
2025-07-16 6:19 ` [Buildroot] Build failure on qt5webkit Philipp Ludwig
2025-07-16 16:21 ` Alexis Lothoré via buildroot
2025-12-28 19:38 ` Thomas Petazzoni via buildroot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=DBCMY08KG84D.1F2PPB3UFPRK8@bootlin.com \
--to=buildroot@buildroot.org \
--cc=alexis.lothore@bootlin.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.