<pre style='margin:0'>
Perry E. Metzger (pmetzger) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/2ee86b8fb4f6dcd70c7bed071f4acb1450c97eb1">https://github.com/macports/macports-ports/commit/2ee86b8fb4f6dcd70c7bed071f4acb1450c97eb1</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new 2ee86b8fb4f gcc10-bootstrap: backport preliminary support of Ventura
</span>2ee86b8fb4f is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 2ee86b8fb4f6dcd70c7bed071f4acb1450c97eb1
</span>Author: Kirill A. Korinsky <kirill@korins.ky>
AuthorDate: Mon Dec 12 15:23:06 2022 +0100

<span style='display:block; white-space:pre;color:#404040;'>    gcc10-bootstrap: backport preliminary support of Ventura
</span>---
 lang/gcc10-bootstrap/Portfile                  |   3 +
 lang/gcc10-bootstrap/files/patch-darwin22.diff | 365 +++++++++++++++++++++++++
 2 files changed, 368 insertions(+)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/gcc10-bootstrap/Portfile b/lang/gcc10-bootstrap/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 027d10c1fd4..8ad4de374d6 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/gcc10-bootstrap/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/gcc10-bootstrap/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -110,6 +110,9 @@ patchfiles-append patch-xcode12-fix.diff
</span> # Backport additional patches for support darwin8
 patchfiles-append patch-darwin8.diff
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# Backport preliminary Darwin 22 support to GCC 10
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append patch-darwin22.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # Skip bootstrap comparison entirely
 post-patch {
     reinplace {s|^do-compare =|do-compare = /usr/bin/true|g} \
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/gcc10-bootstrap/files/patch-darwin22.diff b/lang/gcc10-bootstrap/files/patch-darwin22.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..61fd90a6696
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/gcc10-bootstrap/files/patch-darwin22.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,365 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 90f9ae82ae5b948b2bb12296181c84d575252a0f Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Mark Mentovai <mark@mentovai.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Fri, 10 Jun 2022 15:56:42 +0100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 1/3] Darwin: Future-proof -mmacosx-version-min
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+f18cbc1ee1f4 (2021-12-18) updated various parts of gcc to not impose a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Darwin or macOS version maximum of the current known release. Different
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+parts of gcc accept, variously, Darwin version numbers matching
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+darwin2*, and macOS major version numbers up to 99. The current released
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version is Darwin 21 and macOS 12, with Darwin 22 and macOS 13 expected
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+for public release later this year. With one major OS release per year,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+this strategy is expected to provide another 8 years of headroom.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+However, f18cbc1ee1f4 missed config/darwin-c.c (now .cc), which
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+continued to impose a maximum of macOS 12 on the -mmacosx-version-min
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler driver argument. This was last updated from 11 to 12 in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+11b967577483 (2021-10-27), but kicking the can down the road one year at
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+a time is not a viable strategy, and is not in line with the more recent
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+technique from f18cbc1ee1f4.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Prior to 556ab5125912 (2020-11-06), config/darwin-c.c did not impose a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+maximum that needed annual maintenance, as at that point, all macOS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+releases had used a major version of 10. The stricter approach imposed
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+since then was valuable for a time until the particulars of the new
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+versioning scheme were established and understood, but now that they
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+are, it's prudent to restore a more permissive approach.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+gcc/ChangeLog:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   * config/darwin-c.cc: Make -mmacosx-version-min more future-proof.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Signed-off-by: Mark Mentovai <mark@mentovai.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+(cherry picked from commit 6725f186cb70d48338f69456864bf469a12ee5be)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gcc/config/darwin-c.c | 3 ++-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 2 insertions(+), 1 deletion(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/config/darwin-c.c gcc/config/darwin-c.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 3c2afe56522..0f746e933c1 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/config/darwin-c.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/config/darwin-c.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -691,7 +691,8 @@ macosx_version_as_macro (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (!version_array)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     goto fail;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if (version_array[MAJOR] < 10 || version_array[MAJOR] > 12)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* System tools accept up to 99 as a major version.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (version_array[MAJOR] < 10 || version_array[MAJOR] > 99)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     goto fail;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (version_array[MAJOR] == 10 && version_array[MINOR] < 10)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-- 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.38.2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 4595a90aa7ab440c5ff7434dde34929713e2d4a1 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Mark Mentovai <mark@mentovai.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Mon, 13 Jun 2022 16:40:19 +0100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 2/3] libstdc++: Rename __null_terminated to avoid collision
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with Apple SDK
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The macOS 13 SDK (and equivalent-version iOS and other Apple OS SDKs)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+contain this definition in <sys/cdefs.h>:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+863  #define __null_terminated
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+This collides with the use of __null_terminated in libstdc++'s
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+experimental fs_path.h.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+As libstdc++'s use of this token is entirely internal to fs_path.h, the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+simplest workaround, renaming it, is most appropriate. Here, it's
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+renamed to __nul_terminated, referencing the NUL ('\0') value that is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+used to terminate the strings in the context in which this tag structure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+is used.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+libstdc++-v3/ChangeLog:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   * include/experimental/bits/fs_path.h (__detail::__null_terminated):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   Rename to __nul_terminated to avoid colliding with a macro in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   Apple's SDK.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Signed-off-by: Mark Mentovai <mark@mentovai.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+(cherry picked from commit 254e88b3d7e8abcc236be3451609834371cf4d5d)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libstdc++-v3/include/bits/fs_path.h              | 12 ++++++------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libstdc++-v3/include/experimental/bits/fs_path.h | 12 ++++++------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 2 files changed, 12 insertions(+), 12 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libstdc++-v3/include/bits/fs_path.h libstdc++-v3/include/bits/fs_path.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 0b9911e638a..83e944b0a30 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libstdc++-v3/include/bits/fs_path.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libstdc++-v3/include/bits/fs_path.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -130,10 +130,10 @@ namespace __detail
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     _Source
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     _S_range_begin(_Source __begin) { return __begin; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  struct __null_terminated { };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  struct __nul_terminated { };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   template<typename _Source>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    __null_terminated
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __nul_terminated
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     _S_range_end(_Source) { return {}; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   template<typename _CharT, typename _Traits, typename _Alloc>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -533,11 +533,11 @@ namespace __detail
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       struct _Cvt;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     static basic_string_view<value_type>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    _S_convert(value_type* __src, __detail::__null_terminated)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _S_convert(value_type* __src, __detail::__nul_terminated)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     { return __src; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     static basic_string_view<value_type>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    _S_convert(const value_type* __src, __detail::__null_terminated)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _S_convert(const value_type* __src, __detail::__nul_terminated)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     { return __src; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     static basic_string_view<value_type>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -559,7 +559,7 @@ namespace __detail
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     template<typename _InputIterator>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       static string_type
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      _S_convert(_InputIterator __src, __detail::__null_terminated)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      _S_convert(_InputIterator __src, __detail::__nul_terminated)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   // Read from iterator into basic_string until a null value is seen:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   auto __s = _S_string_from_iter(__src);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -581,7 +581,7 @@ namespace __detail
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     template<typename _InputIterator>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       static string_type
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      _S_convert_loc(_InputIterator __src, __detail::__null_terminated,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      _S_convert_loc(_InputIterator __src, __detail::__nul_terminated,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                const std::locale& __loc)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   const std::string __s = _S_string_from_iter(__src);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libstdc++-v3/include/experimental/bits/fs_path.h libstdc++-v3/include/experimental/bits/fs_path.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 69b823a3466..7c1bb239e66 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libstdc++-v3/include/experimental/bits/fs_path.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libstdc++-v3/include/experimental/bits/fs_path.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -140,10 +140,10 @@ namespace __detail
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     inline _Source
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     _S_range_begin(_Source __begin) { return __begin; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  struct __null_terminated { };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  struct __nul_terminated { };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   template<typename _Source>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    inline __null_terminated
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    inline __nul_terminated
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     _S_range_end(_Source) { return {}; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   template<typename _CharT, typename _Traits, typename _Alloc>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -467,11 +467,11 @@ namespace __detail
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       struct _Cvt;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     static string_type
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    _S_convert(value_type* __src, __detail::__null_terminated)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _S_convert(value_type* __src, __detail::__nul_terminated)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     { return string_type(__src); }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     static string_type
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    _S_convert(const value_type* __src, __detail::__null_terminated)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _S_convert(const value_type* __src, __detail::__nul_terminated)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     { return string_type(__src); }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     template<typename _Iter>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -485,7 +485,7 @@ namespace __detail
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     template<typename _InputIterator>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       static string_type
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      _S_convert(_InputIterator __src, __detail::__null_terminated)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      _S_convert(_InputIterator __src, __detail::__nul_terminated)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   auto __s = _S_string_from_iter(__src);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return _S_convert(__s.c_str(), __s.c_str() + __s.size());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -505,7 +505,7 @@ namespace __detail
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     template<typename _InputIterator>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       static string_type
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      _S_convert_loc(_InputIterator __src, __detail::__null_terminated,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      _S_convert_loc(_InputIterator __src, __detail::__nul_terminated,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                const std::locale& __loc)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   const std::string __s = _S_string_from_iter(__src);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-- 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.38.2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From e3b0f417b5dbcf5fb3696f5f37fc756528cfa99c Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: =?UTF-8?q?Fran=C3=A7ois-Xavier=20Coudert?= <fxcoudert@gcc.gnu.org>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Fri, 17 Dec 2021 19:30:36 +0100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 3/3] Darwin: Future-proof and homogeneize detection of darwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ versions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+MIME-Version: 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Content-Type: text/plain; charset=UTF-8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Content-Transfer-Encoding: 8bit
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The current GCC branch will become 12.1.0, which will be the stable
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version of GCC when the next macOS version is released. There are some
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+places in GCC that don’t handle darwin22 as a version, so we need to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+future-proof it (gcc/config.gcc and gcc/config/darwin-driver.c). We
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+align that code with what Apple clang does, i.e. accept all potential
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+major macOS versions until 99.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+This patch also homogenises the handling of darwin version numbers,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+where the majority of places use darwin2*, but some used darwin2[0-9]*.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Since there never was a darwin2.x version, the two are equivalent, and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+we prefer the simpler darwin2*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+gcc/ChangeLog:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   * config/darwin-driver.c: Make version code more future-proof.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   * config.gcc: Homogeneize darwin versions.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   * configure.ac: Homogeneize darwin versions.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   * configure: Regenerate.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+gcc/testsuite/ChangeLog:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   * gcc.dg/darwin-minversion-link.c: Test darwin21.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   * obj-c++.dg/cxx-ivars-3.mm: Homogeneize darwin versions.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   * obj-c++.dg/objc-gc-3.mm: Homogeneize darwin versions.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   * objc.dg/objc-gc-4.m: Homogeneize darwin versions.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+(cherry picked from commit f18cbc1ee1f421a0dd79dc389bef9a23dd4a761d)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gcc/config.gcc                                | 4 ++--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gcc/config/darwin-driver.c                    | 6 +++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gcc/configure                                 | 2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gcc/configure.ac                              | 2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gcc/testsuite/gcc.dg/darwin-minversion-link.c | 3 ++-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm       | 2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gcc/testsuite/obj-c++.dg/objc-gc-3.mm         | 2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gcc/testsuite/objc.dg/objc-gc-4.m             | 2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 8 files changed, 12 insertions(+), 11 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/config.gcc gcc/config.gcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 853ce7cc663..d5155c9d952 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/config.gcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/config.gcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1874,7 +1874,7 @@ hppa[12]*-*-hpux11*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           dwarf2=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-i[34567]86-*-darwin1[89]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++i[34567]86-*-darwin1[89]* | i[34567]86-*-darwin2*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   echo "Error: 32bit target is not supported after Darwin17" 1>&2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ i[34567]86-*-darwin*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1884,7 +1884,7 @@ i[34567]86-*-darwin*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch t-slibgcc"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-x86_64-*-darwin1[89]* | x86_64-*-darwin2[01]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++x86_64-*-darwin1[89]* | x86_64-*-darwin2*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # Only 64b from now
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   with_cpu=${with_cpu:-core2}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   tmake_file="${tmake_file} t-slibgcc"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/config/darwin-driver.c gcc/config/darwin-driver.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 8876be6e0dc..8455287c162 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/config/darwin-driver.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/config/darwin-driver.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -64,7 +64,8 @@ validate_macosx_version_min (const char *version_str)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   major = strtoul (version_str, &end, 10);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if (major < 10 || major > 12 ) /* macOS 10, 11, and 12 are known. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* macOS 10, 11, and 12 are known. clang accepts up to 99.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (major < 10 || major > 99)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Skip a separating period, if there's one.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -160,8 +161,7 @@ darwin_find_version_from_kernel (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Darwin20 sees a transition to macOS 11.  In this, it seems that the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      mapping to macOS minor version is now shifted to the kernel minor
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     version - 1 (at least for the initial releases).  At this stage, we
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     don't know what macOS version will correspond to Darwin21.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     version - 1 (at least for the initial releases).  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (major_vers >= 20)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       int minor_vers = *version_p++ - '0';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/configure gcc/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 82850dd7a53..0a0fa9e3a2c 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -26700,7 +26700,7 @@ $as_echo "$as_me: WARNING: LTO for $target requires binutils >= 2.20.1, but vers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     case $target_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-       darwin2[0-9]* | darwin19*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       darwin2* | darwin19*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for llvm assembler x86-pad-for-align option" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $as_echo_n "checking assembler for llvm assembler x86-pad-for-align option... " >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ${gcc_cv_as_mllvm_x86_pad_for_align+:} false; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/configure.ac gcc/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 5bea862a70a..f39d8de7da1 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4623,7 +4623,7 @@ foo: nop
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     case $target_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-       darwin2[[0-9]]* | darwin19*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       darwin2* | darwin19*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         gcc_GAS_CHECK_FEATURE([llvm assembler x86-pad-for-align option],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           gcc_cv_as_mllvm_x86_pad_for_align,,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           [-mllvm -x86-pad-for-align=false], [.text],,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.dg/darwin-minversion-link.c gcc/testsuite/gcc.dg/darwin-minversion-link.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 765fb799a91..b6ede31c985 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.dg/darwin-minversion-link.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.dg/darwin-minversion-link.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15,7 +15,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-additional-options "-mmacosx-version-min=010.013.06 -DCHECK=101306" { target *-*-darwin17* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-additional-options "-mmacosx-version-min=010.014.05 -DCHECK=101405" { target *-*-darwin18* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-additional-options "-mmacosx-version-min=010.015.06 -DCHECK=101506" { target *-*-darwin19* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-additional-options "-mmacosx-version-min=011.000.00 -DCHECK=110000" { target *-*-darwin20 } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-additional-options "-mmacosx-version-min=011.000.00 -DCHECK=110000" { target *-*-darwin20* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-additional-options "-mmacosx-version-min=012.000.00 -DCHECK=120000" { target *-*-darwin21* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ main ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 07123559d72..27bae630ce8 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2,7 +2,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // { dg-do run { target *-*-darwin* } }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-// { dg-skip-if "Headers incompatible with 10.4 APIs" { *-*-darwin1[1-9]* *-*-darwin2[0-9]* } { "-fnext-runtime" } { "" } }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// { dg-skip-if "Headers incompatible with 10.4 APIs" { *-*-darwin1[1-9]* *-*-darwin2* } { "-fnext-runtime" } { "" } }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // { dg-additional-options "-fobjc-call-cxx-cdtors -mmacosx-version-min=10.4 -framework Foundation" }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // This test has no equivalent or meaning for m64/ABI V2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // { dg-xfail-run-if "No Test Avail" {  *-*-darwin* && lp64 } { "-fnext-runtime" } { "" } }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/obj-c++.dg/objc-gc-3.mm gcc/testsuite/obj-c++.dg/objc-gc-3.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 45ffbc5553d..18f2cbe8869 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/obj-c++.dg/objc-gc-3.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/obj-c++.dg/objc-gc-3.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3,7 +3,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Contributed by Ziemowit Laski <zlaski@apple.com>  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-do compile } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-skip-if "GC API is an error from Darwin16." { *-*-darwin1[6-9]* *-*-darwin2[0-9]* } { "-fnext-runtime" } { "" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-skip-if "GC API is an error from Darwin16." { *-*-darwin1[6-9]* *-*-darwin2* } { "-fnext-runtime" } { "" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-fobjc-gc" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-prune-output "cc1objplus: warning: '-fobjc-gc' is ignored for '-fgnu-runtime'" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/objc.dg/objc-gc-4.m gcc/testsuite/objc.dg/objc-gc-4.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 8102a5a532f..1b2d9674969 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/objc.dg/objc-gc-4.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/objc.dg/objc-gc-4.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3,7 +3,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Contributed by Ziemowit Laski <zlaski@apple.com>  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-do compile } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-skip-if "GC API is an error from Darwin16." { *-*-darwin1[6-9]* *-*-darwin2[0-9]* } { "-fnext-runtime" } { "" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-skip-if "GC API is an error from Darwin16." { *-*-darwin1[6-9]* *-*-darwin2* } { "-fnext-runtime" } { "" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-fobjc-gc" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-prune-output "cc1obj: warning: '-fobjc-gc' is ignored for '-fgnu-runtime'" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-- 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.38.2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span></pre><pre style='margin:0'>

</pre>