summaryrefslogtreecommitdiff
path: root/devel/llvm39/files/clang-patch-fopenmp.diff
diff options
context:
space:
mode:
Diffstat (limited to 'devel/llvm39/files/clang-patch-fopenmp.diff')
-rw-r--r--devel/llvm39/files/clang-patch-fopenmp.diff28
1 files changed, 28 insertions, 0 deletions
diff --git a/devel/llvm39/files/clang-patch-fopenmp.diff b/devel/llvm39/files/clang-patch-fopenmp.diff
new file mode 100644
index 000000000000..5216a420e710
--- /dev/null
+++ b/devel/llvm39/files/clang-patch-fopenmp.diff
@@ -0,0 +1,28 @@
+--- tools/clang/lib/Driver/Tools.cpp.orig 2016-09-02 19:55:01.000873648 +0000
++++ tools/clang/lib/Driver/Tools.cpp 2016-09-02 19:54:32.001875868 +0000
+@@ -2733,13 +2733,22 @@
+
+ switch (getOpenMPRuntime(TC, Args)) {
+ case OMPRT_OMP:
+- CmdArgs.push_back("-lomp");
++ if (TC.getTriple().getOS() != llvm::Triple::FreeBSD || TC.isCrossCompiling() || !llvm::sys::fs::exists("%%LLVM_PREFIX%%/lib/libomp.so"))
++ CmdArgs.push_back("-lomp");
++ else
++ CmdArgs.push_back("%%LLVM_PREFIX%%/lib/libomp.so");
+ break;
+ case OMPRT_GOMP:
+- CmdArgs.push_back("-lgomp");
++ if (TC.getTriple().getOS() != llvm::Triple::FreeBSD || TC.isCrossCompiling() || !llvm::sys::fs::exists("%%LLVM_PREFIX%%/lib/libomp.so"))
++ CmdArgs.push_back("-lgomp");
++ else
++ CmdArgs.push_back("%%LLVM_PREFIX%%/lib/libgomp.so");
+ break;
+ case OMPRT_IOMP5:
+- CmdArgs.push_back("-liomp5");
++ if (TC.getTriple().getOS() != llvm::Triple::FreeBSD || TC.isCrossCompiling() || !llvm::sys::fs::exists("%%LLVM_PREFIX%%/lib/libomp.so"))
++ CmdArgs.push_back("-liomp5");
++ else
++ CmdArgs.push_back("%%LLVM_PREFIX%%/lib/libiomp5.so");
+ break;
+ case OMPRT_Unknown:
+ // Already diagnosed.