Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] Build failure on qt5webkit
@ 2025-07-15 12:42 Alexis Lothoré via buildroot
  2025-07-16  6:19 ` Philipp Ludwig
  2025-12-28 19:38 ` Thomas Petazzoni via buildroot
  0 siblings, 2 replies; 4+ messages in thread
From: Alexis Lothoré via buildroot @ 2025-07-15 12:42 UTC (permalink / raw)
  To: buildroot

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2025-12-28 19:38 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-15 12:42 [Buildroot] Build failure on qt5webkit Alexis Lothoré via buildroot
2025-07-16  6:19 ` Philipp Ludwig
2025-07-16 16:21   ` Alexis Lothoré via buildroot
2025-12-28 19:38 ` Thomas Petazzoni via buildroot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox