All of 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 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.