mirror of
https://github.com/intel/llvm.git
synced 2026-02-02 02:00:03 +08:00
Push OpenMP linker flags after linker input on Darwin. Don't add any
libraries if -nostdlib is specified. Test. llvm-svn: 248424
This commit is contained in:
@@ -6749,8 +6749,6 @@ void darwin::Linker::ConstructJob(Compilation &C, const JobAction &JA,
|
||||
|
||||
Args.AddAllArgs(CmdArgs, options::OPT_L);
|
||||
|
||||
addOpenMPRuntime(CmdArgs, getToolChain(), Args);
|
||||
|
||||
AddLinkerInputs(getToolChain(), Inputs, Args, CmdArgs);
|
||||
// Build the input file for -filelist (list of linker input files) in case we
|
||||
// need it later
|
||||
@@ -6769,6 +6767,10 @@ void darwin::Linker::ConstructJob(Compilation &C, const JobAction &JA,
|
||||
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.
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
// 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
|
||||
//
|
||||
// CHECK-CC1-OPENMP: "-cc1"
|
||||
// CHECK-CC1-OPENMP: "-fopenmp"
|
||||
@@ -12,6 +15,18 @@
|
||||
// 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
|
||||
//
|
||||
// CHECK-LD-OMP: "{{.*}}ld{{(.exe)?}}"
|
||||
// CHECK-LD-OMP: "-lomp"
|
||||
//
|
||||
@@ -21,6 +36,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 +52,7 @@
|
||||
// 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
|
||||
//
|
||||
// CHECK-LD-ANY: "{{.*}}ld{{(.exe)?}}"
|
||||
// CHECK-LD-ANY: "-l{{(omp|gomp|iomp5)}}"
|
||||
|
||||
Reference in New Issue
Block a user