Summary: | =sys-devel/gcc-12.2.1_p20230204, =sys-devel/gcc-13.0.1_pre20230205: can't build media-libs/harfbuzz-6.0.0 (hb-ot-cff2-table.cc.o (error: hb-map.hh:292:5: error: no match for ‘operator|’ [...]) | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | HougeLangley <hougelangley1987> |
Component: | Current packages | Assignee: | Gentoo Toolchain Maintainers <toolchain> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | office, sam |
Priority: | Normal | Keywords: | PATCH |
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
See Also: | https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107461 | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 865117 | ||
Attachments: |
Full-Build-Log
emerge-info |
Description
HougeLangley
2023-02-06 15:53:32 UTC
Created attachment 850006 [details]
Full-Build-Log
Hit this myself. Thanks for testing this out, it's a big help. Last week's GCC is fine (13.0.1_pre20230129-r1), but this week's is not (13.0.1_pre20230205). Bisecting now. ``` ../harfbuzz-6.0.0/src/hb-map.hh: In instantiation of ‘uint32_t hb_hashmap_t<K, V, minus_one>::hash() const [with K = unsigned int; V = unsigned int; bool minus_one = true; uint32_t = unsigned int]’: ../harfbuzz-6.0.0/src/hb-algs.hh:237:43: required from ‘constexpr hb_head_t<unsigned int, decltype (hb_deref(v).hash())><unnamed struct>::impl(const T&, hb_priority<1>) const [with T = hb::shared_ptr<hb_map_t>; hb_head_t<unsigned int, decltype (hb_deref(v).hash())> = unsigned int; decltype (hb_deref(v).hash()) = unsigned int]’ ../harfbuzz-6.0.0/src/hb-algs.hh:245:34: required from ‘bool hb_hashmap_t<K, V, minus_one>::has(K, VV**) const [with VV = unsigned int; K = hb::shared_ptr<hb_map_t>; V = unsigned int; bool minus_one = false]’ ../harfbuzz-6.0.0/src/hb-ot-layout-common.hh:3034:34: required from here ../harfbuzz-6.0.0/src/hb-map.hh:292:5: error: no match for ‘operator|’ (operand types are ‘hb_filter_iter_t<hb_array_t<hb_hashmap_t<unsigned int, unsigned int, true>::item_t>, bool (hb_hashmap_t<unsigned int, unsigned int, true>::item_t::*)() const, const<unnamed struct>&, 0>’ and ‘hb_reduce_t<hb_hashmap_t<unsigned int, unsigned int, true>::hash() const::<lambda(uint32_t, const hb_hashmap_t<unsigned int, unsigned int, true>::item_t&)>, unsigned int>’) 291 | + iter_items () | ~~~~~~~~~~~~~~~ 292 | | hb_reduce ([] (uint32_t h, const item_t &_) { return h ^ _.total_hash (); }, (uint32_t) 0u) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../harfbuzz-6.0.0/src/hb.hh:481, from ../harfbuzz-6.0.0/src/hb-font.cc:29: ../harfbuzz-6.0.0/src/hb-iter.hh:352:1: note: candidate: ‘template<class Lhs, class Rhs, typename hb_enable_if<hb_is_iterator_of<Lhs, typename Lhs::item_t>::value>::type* <anonymous> > decltype (forward<Rhs>(rhs)(forward<Lhs>(lhs))) operator|(Lhs&&, Rhs&&)’ 352 | operator | (Lhs&& lhs, Rhs&& rhs) HB_AUTO_RETURN (std::forward<Rhs> (rhs) (std::forward<Lhs> (lhs))) | ^~~~~~~~ ../harfbuzz-6.0.0/src/hb-iter.hh:352:1: note: template argument deduction/substitution failed: In file included from ../harfbuzz-6.0.0/src/hb.hh:475: ../harfbuzz-6.0.0/src/hb-iter.hh: In substitution of ‘template<class Lhs, class Rhs, typename hb_enable_if<hb_is_iterator_of<Lhs, typename Lhs::item_t>::value>::type* <anonymous> > decltype (forward<Rhs>(rhs)(forward<Lhs>(lhs))) operator|(Lhs&&, Rhs&&) [with Lhs = hb_filter_iter_t<hb_array_t<hb_hashmap_t<unsigned int, unsigned int, true>::item_t>, bool (hb_hashmap_t<unsigned int, unsigned int, true>::item_t::*)() const, const<unnamed struct>&, 0>; Rhs = hb_reduce_t<hb_hashmap_t<unsigned int, unsigned int, true>::hash() const::<lambda(uint32_t, const hb_hashmap_t<unsigned int, unsigned int, true>::item_t&)>, unsigned int>; typename hb_enable_if<hb_is_iterator_of<Lhs, typename Lhs::item_t>::value>::type* <anonymous> = 0]’: ../harfbuzz-6.0.0/src/hb-map.hh:292:5: required from ‘uint32_t hb_hashmap_t<K, V, minus_one>::hash() const [with K = unsigned int; V = unsigned int; bool minus_one = true; uint32_t = unsigned int]’ ../harfbuzz-6.0.0/src/hb-algs.hh:237:43: required from ‘constexpr hb_head_t<unsigned int, decltype (hb_deref(v).hash())><unnamed struct>::impl(const T&, hb_priority<1>) const [with T = hb::shared_ptr<hb_map_t>; hb_head_t<unsigned int, decltype (hb_deref(v).hash())> = unsigned int; decltype (hb_deref(v).hash()) = unsigned int]’ ../harfbuzz-6.0.0/src/hb-algs.hh:245:34: required from ‘bool hb_hashmap_t<K, V, minus_one>::has(K, VV**) const [with VV = unsigned int; K = hb::shared_ptr<hb_map_t>; V = unsigned int; bool minus_one = false]’ ../harfbuzz-6.0.0/src/hb-ot-layout-common.hh:3034:34: required from here ../harfbuzz-6.0.0/src/hb-iter.hh:352:75: error: no match for call to ‘(hb_reduce_t<hb_hashmap_t<unsigned int, unsigned int, true>::hash() const::<lambda(uint32_t, const hb_hashmap_t<unsigned int, unsigned int, true>::item_t&)>, unsigned int>) (hb_filter_iter_t<hb_array_t<hb_hashmap_t<unsigned int, unsigned int, true>::item_t>, bool (hb_hashmap_t<unsigned int, unsigned int, true>::item_t::*)() const, const<unnamed struct>&, 0>)’ 352 | operator | (Lhs&& lhs, Rhs&& rhs) HB_AUTO_RETURN (std::forward<Rhs> (rhs) (std::forward<Lhs> (lhs))) ../harfbuzz-6.0.0/src/hb-meta.hh:76:41: note: in definition of macro ‘HB_AUTO_RETURN’ 76 | #define HB_AUTO_RETURN(E) -> decltype ((E)) { return (E); } | ^ ../harfbuzz-6.0.0/src/hb-iter.hh:490:3: note: candidate: ‘template<class Iter, typename hb_enable_if<hb_is_iterator_of<Lhs, typename Lhs::item_t>::value>::type* <anonymous>, class AccuT> AccuT hb_reduce_t<Redu, InitT>::operator()(Iter) [with typename hb_enable_if<hb_is_iterator_of<Iter, typename Iter::item_t>::value>::type* <anonymous> = Iter; AccuT = <anonymous>; Redu = hb_hashmap_t<unsigned int, unsigned int, true>::hash() const::<lambda(uint32_t, const hb_hashmap_t<unsigned int, unsigned int, true>::item_t&)>; InitT = unsigned int]’ 490 | operator () (Iter it) | ^~~~~~~~ ../harfbuzz-6.0.0/src/hb-iter.hh:490:3: note: template argument deduction/substitution failed: ../harfbuzz-6.0.0/src/hb-meta.hh:90:38: error: no match for call to ‘(hb_bit_page_t::hash() const::<lambda(uint32_t, const hb_bit_page_t::elt_t&)>) (unsigned int, hb_hashmap_t<unsigned int, unsigned int, true>::item_t&)’ 90 | #define hb_declval(T) (hb_declval<T> ()) | ~~~~~~~~~~~~~~~^~~ ``` Created attachment 850008 [details]
emerge-info
It's my pleasure. (In reply to HougeLangley from comment #4) > It's my pleasure. <3 It's especially helpful that I assume like me you're doing -e after each, because it means we can catch regressions quickly. I honestly thought I was maybe wasting my time doing it, but then 2 changes popped out today.. (busybox failed for me too with FORTIFY_SOURCE, need to look at that). I do think -e is very helpful and useful for all the people using opensource's operating system. The mere formulation of a problem is far more essential than its solution. ——Albert Einstein (In reply to Sam James from comment #5) > (In reply to HougeLangley from comment #4) > > It's my pleasure. > > <3 > > It's especially helpful that I assume like me you're doing -e after each, > because it means we can catch regressions quickly. I honestly thought I was > maybe wasting my time doing it, but then 2 changes popped out today.. > (busybox failed for me too with FORTIFY_SOURCE, need to look at that). Bisected to https://gcc.gnu.org/git/?p=gcc.git;a=patch;h=59e0376f607805ef9b67fd7b0a4a3084ab3571a5: ``` From 59e0376f607805ef9b67fd7b0a4a3084ab3571a5 Mon Sep 17 00:00:00 2001 From: Patrick Palka <ppalka@redhat.com> Date: Fri, 3 Feb 2023 09:41:10 -0500 Subject: [PATCH] c++: unexpected ADDR_EXPR after overload set pruning [PR107461] ``` There's a followup in https://gcc.gnu.org/git/?p=gcc.git;a=patch;h=31924665c86d47af6b1f22a74f594f2e1dc0ed2d too. (In reply to Sam James from comment #7) > Bisected to > https://gcc.gnu.org/git/?p=gcc.git;a=patch; > h=59e0376f607805ef9b67fd7b0a4a3084ab3571a5: > ``` > From 59e0376f607805ef9b67fd7b0a4a3084ab3571a5 Mon Sep 17 00:00:00 2001 > From: Patrick Palka <ppalka@redhat.com> > Date: Fri, 3 Feb 2023 09:41:10 -0500 > Subject: [PATCH] c++: unexpected ADDR_EXPR after overload set pruning > [PR107461] > ``` > > There's a followup in > https://gcc.gnu.org/git/?p=gcc.git;a=patch; > h=31924665c86d47af6b1f22a74f594f2e1dc0ed2d too. I'm testing the patches now then will backport. See also https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107461#c6. The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/proj/gcc-patches.git/commit/?id=6d368fffaa25908cf25836feb5ab660d8d0a3d58 commit 6d368fffaa25908cf25836feb5ab660d8d0a3d58 Author: Sam James <sam@gentoo.org> AuthorDate: 2023-02-06 17:38:06 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2023-02-06 17:38:17 +0000 12.2.0: add 76_all_all_PR107461_cxx_equivalence_non_dependent_calls.patch Bug: https://bugs.gentoo.org/893410 Signed-off-by: Sam James <sam@gentoo.org> ...07461_cxx_equivalence_non_dependent_calls.patch | 204 +++++++++++++++++++++ 12.2.0/gentoo/README.history | 9 +- 2 files changed, 210 insertions(+), 3 deletions(-) https://gitweb.gentoo.org/proj/gcc-patches.git/commit/?id=3f8fa89d582a0d56ab4eac414552aed99cec6751 commit 3f8fa89d582a0d56ab4eac414552aed99cec6751 Author: Sam James <sam@gentoo.org> AuthorDate: 2023-02-06 17:32:01 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2023-02-06 17:32:01 +0000 13.1.0: add 75_all_all_PR107461_cxx_equivalence_non_dependent_calls.patch Bug: https://bugs.gentoo.org/893410 Signed-off-by: Sam James <sam@gentoo.org> ...07461_cxx_equivalence_non_dependent_calls.patch | 174 +++++++++++++++++++++ 13.1.0/gentoo/README.history | 3 + 2 files changed, 177 insertions(+) The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=91fabe3c33e397ef63cbb6f94d61b900dd654049 commit 91fabe3c33e397ef63cbb6f94d61b900dd654049 Author: Sam James <sam@gentoo.org> AuthorDate: 2023-02-06 17:39:27 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2023-02-06 17:43:56 +0000 sys-devel/gcc: backport Harfbuzz build fix Only affects last snapshots (12.2.1_p20230204, 13.0.1_pre20230205). Bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107461 Closes: https://bugs.gentoo.org/893410 Signed-off-by: Sam James <sam@gentoo.org> sys-devel/gcc/Manifest | 2 + sys-devel/gcc/gcc-12.2.1_p20230204-r1.ebuild | 52 +++++++++++++++++++++++++ sys-devel/gcc/gcc-13.0.1_pre20230205-r1.ebuild | 54 ++++++++++++++++++++++++++ 3 files changed, 108 insertions(+) |