<pre style='margin:0'>
Chris Jones (cjones051073) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/7f9e2fb69924a606ed00a7c09d0d07cfd9a0604b">https://github.com/macports/macports-ports/commit/7f9e2fb69924a606ed00a7c09d0d07cfd9a0604b</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 7f9e2fb6992 gcc11: add macOS 12 support
</span>7f9e2fb6992 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 7f9e2fb69924a606ed00a7c09d0d07cfd9a0604b
</span>Author: Knapoc <Knapoc@users.noreply.github.com>
AuthorDate: Tue Oct 26 09:43:17 2021 +0200

<span style='display:block; white-space:pre;color:#404040;'>    gcc11: add macOS 12 support
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Closes: https://trac.macports.org/ticket/63677
</span>---
 lang/gcc11/Portfile                          | 12 +++-
 lang/gcc11/files/patch-darwin21-support.diff | 92 ++++++++++++++++++++++++++++
 2 files changed, 102 insertions(+), 2 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/gcc11/Portfile b/lang/gcc11/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index e62c65434e3..89aca0b24d7 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/gcc11/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/gcc11/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -79,14 +79,22 @@ if { ${os.platform} eq "darwin" && ${os.major} >= 17 } {
</span>     # However, given that SIP is enabled by default in macOS, including on our
     # build bots, we already have to assume that ignoring DYLD_LIBRARY_PATH will
     # still produce a valid toolchain.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    # 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    #
</span>     # Given that, we go ahead and disable DYLD_LIBRARY_PATH explicitly, avoiding
     # otherwise unworkably long build-times for hosts with SIP disabled.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    # 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    #
</span>     # See also: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84257
     patchfiles-append patch-disable-dyld_library_path.diff
 }
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+if { ${os.platform} eq "darwin" && ${os.major} == 21 } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Add preliminary Darwin 21 support to GCC 11.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # This should be removed, when GCC 11 supports Darwin 21 officially and the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # respective version is used by macports.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # See also: https://github.com/iains/gcc-darwin-arm64/commit/20f61faaed3b335d792e38892d826054d2ac9f15
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    patchfiles-append patch-darwin21-support.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> if { ${configure.build_arch} eq "i386" } {
     # fix no-pie clang bug bootstrapping gcc on i386
     patchfiles-append patch-iains-i686-clang-bootstrap.diff
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/gcc11/files/patch-darwin21-support.diff b/lang/gcc11/files/patch-darwin21-support.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..d8aff70a7bf
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/gcc11/files/patch-darwin21-support.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,92 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+As seen in commit https://github.com/iains/gcc-darwin-arm64/commit/20f61faaed3b335d792e38892d826054d2ac9f15
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+this patch adds Darwin 21 support to GCC 11
</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 fb1f06f3da8..b447ec4c8e2 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;'>+@@ -686,6 +686,11 @@ case ${target} in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         macos_maj=11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         def_ld64=609.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      *-*-darwin21*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # Darwin 21 corresponds to macOS 12.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        macos_maj=12
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        def_ld64=609.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       *-*-darwin)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         case ${cpu_type} in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           aarch64) macos_maj=11 ;;
</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 951a998775f..62d28fcea50 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,7 @@ 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] > 11)
</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;'>+     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;'>+diff --git gcc/config/darwin-driver.c gcc/config/darwin-driver.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a036e091c48..bca71983674 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,17 +64,17 @@ 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 > 11 ) /* MacOS 10 and 11 are known. */
</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;'>+     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;'>+   version_str = end + ((*end == '.') ? 1 : 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if (major == 11 && *end != '\0' && !ISDIGIT (version_str[0]))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     /* For MacOS 11, we allow just the major number, but if the minor is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (major >= 11 && *end != '\0' && !ISDIGIT (version_str[0]))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     /* For MacOS 11 and newer, we allow just the major number, but if the minor is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   there it must be numeric.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  else if (major == 11 && *end == '\0')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  else if (major >= 11 && *end == '\0')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     /* We will rewrite 11 =>  11.0.0.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     need_rewrite = true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   else if (major == 10 && (*end == '\0' || !ISDIGIT (version_str[0])))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -160,10 +160,10 @@ 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 macos_vers = major_vers - 9;
</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;'>+       if (ISDIGIT (*version_p))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   minor_vers = minor_vers * 10 + (*version_p++ - '0');
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -172,7 +172,7 @@ darwin_find_version_from_kernel (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       if (minor_vers > 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   minor_vers -= 1; /* Kernel 20.3 => macOS 11.2.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       /* It's not yet clear whether patch level will be considered.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      asprintf (&new_flag, "11.%02d.00", minor_vers);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      asprintf (&new_flag, "%d.%02d.00", macos_vers, minor_vers);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   else if (major_vers - 4 <= 4)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     /* On 10.4 and earlier, the old linker is used which does not
</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..e142a5830a4 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;'>+@@ -16,6 +16,7 @@
</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=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></pre><pre style='margin:0'>

</pre>