From 804f535c8409d1d45102157d3b27bea688a51b81 Mon Sep 17 00:00:00 2001 From: Andreas Scherer Date: Mon, 18 Jul 2022 15:41:40 +0000 Subject: [Harfbuzz] Add and apply second patch for older g++. Try to fix namespace/template conundrum around 'dispatch_recurse_func'. Note that the Harfbuzz code is absolutely horrible: Inside 'namespace OT' it says 'using Layout::GSUB::SubstLookup', but later it uses 'OT::SubstLookup'. What an utter mess! git-svn-id: svn://tug.org/texlive/trunk@63927 c570f23f-e606-0410-a88d-b1316a301751 --- .../TLpatches/0001-Fix-harfbuzz-4.4.1-for-older-g | 52 ------------------ .../0001-Fix-harfbuzz-4.4.1-for-older-g.patch | 52 ++++++++++++++++++ ...002-Fix-dispatch_recurse_func-for-older-g.patch | 62 ++++++++++++++++++++++ Build/source/libs/harfbuzz/TLpatches/ChangeLog | 6 ++- 4 files changed, 118 insertions(+), 54 deletions(-) delete mode 100644 Build/source/libs/harfbuzz/TLpatches/0001-Fix-harfbuzz-4.4.1-for-older-g create mode 100644 Build/source/libs/harfbuzz/TLpatches/0001-Fix-harfbuzz-4.4.1-for-older-g.patch create mode 100644 Build/source/libs/harfbuzz/TLpatches/0002-Fix-dispatch_recurse_func-for-older-g.patch (limited to 'Build') diff --git a/Build/source/libs/harfbuzz/TLpatches/0001-Fix-harfbuzz-4.4.1-for-older-g b/Build/source/libs/harfbuzz/TLpatches/0001-Fix-harfbuzz-4.4.1-for-older-g deleted file mode 100644 index 7d1480a7a76..00000000000 --- a/Build/source/libs/harfbuzz/TLpatches/0001-Fix-harfbuzz-4.4.1-for-older-g +++ /dev/null @@ -1,52 +0,0 @@ -From c59b380364076c90aac01bc1a996e954cda5d6ab Mon Sep 17 00:00:00 2001 -From: Andreas Scherer -Date: Sun, 17 Jul 2022 19:46:50 +0200 -Subject: [PATCH] Fix harfbuzz 4.4.1 for older g++. - ---- - libs/harfbuzz/harfbuzz-src/src/hb-cplusplus.hh | 15 +++++++++------ - 1 file changed, 9 insertions(+), 6 deletions(-) - -diff --git a/libs/harfbuzz/harfbuzz-src/src/hb-cplusplus.hh b/libs/harfbuzz/harfbuzz-src/src/hb-cplusplus.hh -index 86d045208..c79d15506 100644 ---- a/libs/harfbuzz/harfbuzz-src/src/hb-cplusplus.hh -+++ b/libs/harfbuzz/harfbuzz-src/src/hb-cplusplus.hh -@@ -166,26 +166,29 @@ HB_DEFINE_VTABLE (unicode_funcs); - - } // namespace hb - -+namespace std { -+ - template --struct std::hash> -+struct hash> - { -- std::size_t operator()(const hb::shared_ptr& v) const noexcept -+ size_t operator()(const hb::shared_ptr& v) const noexcept - { -- std::size_t h = std::hash{}(v.get ()); -+ size_t h = hash{}(v.get ()); - return h; - } - }; - - template --struct std::hash> -+struct hash> - { -- std::size_t operator()(const hb::unique_ptr& v) const noexcept -+ size_t operator()(const hb::unique_ptr& v) const noexcept - { -- std::size_t h = std::hash{}(v.get ()); -+ size_t h = hash{}(v.get ()); - return h; - } - }; - -+} // namespace std - - #endif /* __cplusplus */ - --- -2.37.1 - diff --git a/Build/source/libs/harfbuzz/TLpatches/0001-Fix-harfbuzz-4.4.1-for-older-g.patch b/Build/source/libs/harfbuzz/TLpatches/0001-Fix-harfbuzz-4.4.1-for-older-g.patch new file mode 100644 index 00000000000..ed778de2df6 --- /dev/null +++ b/Build/source/libs/harfbuzz/TLpatches/0001-Fix-harfbuzz-4.4.1-for-older-g.patch @@ -0,0 +1,52 @@ +From d4005a1970a82222198d0a106ee54a71707d059b Mon Sep 17 00:00:00 2001 +From: Andreas Scherer +Date: Sun, 17 Jul 2022 19:46:50 +0200 +Subject: [PATCH 1/2] Fix harfbuzz 4.4.1 for older g++. + +--- + libs/harfbuzz/harfbuzz-src/src/hb-cplusplus.hh | 15 +++++++++------ + 1 file changed, 9 insertions(+), 6 deletions(-) + +diff --git a/libs/harfbuzz/harfbuzz-src/src/hb-cplusplus.hh b/libs/harfbuzz/harfbuzz-src/src/hb-cplusplus.hh +index 86d045208..c79d15506 100644 +--- a/libs/harfbuzz/harfbuzz-src/src/hb-cplusplus.hh ++++ b/libs/harfbuzz/harfbuzz-src/src/hb-cplusplus.hh +@@ -166,26 +166,29 @@ HB_DEFINE_VTABLE (unicode_funcs); + + } // namespace hb + ++namespace std { ++ + template +-struct std::hash> ++struct hash> + { +- std::size_t operator()(const hb::shared_ptr& v) const noexcept ++ size_t operator()(const hb::shared_ptr& v) const noexcept + { +- std::size_t h = std::hash{}(v.get ()); ++ size_t h = hash{}(v.get ()); + return h; + } + }; + + template +-struct std::hash> ++struct hash> + { +- std::size_t operator()(const hb::unique_ptr& v) const noexcept ++ size_t operator()(const hb::unique_ptr& v) const noexcept + { +- std::size_t h = std::hash{}(v.get ()); ++ size_t h = hash{}(v.get ()); + return h; + } + }; + ++} // namespace std + + #endif /* __cplusplus */ + +-- +2.37.1 + diff --git a/Build/source/libs/harfbuzz/TLpatches/0002-Fix-dispatch_recurse_func-for-older-g.patch b/Build/source/libs/harfbuzz/TLpatches/0002-Fix-dispatch_recurse_func-for-older-g.patch new file mode 100644 index 00000000000..96104282eb9 --- /dev/null +++ b/Build/source/libs/harfbuzz/TLpatches/0002-Fix-dispatch_recurse_func-for-older-g.patch @@ -0,0 +1,62 @@ +From 72135e7c1af4812dc5e856d94ff1ba3fda867365 Mon Sep 17 00:00:00 2001 +From: Andreas Scherer +Date: Mon, 18 Jul 2022 17:24:20 +0200 +Subject: [PATCH 2/2] Fix 'dispatch_recurse_func' for older g++. + +--- + libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gpos-table.hh | 6 +++++- + libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gsub-table.hh | 7 +++++-- + 2 files changed, 10 insertions(+), 3 deletions(-) + +diff --git a/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gpos-table.hh b/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gpos-table.hh +index 064d31cdf..59795cbba 100644 +--- a/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gpos-table.hh ++++ b/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gpos-table.hh +@@ -35,6 +35,9 @@ 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 */ + #ifndef HB_NO_OT_LAYOUT +@@ -68,7 +71,8 @@ inline bool PosLookup::dispatch_recurse_func (hb_ot_apply + } + #endif + ++} /* namespace GPOS_impl */ ++} /* namespace Layout */ + } /* namespace OT */ + +- + #endif /* HB_OT_LAYOUT_GPOS_TABLE_HH */ +diff --git a/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gsub-table.hh b/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gsub-table.hh +index 462542025..9e7f40c07 100644 +--- a/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gsub-table.hh ++++ b/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gsub-table.hh +@@ -36,6 +36,9 @@ namespace OT { + using Layout::GSUB::SubstLookup; + using Layout::GSUB::ExtensionSubst; + ++namespace Layout { ++namespace GSUB { ++ + // TODO(garretrieger): Move into the new layout directory. + /* Out-of-class implementation for methods recursing */ + +@@ -82,8 +85,8 @@ inline bool SubstLookup::dispatch_recurse_func (hb_ot_app + } + #endif + +- ++} /* namespace GSUB */ ++} /* namespace Layout */ + } /* namespace OT */ + +- + #endif /* HB_OT_LAYOUT_GSUB_TABLE_HH */ +-- +2.37.1 + diff --git a/Build/source/libs/harfbuzz/TLpatches/ChangeLog b/Build/source/libs/harfbuzz/TLpatches/ChangeLog index 8ff5918232d..0f4a2c04e81 100644 --- a/Build/source/libs/harfbuzz/TLpatches/ChangeLog +++ b/Build/source/libs/harfbuzz/TLpatches/ChangeLog @@ -1,6 +1,8 @@ -2022-07/18 Andreas Scherer +2022-07-18 Andreas Scherer - Add 0001-Fix-harfbuzz-4.4.1-for-older-g for older gcc. + * 0001-Fix-harfbuzz-4.4.1-for-older-g.patch, + * 0002-Fix-dispatch_recurse_func-for-older-g.patch: + Try to fix namespace/template conundrum for g++ 5 and 6. 2022-06-30 Akira Kakuto -- cgit v1.2.3