<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/7af15ca27f5235e0924c68d58ad9809cae13bf08">https://github.com/macports/macports-ports/commit/7af15ca27f5235e0924c68d58ad9809cae13bf08</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 7af15ca27f5235e0924c68d58ad9809cae13bf08
</span>Author: Marcus Calhoun-Lopez <mcalhoun@macports.org>
AuthorDate: Thu Jan 12 05:49:17 2023 -0700

<span style='display:block; white-space:pre;color:#404040;'>    llvm-15: use system libc++ with -fopenmp
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    By default, `-fopenmp` adds -L${prefix}/libexec/llvm-15/lib.
</span><span style='display:block; white-space:pre;color:#404040;'>    libomp does not reside there but llvm's libc++ does.
</span><span style='display:block; white-space:pre;color:#404040;'>    So `-fopenmp` causes the binary to link against llvm's libc++
</span><span style='display:block; white-space:pre;color:#404040;'>    instead of the system one.
</span>---
 lang/llvm-15/Portfile                              |  2 +-
 ...-MacPorts-only-clang-use-MP-omp-locations.patch | 50 +++++++++++++---------
 2 files changed, 30 insertions(+), 22 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-15/Portfile b/lang/llvm-15/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index a1c31a59a55..cfe89f37017 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/llvm-15/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/llvm-15/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -28,7 +28,7 @@ version                 ${llvm_version}.0.7
</span> name                    llvm-${llvm_version}
 revision                0
 subport                 mlir-${llvm_version}  { revision 0 }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-subport                 clang-${llvm_version} { revision 0 }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+subport                 clang-${llvm_version} { revision 1 }
</span> subport                 lldb-${llvm_version}  { revision 0 }
 subport                 flang-${llvm_version} { revision 0 }
 
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-15/files/0001-MacPorts-only-clang-use-MP-omp-locations.patch b/lang/llvm-15/files/0001-MacPorts-only-clang-use-MP-omp-locations.patch
</span><span style='display:block; white-space:pre;color:#808080;'>index 99509d2e13d..2b69382fed0 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/llvm-15/files/0001-MacPorts-only-clang-use-MP-omp-locations.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/llvm-15/files/0001-MacPorts-only-clang-use-MP-omp-locations.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -26,25 +26,33 @@ diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolC
</span> index bcaea71dca94..a88833055be7 100644
 --- a/clang/lib/Driver/ToolChains/CommonArgs.cpp
 +++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -668,12 +668,18 @@ bool tools::addOpenMPRuntime(ArgStringList &CmdArgs, const ToolChain &TC,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -652,25 +652,17 @@
</span>  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-   switch (RTKind) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   case Driver::OMPRT_OMP:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    // Automatically find MacPorts' libomp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    CmdArgs.push_back("-L@@PREFIX@@/lib/libomp");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     CmdArgs.push_back("-lomp");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   case Driver::OMPRT_GOMP:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    // Automatically find MacPorts' libomp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    CmdArgs.push_back("-L@@PREFIX@@/lib/libomp");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     CmdArgs.push_back("-lgomp");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   case Driver::OMPRT_IOMP5:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    // Automatically find MacPorts' libomp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    CmdArgs.push_back("-L@@PREFIX@@/lib/libomp");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     CmdArgs.push_back("-liomp5");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   case Driver::OMPRT_Unknown:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-2.21.1 (Apple Git-122.3)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (Args.hasFlag(options::OPT_fopenmp_implicit_rpath,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    options::OPT_fno_openmp_implicit_rpath, true)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    // Default to clang lib / lib64 folder, i.e. the same location as device
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    // runtime
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    SmallString<256> DefaultLibPath =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        llvm::sys::path::parent_path(TC.getDriver().Dir);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    llvm::sys::path::append(DefaultLibPath, Twine("lib") + CLANG_LIBDIR_SUFFIX);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    // MacPorts's runtime
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     CmdArgs.push_back("-rpath");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    CmdArgs.push_back(Args.MakeArgString(DefaultLibPath));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    CmdArgs.push_back("@@PREFIX@@/lib/libomp");
</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;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void tools::addOpenMPRuntimeLibraryPath(const ToolChain &TC,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                         const ArgList &Args,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                         ArgStringList &CmdArgs) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  // Default to clang lib / lib64 folder, i.e. the same location as device
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  // runtime.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  SmallString<256> DefaultLibPath =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      llvm::sys::path::parent_path(TC.getDriver().Dir);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  llvm::sys::path::append(DefaultLibPath, Twine("lib") + CLANG_LIBDIR_SUFFIX);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  CmdArgs.push_back(Args.MakeArgString("-L" + DefaultLibPath));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  // Automatically find MacPorts's libomp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  CmdArgs.push_back("-L@@PREFIX@@/lib/libomp");
</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;'>+ void tools::addArchSpecificRPath(const ToolChain &TC, const ArgList &Args,
</span></pre><pre style='margin:0'>

</pre>