From nobody Fri Dec 15 20:37:51 2023 X-Original-To: dev-commits-ports-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SsLdC61XNz543Gm; Fri, 15 Dec 2023 20:37:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SsLdC5MX7z3XwN; Fri, 15 Dec 2023 20:37:51 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1702672671; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Yf/8J6mfBO1by+2iDj++KnPCpbCp8azucIHOAjo/4pw=; b=v/obyaY7mXLscbOQWbqcNkhiFm/SQp5FXEmu6F5RCj8oEHRzm58FxH4BQSeal4dhgghbao RboRE/qBFyCWYN7DDo8EvlYE7m1g2DKwe7MJDq9dy/7HG5C2bpSW/orZdPzxmlydq8nOJk szKZdIMjScPFEIxFmPumLOF2NTdQo6T0on0dRKHnkXuTzKyn4f3WpHLqFz1D4m/VKvcsxD JWyPlp6loEnDII4YqYVwGYwuIp/V0exy96LARXPwgZnQuE5AJ+XoMrc8qCkImBX4OrUtUN ZcR9jOTh6ZFI4c3C/Mx0wdNHAzaq/GocvDsi3EjnjD6/xXqXMoZEYdaVG75yoQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1702672671; a=rsa-sha256; cv=none; b=tJKIhhb++jwfXFCvvGNUhHim7IfWXlwen8GxzZ8+CizmUu7F3l0md4P1i0vntZmfG3rREU Gd+zCe5yi2Ahel39D899KEIC3pCV0GWN13YgWmcBcgPYjHWHinPaneU+TFjeSOY6rZEN+j cpAlYma2RmRZMW1WWe/kFyJNR/4F2h/fCar4H6IZNU++H7xfiOiRZV/QVB2j6EblgDILUT fKksgaCZewhgjEZ6uwnWg2VnsBo34n+5U5PObxtI5Ef9DNiXKg8Qi8eHDxP9TN8/57jGZq 4azZUBsRmJrIHv0e3wJSsJjFPQp3p88fc3+3UOnCTvej1Sgdli6BKhZ8qHxSQQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1702672671; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Yf/8J6mfBO1by+2iDj++KnPCpbCp8azucIHOAjo/4pw=; b=L+32JZA+vybPavnvsBKcfYWHQY0YBdgyohZnUhIC94Qer5IxBrhrbJnSQBGKBaDaxQTban g+/4qVBr1HHc+N1yEESyLIDLwustn5l+GQcLUToxTbwAL6rOaznWfmeGDxCQHd3EJQMtza AW9k30AsAUSekDuLggCPGoLyndWPL2C1s7NK9OgXpS80V0mpPjvclI50Xx/yTNxWzLua7B itLc0gmlUnUfmd+CltBR/hacliNeE09A3JURPsPRrPrDMmTG6gY3hIkwuGBQ+MOr26I7v5 TCSe7tDoKKPI6T0M2f7NLPggCSYfWdajJn1eb2jaAcuKYrH6+UKNAgywsJdxhA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SsLdC4Sztz9xG; Fri, 15 Dec 2023 20:37:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3BFKbptK086236; Fri, 15 Dec 2023 20:37:51 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3BFKbps6086233; Fri, 15 Dec 2023 20:37:51 GMT (envelope-from git) Date: Fri, 15 Dec 2023 20:37:51 GMT Message-Id: <202312152037.3BFKbps6086233@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Dimitry Andric Subject: git: eb5e0517d2a6 - main - lang/gcc10: fix build with clang 17 List-Id: Commit messages for all branches of the ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-ports-all@freebsd.org X-BeenThere: dev-commits-ports-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dim X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: eb5e0517d2a6e25d43fd03786f526e9043543b47 Auto-Submitted: auto-generated The branch main has been updated by dim: URL: https://cgit.FreeBSD.org/ports/commit/?id=eb5e0517d2a6e25d43fd03786f526e9043543b47 commit eb5e0517d2a6e25d43fd03786f526e9043543b47 Author: Dimitry Andric AuthorDate: 2023-12-15 20:15:59 +0000 Commit: Dimitry Andric CommitDate: 2023-12-15 20:37:00 +0000 lang/gcc10: fix build with clang 17 When building lang/gcc10 with recent clang versions, which default to C++17, the following errors are produced: cfns.gperf:35:18: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister] 35 | libc_name::hash (register const char *str, register unsigned int len) | ^~~~~~~~ cfns.gperf:35:44: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister] 35 | libc_name::hash (register const char *str, register unsigned int len) | ^~~~~~~~ ...many more of these... Upstream fixed this in https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=642dc602f89b2c11d5d833a52f37b04427a27cab, so apply it. --- .../patch-base_containers_checked__iterators.h | 75 ++++++++++++++ lang/gcc10/files/patch-gcc_cp_cfns.h | 111 +++++++++++++++++++++ 2 files changed, 186 insertions(+) diff --git a/devel/electron25/files/patch-base_containers_checked__iterators.h b/devel/electron25/files/patch-base_containers_checked__iterators.h new file mode 100644 index 000000000000..a5ad942a78cf --- /dev/null +++ b/devel/electron25/files/patch-base_containers_checked__iterators.h @@ -0,0 +1,75 @@ +--- base/containers/checked_iterators.h.orig 2023-08-12 07:07:10 UTC ++++ base/containers/checked_iterators.h +@@ -24,6 +24,9 @@ class CheckedContiguousIterator { + using pointer = T*; + using reference = T&; + using iterator_category = std::random_access_iterator_tag; ++#if __cplusplus >= 202002L ++ using iterator_concept = std::contiguous_iterator_tag; ++#endif + + // Required for converting constructor below. + template +@@ -31,10 +34,8 @@ class CheckedContiguousIterator { + + // Required for certain libc++ algorithm optimizations that are not available + // for NaCl. +-#if defined(_LIBCPP_VERSION) && !BUILDFLAG(IS_NACL) + template + friend struct std::pointer_traits; +-#endif + + constexpr CheckedContiguousIterator() = default; + +@@ -224,7 +225,6 @@ using CheckedContiguousConstIterator = CheckedContiguo + + } // namespace base + +-#if defined(_LIBCPP_VERSION) && !BUILDFLAG(IS_NACL) + // Specialize both std::__is_cpp17_contiguous_iterator and std::pointer_traits + // for CCI in case we compile with libc++ outside of NaCl. The former is + // required to enable certain algorithm optimizations (e.g. std::copy can be a +@@ -242,13 +242,35 @@ using CheckedContiguousConstIterator = CheckedContiguo + // [1] https://wg21.link/iterator.concept.contiguous + // [2] https://wg21.link/std.iterator.tags + // [3] https://wg21.link/pointer.traits.optmem +-namespace std { + ++#if defined(_LIBCPP_VERSION) ++ ++// TODO(crbug.com/1284275): Remove when C++20 is on by default, as the use ++// of `iterator_concept` above should suffice. ++_LIBCPP_BEGIN_NAMESPACE_STD ++ ++// TODO(crbug.com/1449299): https://reviews.llvm.org/D150801 renamed this from ++// `__is_cpp17_contiguous_iterator` to `__libcpp_is_contiguous_iterator`. Clean ++// up the old spelling after libc++ rolls. + template ++struct __is_cpp17_contiguous_iterator; ++template + struct __is_cpp17_contiguous_iterator<::base::CheckedContiguousIterator> + : true_type {}; + + template ++struct __libcpp_is_contiguous_iterator; ++template ++struct __libcpp_is_contiguous_iterator<::base::CheckedContiguousIterator> ++ : true_type {}; ++ ++_LIBCPP_END_NAMESPACE_STD ++ ++#endif ++ ++namespace std { ++ ++template + struct pointer_traits<::base::CheckedContiguousIterator> { + using pointer = ::base::CheckedContiguousIterator; + using element_type = T; +@@ -267,6 +289,5 @@ struct pointer_traits<::base::CheckedContiguousIterato + }; + + } // namespace std +-#endif + + #endif // BASE_CONTAINERS_CHECKED_ITERATORS_H_ diff --git a/lang/gcc10/files/patch-gcc_cp_cfns.h b/lang/gcc10/files/patch-gcc_cp_cfns.h new file mode 100644 index 000000000000..c542619ec0eb --- /dev/null +++ b/lang/gcc10/files/patch-gcc_cp_cfns.h @@ -0,0 +1,111 @@ +commit 642dc602f89b2c11d5d833a52f37b04427a27cab +Author: Marek Polacek +Date: 2020-05-15T23:54:05+02:00 + + c++: Regenerate cp/cfns.h. + + Current cfns.h includes register-qualified variables and that wouldn't + play well when bootstrapping with GCC that uses the C++17 dialect, + because 'register' was removed in C++17. Regenerating it using the + command specified in cfns.h luckily cleaned this up. + + * cfns.h: Regenerated. + +--- gcc/cp/cfns.h.orig 2023-07-07 07:08:19 UTC ++++ gcc/cp/cfns.h +@@ -1,4 +1,4 @@ +-/* C++ code produced by gperf version 3.0.4 */ ++/* C++ code produced by gperf version 3.1 */ + /* Command-line: gperf -o -C -E -k '1-6,$' -j1 -D -N libc_name_p -L C++ --output-file cfns.h cfns.gperf */ + + #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ +@@ -25,7 +25,7 @@ + && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ + && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) + /* The character set is not based on ISO-646. */ +-#error "gperf generated tables don't work with this execution character set. Please report a bug to ." ++#error "gperf generated tables don't work with this execution character set. Please report a bug to ." + #endif + + #line 4 "cfns.gperf" +@@ -54,13 +54,13 @@ class libc_name (private) + class libc_name + { + private: +- static inline unsigned int hash (const char *str, unsigned int len); ++ static inline unsigned int hash (const char *str, size_t len); + public: +- static const struct libc_name_struct *libc_name_p (const char *str, unsigned int len); ++ static const struct libc_name_struct *libc_name_p (const char *str, size_t len); + }; + + inline unsigned int +-libc_name::hash (register const char *str, register unsigned int len) ++libc_name::hash (const char *str, size_t len) + { + static const unsigned short asso_values[] = + { +@@ -91,34 +91,34 @@ libc_name::hash (register const char *str, register un + 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, + 1488, 1488, 1488, 1488, 1488, 1488, 1488 + }; +- register int hval = len; ++ unsigned int hval = len; + + switch (hval) + { + default: +- hval += asso_values[(unsigned char)str[5]+1]; ++ hval += asso_values[static_cast(str[5]+1)]; + /*FALLTHROUGH*/ + case 5: +- hval += asso_values[(unsigned char)str[4]]; ++ hval += asso_values[static_cast(str[4])]; + /*FALLTHROUGH*/ + case 4: +- hval += asso_values[(unsigned char)str[3]]; ++ hval += asso_values[static_cast(str[3])]; + /*FALLTHROUGH*/ + case 3: +- hval += asso_values[(unsigned char)str[2]]; ++ hval += asso_values[static_cast(str[2])]; + /*FALLTHROUGH*/ + case 2: +- hval += asso_values[(unsigned char)str[1]+1]; ++ hval += asso_values[static_cast(str[1]+1)]; + /*FALLTHROUGH*/ + case 1: +- hval += asso_values[(unsigned char)str[0]]; ++ hval += asso_values[static_cast(str[0])]; + break; + } +- return hval + asso_values[(unsigned char)str[len - 1]]; ++ return hval + asso_values[static_cast(str[len - 1])]; + } + + const struct libc_name_struct * +-libc_name::libc_name_p (register const char *str, register unsigned int len) ++libc_name::libc_name_p (const char *str, size_t len) + { + enum + { +@@ -1116,15 +1116,15 @@ libc_name::libc_name_p (register const char *str, regi + + if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) + { +- register int key = hash (str, len); ++ unsigned int key = hash (str, len); + +- if (key <= MAX_HASH_VALUE && key >= 0) ++ if (key <= MAX_HASH_VALUE) + { +- register int index = lookup[key]; ++ int index = lookup[key]; + + if (index >= 0) + { +- register const char *s = wordlist[index].name; ++ const char *s = wordlist[index].name; + + if (*str == *s && !strcmp (str + 1, s + 1)) + return &wordlist[index];