All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bernd Kuhls <bernd.kuhls@t-online.de>
To: buildroot@buildroot.org
Cc: Giulio Benetti <giulio.benetti@benettiengineering.com>
Subject: [Buildroot] [PATCH 1/1] package/harfbuzz: fix build with gcc < 7
Date: Wed, 20 Jul 2022 19:17:56 +0200	[thread overview]
Message-ID: <20220720171756.307458-1-bernd.kuhls@t-online.de> (raw)

Fixes various build errors

In file included from ../src/hb-kern.hh:32:0,
                 from ../src/hb-ot-shape-fallback.cc:32:
../src/hb-ot-layout-gpos-table.hh:50:117: error: specialization of 'template<class context_t> static typename context_t::return_t OT::Layout::GPOS_impl::PosLookup::dispatch_recurse_func(context_t*, unsigned int)' in different namespace [-fpermissive]

introduced by bumping harfbuzz to 4.4.1 in
03022329e02332c22f44e0e0a9b17d8454ba26ae

The build error was not yet caught by the autobuilders but can be
reproduced using this defconfig:
http://autobuild.buildroot.org/results/3fe7526b685368007ae0f66e15ef2b27d30d5063/

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
---
 .../0004-GPOS-Fix-build-on-GCC-7.patch        | 97 +++++++++++++++++++
 1 file changed, 97 insertions(+)
 create mode 100644 package/harfbuzz/0004-GPOS-Fix-build-on-GCC-7.patch

