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