Message ID | 20211218231155.666025-1-fontaine.fabrice@gmail.com |
---|---|
State | Superseded |
Headers | show |
Series | [1/2] package/imagemagick: fix dependency | expand |
Fabrice, All, On 2021-12-19 00:11 +0100, Fabrice Fontaine spake thusly: > host gcc >= 4.9 is needed since bump of harfbuzz to version 3.1.2 in > commit 6861933d22006fbe8c961a41506beac826881f33 to avoid the following > build failure: > > In file included from ../src/hb-serialize.hh:36:0, > from ../src/hb-machinery.hh:37, > from ../src/hb-common.cc:30: > ../src/hb-map.hh:67:18: error: 'is_trivially_copyable' is not a member of 'std' > static_assert (std::is_trivially_copyable<K>::value, ""); > ^ I replied to the wrong mail earlier, so FTR I'll paste it again below. Sorry for the noise... Where did you see that gcc 4.9 had it? I looked at the gcc-4_9_0-release tag in the gcc tree, and it states: $ git grep is_trivially_copyable [...] libstdc++-v3/include/std/type_traits: // is_trivially_copyable (still unimplemented) Whereas gcc 5 has a proper implementation: $ git grep -A1 'is_trivially_copyable' libstdc++-v3/include/std/type_traits libstdc++-v3/include/std/type_traits: // is_trivially_copyable libstdc++-v3/include/std/type_traits- template<typename _Tp> libstdc++-v3/include/std/type_traits: struct is_trivially_copyable libstdc++-v3/include/std/type_traits: : public integral_constant<bool, __is_trivially_copyable(_Tp)> libstdc++-v3/include/std/type_traits- { }; I see that 6861933d2200 (package/harfbuzz: bump to version 3.1.2) stated that the requirement on the gcc version was bumped to 4.9 from 4.8, but I am not sure how that can be... Giulio, where did you get the info that gcc 4.9 was required (and not a higher version)? Regards, Yann E. MORIN. > Fixes: > - http://autobuild.buildroot.org/results/89e1194c1659d7e1af9db8ffe5feee770c448f76 > > Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> > --- > package/imagemagick/Config.in.host | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/package/imagemagick/Config.in.host b/package/imagemagick/Config.in.host > index 671b0995dc..fe0ad9a748 100644 > --- a/package/imagemagick/Config.in.host > +++ b/package/imagemagick/Config.in.host > @@ -17,6 +17,7 @@ if BR2_PACKAGE_HOST_IMAGEMAGICK > config BR2_PACKAGE_HOST_IMAGEMAGICK_SVG > bool "SVG support" > depends on BR2_PACKAGE_HOST_RUSTC_ARCH_SUPPORTS # host-librsvg > + depends on BR2_HOST_GCC_AT_LEAST_4_9 # host-pango -> host-harfbuzz > help > Say 'y' here is you need ImageMagick tools (like convert) > to support SVG. > @@ -24,4 +25,7 @@ config BR2_PACKAGE_HOST_IMAGEMAGICK_SVG > This is not enabled by default, as it brings quite a few > extra dependencies, and thus extra build time. > > +comment "SVG support needs a toolchain w/ host gcc >= 4.9" > + depends on !BR2_HOST_GCC_AT_LEAST_4_9 > + > endif > -- > 2.33.0 > > _______________________________________________ > buildroot mailing list > buildroot@buildroot.org > https://lists.buildroot.org/mailman/listinfo/buildroot
Hi Fabrice, Yann, On 19/12/21 10:10, Yann E. MORIN wrote: > Fabrice, All, > > On 2021-12-19 00:11 +0100, Fabrice Fontaine spake thusly: >> host gcc >= 4.9 is needed since bump of harfbuzz to version 3.1.2 in >> commit 6861933d22006fbe8c961a41506beac826881f33 to avoid the following >> build failure: >> >> In file included from ../src/hb-serialize.hh:36:0, >> from ../src/hb-machinery.hh:37, >> from ../src/hb-common.cc:30: >> ../src/hb-map.hh:67:18: error: 'is_trivially_copyable' is not a member of 'std' >> static_assert (std::is_trivially_copyable<K>::value, ""); >> ^ > > I replied to the wrong mail earlier, so FTR I'll paste it again below. > Sorry for the noise... > > Where did you see that gcc 4.9 had it? I looked at the gcc-4_9_0-release > tag in the gcc tree, and it states: > > $ git grep is_trivially_copyable > [...] > libstdc++-v3/include/std/type_traits: // is_trivially_copyable > (still unimplemented) > > Whereas gcc 5 has a proper implementation: > > $ git grep -A1 'is_trivially_copyable' libstdc++-v3/include/std/type_traits > libstdc++-v3/include/std/type_traits: // is_trivially_copyable > libstdc++-v3/include/std/type_traits- template<typename _Tp> > libstdc++-v3/include/std/type_traits: struct is_trivially_copyable > libstdc++-v3/include/std/type_traits: : public integral_constant<bool, __is_trivially_copyable(_Tp)> > libstdc++-v3/include/std/type_traits- { }; > > I see that 6861933d2200 (package/harfbuzz: bump to version 3.1.2) stated > that the requirement on the gcc version was bumped to 4.9 from 4.8, but > I am not sure how that can be... Indeed now it came out gcc 5 is needed. > Giulio, where did you get the info that gcc 4.9 was required (and not a > higher version)? Honestly on trial and error with target toolchain, because with harfbuzz 3.1.2 case it was only target related. And now I know I need to check libstdc++ git instead(thank you for pointing me). So I've sent the patch for harfbuzz 3.2.0 with both host and target gcc 5 dependency: https://patchwork.ozlabs.org/project/buildroot/patch/20211228002227.15747-1-giulio.benetti@benettiengineering.com/ That should fix the problem. Best regards
Hi Giulio, Le mar. 28 déc. 2021 à 10:44, Giulio Benetti <giulio.benetti@benettiengineering.com> a écrit : > > Hi Fabrice, Yann, > > On 19/12/21 10:10, Yann E. MORIN wrote: > > Fabrice, All, > > > > On 2021-12-19 00:11 +0100, Fabrice Fontaine spake thusly: > >> host gcc >= 4.9 is needed since bump of harfbuzz to version 3.1.2 in > >> commit 6861933d22006fbe8c961a41506beac826881f33 to avoid the following > >> build failure: > >> > >> In file included from ../src/hb-serialize.hh:36:0, > >> from ../src/hb-machinery.hh:37, > >> from ../src/hb-common.cc:30: > >> ../src/hb-map.hh:67:18: error: 'is_trivially_copyable' is not a member of 'std' > >> static_assert (std::is_trivially_copyable<K>::value, ""); > >> ^ > > > > I replied to the wrong mail earlier, so FTR I'll paste it again below. > > Sorry for the noise... > > > > Where did you see that gcc 4.9 had it? I looked at the gcc-4_9_0-release > > tag in the gcc tree, and it states: > > > > $ git grep is_trivially_copyable > > [...] > > libstdc++-v3/include/std/type_traits: // is_trivially_copyable > > (still unimplemented) > > > > Whereas gcc 5 has a proper implementation: > > > > $ git grep -A1 'is_trivially_copyable' libstdc++-v3/include/std/type_traits > > libstdc++-v3/include/std/type_traits: // is_trivially_copyable > > libstdc++-v3/include/std/type_traits- template<typename _Tp> > > libstdc++-v3/include/std/type_traits: struct is_trivially_copyable > > libstdc++-v3/include/std/type_traits: : public integral_constant<bool, __is_trivially_copyable(_Tp)> > > libstdc++-v3/include/std/type_traits- { }; > > > > I see that 6861933d2200 (package/harfbuzz: bump to version 3.1.2) stated > > that the requirement on the gcc version was bumped to 4.9 from 4.8, but > > I am not sure how that can be... > > Indeed now it came out gcc 5 is needed. > > > Giulio, where did you get the info that gcc 4.9 was required (and not a > > higher version)? > > Honestly on trial and error with target toolchain, because with harfbuzz > 3.1.2 case it was only target related. And now I know I need to check > libstdc++ git instead(thank you for pointing me). > > So I've sent the patch for harfbuzz 3.2.0 with both host and target gcc > 5 dependency: > https://patchwork.ozlabs.org/project/buildroot/patch/20211228002227.15747-1-giulio.benetti@benettiengineering.com/ > > That should fix the problem. I assume that you'll send a v3 of the above patch as the v2 doesn't update imagemagick. Am I right? > > Best regards > -- > Giulio Benetti > Benetti Engineering sas > > > Regards, > > Yann E. MORIN. > > > >> Fixes: > >> - http://autobuild.buildroot.org/results/89e1194c1659d7e1af9db8ffe5feee770c448f76 > >> > >> Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> > >> --- > >> package/imagemagick/Config.in.host | 4 ++++ > >> 1 file changed, 4 insertions(+) > >> > >> diff --git a/package/imagemagick/Config.in.host b/package/imagemagick/Config.in.host > >> index 671b0995dc..fe0ad9a748 100644 > >> --- a/package/imagemagick/Config.in.host > >> +++ b/package/imagemagick/Config.in.host > >> @@ -17,6 +17,7 @@ if BR2_PACKAGE_HOST_IMAGEMAGICK > >> config BR2_PACKAGE_HOST_IMAGEMAGICK_SVG > >> bool "SVG support" > >> depends on BR2_PACKAGE_HOST_RUSTC_ARCH_SUPPORTS # host-librsvg > >> + depends on BR2_HOST_GCC_AT_LEAST_4_9 # host-pango -> host-harfbuzz > >> help > >> Say 'y' here is you need ImageMagick tools (like convert) > >> to support SVG. > >> @@ -24,4 +25,7 @@ config BR2_PACKAGE_HOST_IMAGEMAGICK_SVG > >> This is not enabled by default, as it brings quite a few > >> extra dependencies, and thus extra build time. > >> > >> +comment "SVG support needs a toolchain w/ host gcc >= 4.9" > >> + depends on !BR2_HOST_GCC_AT_LEAST_4_9 > >> + > >> endif > >> -- > >> 2.33.0 > >> > >> _______________________________________________ > >> buildroot mailing list > >> buildroot@buildroot.org > >> https://lists.buildroot.org/mailman/listinfo/buildroot > > > Best Regards, Fabrice
On 28/12/21 10:46, Fabrice Fontaine wrote: > Hi Giulio, > > Le mar. 28 déc. 2021 à 10:44, Giulio Benetti > <giulio.benetti@benettiengineering.com> a écrit : >> >> Hi Fabrice, Yann, >> >> On 19/12/21 10:10, Yann E. MORIN wrote: >>> Fabrice, All, >>> >>> On 2021-12-19 00:11 +0100, Fabrice Fontaine spake thusly: >>>> host gcc >= 4.9 is needed since bump of harfbuzz to version 3.1.2 in >>>> commit 6861933d22006fbe8c961a41506beac826881f33 to avoid the following >>>> build failure: >>>> >>>> In file included from ../src/hb-serialize.hh:36:0, >>>> from ../src/hb-machinery.hh:37, >>>> from ../src/hb-common.cc:30: >>>> ../src/hb-map.hh:67:18: error: 'is_trivially_copyable' is not a member of 'std' >>>> static_assert (std::is_trivially_copyable<K>::value, ""); >>>> ^ >>> >>> I replied to the wrong mail earlier, so FTR I'll paste it again below. >>> Sorry for the noise... >>> >>> Where did you see that gcc 4.9 had it? I looked at the gcc-4_9_0-release >>> tag in the gcc tree, and it states: >>> >>> $ git grep is_trivially_copyable >>> [...] >>> libstdc++-v3/include/std/type_traits: // is_trivially_copyable >>> (still unimplemented) >>> >>> Whereas gcc 5 has a proper implementation: >>> >>> $ git grep -A1 'is_trivially_copyable' libstdc++-v3/include/std/type_traits >>> libstdc++-v3/include/std/type_traits: // is_trivially_copyable >>> libstdc++-v3/include/std/type_traits- template<typename _Tp> >>> libstdc++-v3/include/std/type_traits: struct is_trivially_copyable >>> libstdc++-v3/include/std/type_traits: : public integral_constant<bool, __is_trivially_copyable(_Tp)> >>> libstdc++-v3/include/std/type_traits- { }; >>> >>> I see that 6861933d2200 (package/harfbuzz: bump to version 3.1.2) stated >>> that the requirement on the gcc version was bumped to 4.9 from 4.8, but >>> I am not sure how that can be... >> >> Indeed now it came out gcc 5 is needed. >> >>> Giulio, where did you get the info that gcc 4.9 was required (and not a >>> higher version)? >> >> Honestly on trial and error with target toolchain, because with harfbuzz >> 3.1.2 case it was only target related. And now I know I need to check >> libstdc++ git instead(thank you for pointing me). >> >> So I've sent the patch for harfbuzz 3.2.0 with both host and target gcc >> 5 dependency: >> https://patchwork.ozlabs.org/project/buildroot/patch/20211228002227.15747-1-giulio.benetti@benettiengineering.com/ >> >> That should fix the problem. > I assume that you'll send a v3 of the above patch as the v2 doesn't > update imagemagick. Am I right? I was just writing you exactly that :-)! I didn't think about the reverse dependencies of host-harfbuzz. Now I know that too. Thanks a lot for pointing :-)
diff --git a/package/imagemagick/Config.in.host b/package/imagemagick/Config.in.host index 671b0995dc..fe0ad9a748 100644 --- a/package/imagemagick/Config.in.host +++ b/package/imagemagick/Config.in.host @@ -17,6 +17,7 @@ if BR2_PACKAGE_HOST_IMAGEMAGICK config BR2_PACKAGE_HOST_IMAGEMAGICK_SVG bool "SVG support" depends on BR2_PACKAGE_HOST_RUSTC_ARCH_SUPPORTS # host-librsvg + depends on BR2_HOST_GCC_AT_LEAST_4_9 # host-pango -> host-harfbuzz help Say 'y' here is you need ImageMagick tools (like convert) to support SVG. @@ -24,4 +25,7 @@ config BR2_PACKAGE_HOST_IMAGEMAGICK_SVG This is not enabled by default, as it brings quite a few extra dependencies, and thus extra build time. +comment "SVG support needs a toolchain w/ host gcc >= 4.9" + depends on !BR2_HOST_GCC_AT_LEAST_4_9 + endif
host gcc >= 4.9 is needed since bump of harfbuzz to version 3.1.2 in commit 6861933d22006fbe8c961a41506beac826881f33 to avoid the following build failure: In file included from ../src/hb-serialize.hh:36:0, from ../src/hb-machinery.hh:37, from ../src/hb-common.cc:30: ../src/hb-map.hh:67:18: error: 'is_trivially_copyable' is not a member of 'std' static_assert (std::is_trivially_copyable<K>::value, ""); ^ Fixes: - http://autobuild.buildroot.org/results/89e1194c1659d7e1af9db8ffe5feee770c448f76 Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> --- package/imagemagick/Config.in.host | 4 ++++ 1 file changed, 4 insertions(+)