<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>