<pre style='margin:0'>
Joshua Root (jmroot) pushed a commit to branch master
in repository macports-base.
</pre>
<p><a href="https://github.com/macports/macports-base/commit/b2617a269dbb84ba90daf69c158718573d5db33d">https://github.com/macports/macports-base/commit/b2617a269dbb84ba90daf69c158718573d5db33d</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 b2617a26 support compiler.c_standard 2017
</span>b2617a26 is described below
<span style='display:block; white-space:pre;color:#808000;'>commit b2617a269dbb84ba90daf69c158718573d5db33d
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Fri Mar 26 01:49:30 2021 +1100
<span style='display:block; white-space:pre;color:#404040;'> support compiler.c_standard 2017
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> This doesn't do a whole lot since this revision of the standard only
</span><span style='display:block; white-space:pre;color:#404040;'> fixes errata in the spec, but it does let you guarantee a compiler that
</span><span style='display:block; white-space:pre;color:#404040;'> accepts -std=c17 for projects that insist on using it. I guess it's
</span><span style='display:block; white-space:pre;color:#404040;'> theoretically possible that following the earlier erroneous spec
</span><span style='display:block; white-space:pre;color:#404040;'> results in compiler behaviour that breaks some code, too, though
</span><span style='display:block; white-space:pre;color:#404040;'> implementors usually won't follow the letter of the spec if it says to
</span><span style='display:block; white-space:pre;color:#404040;'> do something clearly broken.
</span>---
src/port1.0/portconfigure.tcl | 19 +++++++++++++------
1 file changed, 13 insertions(+), 6 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/port1.0/portconfigure.tcl b/src/port1.0/portconfigure.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 2f5c311a..1083e5e0 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/port1.0/portconfigure.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/port1.0/portconfigure.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -831,9 +831,10 @@ proc portconfigure::max_version {verA verB} {
</span> #--------------------------------------------------------------------
#| C Standard | Clang | Xcode Clang | Xcode | GCC |
#|------------------------------------------------------------------|
<span style='display:block; white-space:pre;background:#ffe0e0;'>-#| 1989 (C89) | - | - | - | - |
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#| 1999 (C99) | - | - | - | 4.0 |
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#| 2011 (C11) | 3.3 | 500.2.75 | 5.0 | 4.9 |
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#| 1989 (C89) | - | - | - | - |
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#| 1999 (C99) | - | - | - | 4.0 |
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#| 2011 (C11) | 3.3 | 500.2.75 | 5.0 | 4.9 |
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#| 2017 (C17) | 6.0 | 1000.11.45.2 | 10.0 | 8.0 |
</span> #--------------------------------------------------------------------
#
# https://clang.llvm.org/cxx_status.html
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -901,7 +902,9 @@ proc portconfigure::get_min_command_line {compiler} {
</span> # no Xcode clang can build against libc++ on < 10.7
return none
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {${compiler.c_standard} >= 2011} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${compiler.c_standard} >= 2017} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set min_value [max_version $min_value 1000.11.45.2]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } elseif {${compiler.c_standard} >= 2011} {
</span> set min_value [max_version $min_value 500.2.75]
}
if {${compiler.cxx_standard} >= 2017} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -952,7 +955,9 @@ proc portconfigure::get_min_command_line {compiler} {
</span> proc portconfigure::get_min_clang {} {
global compiler.c_standard compiler.cxx_standard compiler.openmp_version compiler.thread_local_storage
set min_value 1.0
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {${compiler.c_standard} >= 2011} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${compiler.c_standard} >= 2017} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set min_value [max_version $min_value 6.0]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } elseif {${compiler.c_standard} >= 2011} {
</span> set min_value [max_version $min_value 3.1]
}
if {${compiler.cxx_standard} >= 2017} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -996,7 +1001,9 @@ proc portconfigure::get_min_gcc {} {
</span> }
set min_value 1.0
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {${compiler.c_standard} >= 2011} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${compiler.c_standard} >= 2017} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set min_value [max_version $min_value 8.0]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } elseif {${compiler.c_standard} >= 2011} {
</span> set min_value [max_version $min_value 4.3]
} elseif {${compiler.c_standard} >= 1999} {
set min_value [max_version $min_value 4.0]
</pre><pre style='margin:0'>
</pre>