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 +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 +--- + 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 (GSUBGPOS::get_lookup (i)); } ++ const PosLookup& get_lookup (unsigned int i) const ++ { return static_cast (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 (&l); ++ return GSUBGPOS::subset (&l); + } + + bool sanitize (hb_sanitize_context_t *c) const +- { return GSUBGPOS::sanitize (c); } ++ { return GSUBGPOS::sanitize (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 (face, glyphs, lookup_indexes); } ++ { GSUBGPOS::closure_lookups (face, glyphs, lookup_indexes); } + + typedef GSUBGPOS::accelerator_t 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 + } + #endif + ++} /* namespace GPOS_impl */ ++} /* namespace Layout */ + } /* namespace OT */ + +