<pre style='margin:0'>
Marcus Calhoun-Lopez (MarcusCalhoun-Lopez) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/35ea8581e16eb3cc92f03ec6bc3f21959d0a44e4">https://github.com/macports/macports-ports/commit/35ea8581e16eb3cc92f03ec6bc3f21959d0a44e4</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 35ea8581e16eb3cc92f03ec6bc3f21959d0a44e4
</span>Author: Marcus Calhoun-Lopez <mcalhoun@macports.org>
AuthorDate: Sat Apr 21 11:50:31 2018 -0700

<span style='display:block; white-space:pre;color:#404040;'>    languages PG: allow thread-local storage requirement
</span>---
 _resources/port1.0/group/languages-1.0.tcl | 28 +++++++++++++++++++++++++---
 1 file changed, 25 insertions(+), 3 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/_resources/port1.0/group/languages-1.0.tcl b/_resources/port1.0/group/languages-1.0.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 13f7faf..9a456db 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/_resources/port1.0/group/languages-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/_resources/port1.0/group/languages-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -51,6 +51,9 @@
</span> #   compiler.mpi              MacPorts port that provides MPI
 #                             Values: blank (Default), mpich, openmpi
 #
<span style='display:block; white-space:pre;background:#e0ffe0;'>+#   compiler.thread_local_storage  Is thread local storage required?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#                                  Values: no (Default), yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span> # This PortGroup sets the compiler, compiler dependencies,
 #    and the C++ standard library switches.
 #
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -63,7 +66,8 @@ options                        \
</span>     compiler.require_fortran   \
     compiler.fortran_fallback  \
     compiler.openmp_version    \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    compiler.mpi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    compiler.mpi               \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    compiler.thread_local_storage
</span> 
 default compiler.c_standard        1989
 default compiler.cxx_standard      1998
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -71,6 +75,7 @@ default compiler.require_fortran   no
</span> default compiler.fortran_fallback  {[portconfigure::get_fortran_fallback]}
 default compiler.openmp_version    {}
 default compiler.mpi               {}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+default compiler.thread_local_storage  no
</span> 
 # replacement for portconfigure.tcl version
 # change: add new compilers (G95, MPI, OpenMP)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -175,7 +180,8 @@ proc portconfigure::get_valid_compilers {{full_list no} {just_fortran no}} {
</span>         compiler.cxx_standard    \
         compiler.openmp_version  \
         os.major                 \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        cxx_stdlib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        cxx_stdlib               \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        compiler.thread_local_storage
</span> 
     # Check for platforms without Xcode
     if {$xcodeversion eq "none" || $xcodeversion eq ""} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -236,6 +242,19 @@ proc portconfigure::get_valid_compilers {{full_list no} {just_fortran no}} {
</span>         set default_xcode_ok 0
     }
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    # thread-local storage (__thread) only works on Mac OS X Lion and above
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # see https://stackoverflow.com/questions/23791060/c-thread-local-storage-clang-503-0-40-mac-osx/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # N.B. GCC emulates thread-local storage
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${compiler.thread_local_storage} && ${os.major} < 11} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set tls_an_issue 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set tls_an_issue 0
</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;'>+    if {${tls_an_issue}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set default_xcode_ok 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>     # https://developer.apple.com/library/content/releasenotes/DeveloperTools/RN-Xcode/Chapters/Introduction.html
     # https://developer.apple.com/library/content/documentation/CompilerTools/Conceptual/LLVMCompilerOverview/index.html
     # Xcode 3.2 relase notes (Link?)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -305,10 +324,12 @@ proc portconfigure::get_valid_compilers {{full_list no} {just_fortran no}} {
</span>         lappend gcc_compilers macports-gcc-5
     }
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    set clang_compilers ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {!${tls_an_issue}} {
</span>     # does Clang work on all i386 and x86_64 systems?
     # according to https://packages.macports.org/clang-5.0/,
     #    clang builds back to Mac OS X 10.6
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    set clang_compilers macports-clang-5.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    lappend clang_compilers macports-clang-5.0
</span>     if {${compiler.cxx_standard} < 2017 && [vercmp ${compiler.openmp_version} 4] < 0} {
         # allow latest Clang to be blacklisted by ports
         lappend clang_compilers macports-clang-4.0
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -323,6 +344,7 @@ proc portconfigure::get_valid_compilers {{full_list no} {just_fortran no}} {
</span>             }
         }
     }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span> 
     if {${just_fortran}} {
         lappend compilers {*}${gcc_compilers}
</pre><pre style='margin:0'>

</pre>