1*67e74705SXin Li // Test the that the driver produces reasonable linker invocations with 2*67e74705SXin Li // -fopenmp or -fopenmp|libgomp. 3*67e74705SXin Li // 4*67e74705SXin Li // FIXME: Replace DEFAULT_OPENMP_LIB below with the value chosen at configure time. 5*67e74705SXin Li // 6*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 7*67e74705SXin Li // RUN: -fopenmp -target i386-unknown-linux \ 8*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-LD-32 %s 9*67e74705SXin Li // CHECK-LD-32: "{{.*}}ld{{(.exe)?}}" 10*67e74705SXin Li // CHECK-LD-32: "-l[[DEFAULT_OPENMP_LIB:[^"]*]]" "-lgcc" 11*67e74705SXin Li // CHECK-LD-32: "-lpthread" "-lc" 12*67e74705SXin Li // 13*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 14*67e74705SXin Li // RUN: -fopenmp -target x86_64-unknown-linux \ 15*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-LD-64 %s 16*67e74705SXin Li // CHECK-LD-64: "{{.*}}ld{{(.exe)?}}" 17*67e74705SXin Li // CHECK-LD-64: "-l[[DEFAULT_OPENMP_LIB:[^"]*]]" "-lgcc" 18*67e74705SXin Li // CHECK-LD-64: "-lpthread" "-lc" 19*67e74705SXin Li // 20*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 21*67e74705SXin Li // RUN: -fopenmp=libgomp -target i386-unknown-linux \ 22*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-GOMP-LD-32 %s 23*67e74705SXin Li // CHECK-GOMP-LD-32: "{{.*}}ld{{(.exe)?}}" 24*67e74705SXin Li // CHECK-GOMP-LD-32: "-lgomp" "-lrt" "-lgcc" 25*67e74705SXin Li // CHECK-GOMP-LD-32: "-lpthread" "-lc" 26*67e74705SXin Li // 27*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 28*67e74705SXin Li // RUN: -fopenmp=libgomp -target x86_64-unknown-linux \ 29*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-GOMP-LD-64 %s 30*67e74705SXin Li // CHECK-GOMP-LD-64: "{{.*}}ld{{(.exe)?}}" 31*67e74705SXin Li // CHECK-GOMP-LD-64: "-lgomp" "-lrt" "-lgcc" 32*67e74705SXin Li // CHECK-GOMP-LD-64: "-lpthread" "-lc" 33*67e74705SXin Li // 34*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 35*67e74705SXin Li // RUN: -fopenmp -target i386-unknown-linux \ 36*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-IOMP5-LD-32 %s 37*67e74705SXin Li // CHECK-IOMP5-LD-32: "{{.*}}ld{{(.exe)?}}" 38*67e74705SXin Li // CHECK-IOMP5-LD-32: "-l[[DEFAULT_OPENMP_LIB:[^"]*]]" "-lgcc" 39*67e74705SXin Li // CHECK-IOMP5-LD-32: "-lpthread" "-lc" 40*67e74705SXin Li // 41*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 42*67e74705SXin Li // RUN: -fopenmp -target x86_64-unknown-linux \ 43*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-IOMP5-LD-64 %s 44*67e74705SXin Li // CHECK-IOMP5-LD-64: "{{.*}}ld{{(.exe)?}}" 45*67e74705SXin Li // CHECK-IOMP5-LD-64: "-l[[DEFAULT_OPENMP_LIB:[^"]*]]" "-lgcc" 46*67e74705SXin Li // CHECK-IOMP5-LD-64: "-lpthread" "-lc" 47*67e74705SXin Li // 48*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 49*67e74705SXin Li // RUN: -fopenmp=lib -target i386-unknown-linux \ 50*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-LIB-LD-32 %s 51*67e74705SXin Li // CHECK-LIB-LD-32: error: unsupported argument 'lib' to option 'fopenmp=' 52*67e74705SXin Li // 53*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 54*67e74705SXin Li // RUN: -fopenmp=lib -target x86_64-unknown-linux \ 55*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-LIB-LD-64 %s 56*67e74705SXin Li // CHECK-LIB-LD-64: error: unsupported argument 'lib' to option 'fopenmp=' 57*67e74705SXin Li // 58*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 59*67e74705SXin Li // RUN: -fopenmp -fopenmp=libgomp -target i386-unknown-linux \ 60*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-LD-OVERRIDE-32 %s 61*67e74705SXin Li // CHECK-LD-OVERRIDE-32: "{{.*}}ld{{(.exe)?}}" 62*67e74705SXin Li // CHECK-LD-OVERRIDE-32: "-lgomp" "-lrt" "-lgcc" 63*67e74705SXin Li // CHECK-LD-OVERRIDE-32: "-lpthread" "-lc" 64*67e74705SXin Li // 65*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 66*67e74705SXin Li // RUN: -fopenmp -fopenmp=libgomp -target x86_64-unknown-linux \ 67*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-LD-OVERRIDE-64 %s 68*67e74705SXin Li // CHECK-LD-OVERRIDE-64: "{{.*}}ld{{(.exe)?}}" 69*67e74705SXin Li // CHECK-LD-OVERRIDE-64: "-lgomp" "-lrt" "-lgcc" 70*67e74705SXin Li // CHECK-LD-OVERRIDE-64: "-lpthread" "-lc" 71*67e74705SXin Li // 72*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 73*67e74705SXin Li // RUN: -fopenmp=libomp -target x86_64-msvc-win32 \ 74*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MSVC-LINK-64 %s 75*67e74705SXin Li // CHECK-MSVC-LINK-64: link.exe 76*67e74705SXin Li // CHECK-MSVC-LINK-64-SAME: -nodefaultlib:vcomp.lib 77*67e74705SXin Li // CHECK-MSVC-LINK-64-SAME: -nodefaultlib:vcompd.lib 78*67e74705SXin Li // CHECK-MSVC-LINK-64-SAME: -libpath:{{.+}}/../lib 79*67e74705SXin Li // CHECK-MSVC-LINK-64-SAME: -defaultlib:libomp.lib 80*67e74705SXin Li // 81*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 82*67e74705SXin Li // RUN: -fopenmp=libiomp5 -target x86_64-msvc-win32 \ 83*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MSVC-ILINK-64 %s 84*67e74705SXin Li // CHECK-MSVC-ILINK-64: link.exe 85*67e74705SXin Li // CHECK-MSVC-ILINK-64-SAME: -nodefaultlib:vcomp.lib 86*67e74705SXin Li // CHECK-MSVC-ILINK-64-SAME: -nodefaultlib:vcompd.lib 87*67e74705SXin Li // CHECK-MSVC-ILINK-64-SAME: -libpath:{{.+}}/../lib 88*67e74705SXin Li // CHECK-MSVC-ILINK-64-SAME: -defaultlib:libiomp5md.lib 89*67e74705SXin Li // 90