diff options
Diffstat (limited to 'contrib/llvm/patches/patch-09-clang-r250657-openmp.diff')
-rw-r--r-- | contrib/llvm/patches/patch-09-clang-r250657-openmp.diff | 182 |
1 files changed, 0 insertions, 182 deletions
diff --git a/contrib/llvm/patches/patch-09-clang-r250657-openmp.diff b/contrib/llvm/patches/patch-09-clang-r250657-openmp.diff deleted file mode 100644 index e784673..0000000 --- a/contrib/llvm/patches/patch-09-clang-r250657-openmp.diff +++ /dev/null @@ -1,182 +0,0 @@ -Pull in r248379 from upstream clang trunk (by Jörg Sonnenberger): - - Refactor library decision for -fopenmp support from Darwin into a - function for sharing with other platforms. - -Pull in r248424 from upstream clang trunk (by Jörg Sonnenberger): - - Push OpenMP linker flags after linker input on Darwin. Don't add any - libraries if -nostdlib is specified. Test. - -Pull in r248426 from upstream clang trunk (by Jörg Sonnenberger): - - Support linking against OpenMP runtime on NetBSD. - -Pull in r250657 from upstream clang trunk (by Dimitry Andric): - - Support linking against OpenMP runtime on FreeBSD. - -Introduced here: http://svnweb.freebsd.org/changeset/base/289523 - -Index: tools/clang/lib/Driver/Tools.cpp -=================================================================== ---- tools/clang/lib/Driver/Tools.cpp -+++ tools/clang/lib/Driver/Tools.cpp -@@ -2460,6 +2460,28 @@ static OpenMPRuntimeKind getOpenMPRuntime(const To - return RT; - } - -+static void addOpenMPRuntime(ArgStringList &CmdArgs, const ToolChain &TC, -+ const ArgList &Args) { -+ if (!Args.hasFlag(options::OPT_fopenmp, options::OPT_fopenmp_EQ, -+ options::OPT_fno_openmp, false)) -+ return; -+ -+ switch (getOpenMPRuntime(TC, Args)) { -+ case OMPRT_OMP: -+ CmdArgs.push_back("-lomp"); -+ break; -+ case OMPRT_GOMP: -+ CmdArgs.push_back("-lgomp"); -+ break; -+ case OMPRT_IOMP5: -+ CmdArgs.push_back("-liomp5"); -+ break; -+ case OMPRT_Unknown: -+ // Already diagnosed. -+ break; -+ } -+} -+ - static void addSanitizerRuntime(const ToolChain &TC, const ArgList &Args, - ArgStringList &CmdArgs, StringRef Sanitizer, - bool IsShared) { -@@ -6527,24 +6549,6 @@ void darwin::Linker::ConstructJob(Compilation &C, - - Args.AddAllArgs(CmdArgs, options::OPT_L); - -- if (Args.hasFlag(options::OPT_fopenmp, options::OPT_fopenmp_EQ, -- options::OPT_fno_openmp, false)) { -- switch (getOpenMPRuntime(getToolChain(), Args)) { -- case OMPRT_OMP: -- CmdArgs.push_back("-lomp"); -- break; -- case OMPRT_GOMP: -- CmdArgs.push_back("-lgomp"); -- break; -- case OMPRT_IOMP5: -- CmdArgs.push_back("-liomp5"); -- break; -- case OMPRT_Unknown: -- // Already diagnosed. -- break; -- } -- } -- - AddLinkerInputs(getToolChain(), Inputs, Args, CmdArgs); - // Build the input file for -filelist (list of linker input files) in case we - // need it later -@@ -6563,6 +6567,10 @@ void darwin::Linker::ConstructJob(Compilation &C, - InputFileList.push_back(II.getFilename()); - } - -+ if (!Args.hasArg(options::OPT_nostdlib) && -+ !Args.hasArg(options::OPT_nodefaultlibs)) -+ addOpenMPRuntime(CmdArgs, getToolChain(), Args); -+ - if (isObjCRuntimeLinked(Args) && !Args.hasArg(options::OPT_nostdlib) && - !Args.hasArg(options::OPT_nodefaultlibs)) { - // We use arclite library for both ARC and subscripting support. -@@ -7358,6 +7366,7 @@ void freebsd::Linker::ConstructJob(Compilation &C, - - if (!Args.hasArg(options::OPT_nostdlib) && - !Args.hasArg(options::OPT_nodefaultlibs)) { -+ addOpenMPRuntime(CmdArgs, ToolChain, Args); - if (D.CCCIsCXX()) { - ToolChain.AddCXXStdlibLibArgs(Args, CmdArgs); - if (Args.hasArg(options::OPT_pg)) -@@ -7673,6 +7682,7 @@ void netbsd::Linker::ConstructJob(Compilation &C, - - if (!Args.hasArg(options::OPT_nostdlib) && - !Args.hasArg(options::OPT_nodefaultlibs)) { -+ addOpenMPRuntime(CmdArgs, getToolChain(), Args); - if (D.CCCIsCXX()) { - getToolChain().AddCXXStdlibLibArgs(Args, CmdArgs); - CmdArgs.push_back("-lm"); -Index: tools/clang/test/Driver/fopenmp.c -=================================================================== ---- tools/clang/test/Driver/fopenmp.c -+++ tools/clang/test/Driver/fopenmp.c -@@ -1,6 +1,15 @@ - // RUN: %clang -target x86_64-linux-gnu -fopenmp=libomp -c %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-CC1-OPENMP - // RUN: %clang -target x86_64-linux-gnu -fopenmp=libgomp -c %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-CC1-NO-OPENMP - // RUN: %clang -target x86_64-linux-gnu -fopenmp=libiomp5 -c %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-CC1-OPENMP -+// RUN: %clang -target x86_64-apple-darwin -fopenmp=libomp -c %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-CC1-OPENMP -+// RUN: %clang -target x86_64-apple-darwin -fopenmp=libgomp -c %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-CC1-NO-OPENMP -+// RUN: %clang -target x86_64-apple-darwin -fopenmp=libiomp5 -c %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-CC1-OPENMP -+// RUN: %clang -target x86_64-freebsd -fopenmp=libomp -c %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-CC1-OPENMP -+// RUN: %clang -target x86_64-freebsd -fopenmp=libgomp -c %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-CC1-NO-OPENMP -+// RUN: %clang -target x86_64-freebsd -fopenmp=libiomp5 -c %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-CC1-OPENMP -+// RUN: %clang -target x86_64-netbsd -fopenmp=libomp -c %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-CC1-OPENMP -+// RUN: %clang -target x86_64-netbsd -fopenmp=libgomp -c %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-CC1-NO-OPENMP -+// RUN: %clang -target x86_64-netbsd -fopenmp=libiomp5 -c %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-CC1-OPENMP - // - // CHECK-CC1-OPENMP: "-cc1" - // CHECK-CC1-OPENMP: "-fopenmp" -@@ -12,6 +21,30 @@ - // RUN: %clang -target x86_64-linux-gnu -fopenmp=libgomp %s -o %t -### 2>&1 | FileCheck %s --check-prefix=CHECK-LD-GOMP - // RUN: %clang -target x86_64-linux-gnu -fopenmp=libiomp5 %s -o %t -### 2>&1 | FileCheck %s --check-prefix=CHECK-LD-IOMP5 - // -+// RUN: %clang -nostdlib -target x86_64-linux-gnu -fopenmp=libomp %s -o %t -### 2>&1 | FileCheck %s --check-prefix=CHECK-NO-OMP -+// RUN: %clang -nostdlib -target x86_64-linux-gnu -fopenmp=libgomp %s -o %t -### 2>&1 | FileCheck %s --check-prefix=CHECK-NO-GOMP -+// RUN: %clang -nostdlib -target x86_64-linux-gnu -fopenmp=libiomp5 %s -o %t -### 2>&1 | FileCheck %s --check-prefix=CHECK-NO-IOMP5 -+// -+// RUN: %clang -target x86_64-darwin -fopenmp=libomp %s -o %t -### 2>&1 | FileCheck %s --check-prefix=CHECK-LD-OMP -+// RUN: %clang -target x86_64-darwin -fopenmp=libgomp %s -o %t -### 2>&1 | FileCheck %s --check-prefix=CHECK-LD-GOMP -+// RUN: %clang -target x86_64-darwin -fopenmp=libiomp5 %s -o %t -### 2>&1 | FileCheck %s --check-prefix=CHECK-LD-IOMP5 -+// -+// RUN: %clang -nostdlib -target x86_64-darwin -fopenmp=libomp %s -o %t -### 2>&1 | FileCheck %s --check-prefix=CHECK-NO-OMP -+// RUN: %clang -nostdlib -target x86_64-darwin -fopenmp=libgomp %s -o %t -### 2>&1 | FileCheck %s --check-prefix=CHECK-NO-GOMP -+// RUN: %clang -nostdlib -target x86_64-darwin -fopenmp=libiomp5 %s -o %t -### 2>&1 | FileCheck %s --check-prefix=CHECK-NO-IOMP5 -+// -+// RUN: %clang -target x86_64-netbsd -fopenmp=libomp %s -o %t -### 2>&1 | FileCheck %s --check-prefix=CHECK-LD-OMP -+// RUN: %clang -target x86_64-netbsd -fopenmp=libgomp %s -o %t -### 2>&1 | FileCheck %s --check-prefix=CHECK-LD-GOMP -+// RUN: %clang -target x86_64-netbsd -fopenmp=libiomp5 %s -o %t -### 2>&1 | FileCheck %s --check-prefix=CHECK-LD-IOMP5 -+// -+// RUN: %clang -nostdlib -target x86_64-freebsd -fopenmp=libomp %s -o %t -### 2>&1 | FileCheck %s --check-prefix=CHECK-NO-OMP -+// RUN: %clang -nostdlib -target x86_64-freebsd -fopenmp=libgomp %s -o %t -### 2>&1 | FileCheck %s --check-prefix=CHECK-NO-GOMP -+// RUN: %clang -nostdlib -target x86_64-freebsd -fopenmp=libiomp5 %s -o %t -### 2>&1 | FileCheck %s --check-prefix=CHECK-NO-IOMP5 -+// -+// RUN: %clang -nostdlib -target x86_64-netbsd -fopenmp=libomp %s -o %t -### 2>&1 | FileCheck %s --check-prefix=CHECK-NO-OMP -+// RUN: %clang -nostdlib -target x86_64-netbsd -fopenmp=libgomp %s -o %t -### 2>&1 | FileCheck %s --check-prefix=CHECK-NO-GOMP -+// RUN: %clang -nostdlib -target x86_64-netbsd -fopenmp=libiomp5 %s -o %t -### 2>&1 | FileCheck %s --check-prefix=CHECK-NO-IOMP5 -+// - // CHECK-LD-OMP: "{{.*}}ld{{(.exe)?}}" - // CHECK-LD-OMP: "-lomp" - // -@@ -21,6 +54,15 @@ - // CHECK-LD-IOMP5: "{{.*}}ld{{(.exe)?}}" - // CHECK-LD-IOMP5: "-liomp5" - // -+// CHECK-NO-OMP: "{{.*}}ld{{(.exe)?}}" -+// CHECK-NO-OMP-NOT: "-lomp" -+// -+// CHECK-NO-GOMP: "{{.*}}ld{{(.exe)?}}" -+// CHECK-NO-GOMP-NOT: "-lgomp" -+// -+// CHECK-NO-IOMP5: "{{.*}}ld{{(.exe)?}}" -+// CHECK-NO-IOMP5-NOT: "-liomp5" -+// - // We'd like to check that the default is sane, but until we have the ability - // to *always* semantically analyze OpenMP without always generating runtime - // calls (in the event of an unsupported runtime), we don't have a good way to -@@ -28,6 +70,9 @@ - // OpenMP runtime. - // - // RUN: %clang -target x86_64-linux-gnu -fopenmp %s -o %t -### 2>&1 | FileCheck %s --check-prefix=CHECK-LD-ANY -+// RUN: %clang -target x86_64-darwin -fopenmp %s -o %t -### 2>&1 | FileCheck %s --check-prefix=CHECK-LD-ANY -+// RUN: %clang -target x86_64-freebsd -fopenmp %s -o %t -### 2>&1 | FileCheck %s --check-prefix=CHECK-LD-ANY -+// RUN: %clang -target x86_64-netbsd -fopenmp %s -o %t -### 2>&1 | FileCheck %s --check-prefix=CHECK-LD-ANY - // - // CHECK-LD-ANY: "{{.*}}ld{{(.exe)?}}" - // CHECK-LD-ANY: "-l{{(omp|gomp|iomp5)}}" |