diff --git a/package/harfbuzz/0004-GPOS-Fix-build-on-GCC-7.patch b/package/harfbuzz/0004-GPOS-Fix-build-on-GCC-7.patch
new file mode 100644
index 0000000000..ead6fc024f
--- /dev/null
+++ b/package/harfbuzz/0004-GPOS-Fix-build-on-GCC-7.patch
@@ -0,0 +1,97 @@
+From 3238cb744bb570a75326ab4438968c59069e9af2 Mon Sep 17 00:00:00 2001
+From: Kleis Auke Wolthuizen <github@kleisauke.nl>
+Date: Wed, 6 Jul 2022 13:18:14 +0200
+Subject: [PATCH] [GPOS] Fix build on GCC < 7
+
+[Retrieved (and backported) from:
+https://github.com/harfbuzz/harfbuzz/commit/3238cb744bb570a75326ab4438968c59069e9af2]
+Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
+---
+ src/OT/Layout/GPOS/GPOS.hh     | 17 ++++++++++-------
+ src/hb-ot-layout-gpos-table.hh |  6 ++++--
+ 2 files changed, 14 insertions(+), 9 deletions(-)
+
+diff --git a/src/OT/Layout/GPOS/GPOS.hh b/src/OT/Layout/GPOS/GPOS.hh
+index 7fb97d7568..23b0b090a2 100644
+--- a/src/OT/Layout/GPOS.hh
++++ b/src/OT/Layout/GPOS.hh
+@@ -7,6 +7,9 @@
+ #include "GPOS/PosLookup.hh"
+ 
+ namespace OT {
++
++using Layout::GPOS_impl::PosLookup;
++
+ namespace Layout {
+ 
+ static void
+@@ -25,10 +28,10 @@ struct GPOS : GSUBGPOS
+ {
+   static constexpr hb_tag_t tableTag = HB_OT_TAG_GPOS;
+ 
+-  using Lookup = GPOS_impl::PosLookup;
++  using Lookup = PosLookup;
+ 
+-  const GPOS_impl::PosLookup& get_lookup (unsigned int i) const
+-  { return static_cast<const GPOS_impl::PosLookup &> (GSUBGPOS::get_lookup (i)); }
++  const PosLookup& get_lookup (unsigned int i) const
++  { return static_cast<const PosLookup &> (GSUBGPOS::get_lookup (i)); }
+ 
+   static inline void position_start (hb_font_t *font, hb_buffer_t *buffer);
+   static inline void position_finish_advances (hb_font_t *font, hb_buffer_t *buffer);
+@@ -37,11 +40,11 @@ struct GPOS : GSUBGPOS
+   bool subset (hb_subset_context_t *c) const
+   {
+     hb_subset_layout_context_t l (c, tableTag, c->plan->gpos_lookups, c->plan->gpos_langsys, c->plan->gpos_features);
+-    return GSUBGPOS::subset<GPOS_impl::PosLookup> (&l);
++    return GSUBGPOS::subset<PosLookup> (&l);
+   }
+ 
+   bool sanitize (hb_sanitize_context_t *c) const
+-  { return GSUBGPOS::sanitize<GPOS_impl::PosLookup> (c); }
++  { return GSUBGPOS::sanitize<PosLookup> (c); }
+ 
+   HB_INTERNAL bool is_blocklisted (hb_blob_t *blob,
+                                    hb_face_t *face) const;
+@@ -51,7 +54,7 @@ struct GPOS : GSUBGPOS
+     for (unsigned i = 0; i < GSUBGPOS::get_lookup_count (); i++)
+     {
+       if (!c->gpos_lookups->has (i)) continue;
+-      const GPOS_impl::PosLookup &l = get_lookup (i);
++      const PosLookup &l = get_lookup (i);
+       l.dispatch (c);
+     }
+   }
+@@ -59,7 +62,7 @@ struct GPOS : GSUBGPOS
+   void closure_lookups (hb_face_t      *face,
+                         const hb_set_t *glyphs,
+                         hb_set_t       *lookup_indexes /* IN/OUT */) const
+-  { GSUBGPOS::closure_lookups<GPOS_impl::PosLookup> (face, glyphs, lookup_indexes); }
++  { GSUBGPOS::closure_lookups<PosLookup> (face, glyphs, lookup_indexes); }
+ 
+   typedef GSUBGPOS::accelerator_t<GPOS> accelerator_t;
+ };
+diff --git a/src/hb-ot-layout-gpos-table.hh b/src/hb-ot-layout-gpos-table.hh
+index f5059cfa83..8fe987fc50 100644
+--- a/src/hb-ot-layout-gpos-table.hh
++++ b/src/hb-ot-layout-gpos-table.hh
+@@ -32,8 +32,8 @@
+ #include "OT/Layout/GPOS.hh"
+ 
+ namespace OT {
+-
+-using Layout::GPOS_impl::PosLookup;
++namespace Layout {
++namespace GPOS_impl {
+ 
+ // TODO(garretrieger): Move into new layout directory.
+ /* Out-of-class implementation for methods recursing */
+@@ -68,6 +68,8 @@ inline bool PosLookup::dispatch_recurse_func<hb_ot_apply_context_t> (hb_ot_apply
+ }
+ #endif
+ 
++} /* namespace GPOS_impl */
++} /* namespace Layout */
+ } /* namespace OT */
+ 
+ 
-- 
2.30.2

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

             reply	other threads:[~2022-07-20 17:18 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-20 17:17 Bernd Kuhls [this message]
2022-07-20 23:21 ` [Buildroot] [PATCH 1/1] package/harfbuzz: fix build with gcc < 7 Giulio Benetti
2022-07-22 17:24 ` Arnout Vandecappelle
     [not found] <20220712162712.1582871-1-fontaine.fabrice__39469.849776809$1657643442$gmane$org@gmail.com>
2022-07-17 11:10 ` Bernd Kuhls
  -- strict thread matches above, loose matches on Subject: below --
2022-07-12 16:27 Fabrice Fontaine
2022-07-12 21:08 ` Giulio Benetti
2022-07-20 11:50 ` 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=20220720171756.307458-1-bernd.kuhls@t-online.de \
    --to=bernd.kuhls@t-online.de \
    --cc=buildroot@buildroot.org \
    --cc=giulio.benetti@benettiengineering.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.