|
45 | 45 | ! Check that the linker job is given the correct libraries and library paths. |
46 | 46 |
|
47 | 47 | ! RUN: %flang -target x86_64-linux-gnu -ccc-install-dir %S/../Inputs/basic_linux_tree/usr/bin -mp \ |
48 | | -! RUN: %s -lfoo -### 2>&1 | FileCheck --check-prefixes=CHECK-LD,CHECK-DYNAMIC-FLANG,CHECK-DYNAMIC-OMP %s |
| 48 | +! RUN: %s -lfoo -### 2>&1 | FileCheck --check-prefixes=CHECK-LD,CHECK-MAIN,CHECK-DYNAMIC-FLANG,CHECK-DYNAMIC-OMP %s |
49 | 49 | ! RUN: %flang -target x86_64-linux-gnu -ccc-install-dir %S/../Inputs/basic_linux_tree/usr/bin -mp -nomp \ |
50 | | -! RUN: %s -lfoo -### 2>&1 | FileCheck --check-prefixes=CHECK-LD,CHECK-DYNAMIC-FLANG,CHECK-NO-OMP %s |
| 50 | +! RUN: %s -lfoo -### 2>&1 | FileCheck --check-prefixes=CHECK-LD,CHECK-MAIN,CHECK-DYNAMIC-FLANG,CHECK-NO-OMP %s |
51 | 51 | ! RUN: %flang -target x86_64-linux-gnu -ccc-install-dir %S/../Inputs/basic_linux_tree/usr/bin -fopenmp \ |
52 | | -! RUN: %s -lfoo -### 2>&1 | FileCheck --check-prefixes=CHECK-LD,CHECK-DYNAMIC-FLANG,CHECK-DYNAMIC-OMP %s |
| 52 | +! RUN: %s -lfoo -### 2>&1 | FileCheck --check-prefixes=CHECK-LD,CHECK-MAIN,CHECK-DYNAMIC-FLANG,CHECK-DYNAMIC-OMP %s |
53 | 53 | ! RUN: %flang -target x86_64-linux-gnu -ccc-install-dir %S/../Inputs/basic_linux_tree/usr/bin -fopenmp -fno-openmp \ |
54 | | -! RUN: %s -lfoo -### 2>&1 | FileCheck --check-prefixes=CHECK-LD,CHECK-DYNAMIC-FLANG,CHECK-NO-OMP %s |
| 54 | +! RUN: %s -lfoo -### 2>&1 | FileCheck --check-prefixes=CHECK-LD,CHECK-MAIN,CHECK-DYNAMIC-FLANG,CHECK-NO-OMP %s |
55 | 55 | ! RUN: %flang -target x86_64-linux-gnu -ccc-install-dir %S/../Inputs/basic_linux_tree/usr/bin -fopenmp -static-openmp \ |
56 | | -! RUN: %s -lfoo -### 2>&1 | FileCheck --check-prefixes=CHECK-LD,CHECK-DYNAMIC-FLANG,CHECK-STATIC-OMP %s |
| 56 | +! RUN: %s -lfoo -### 2>&1 | FileCheck --check-prefixes=CHECK-LD,CHECK-MAIN,CHECK-DYNAMIC-FLANG,CHECK-STATIC-OMP %s |
57 | 57 | ! RUN: %flang -target x86_64-linux-gnu -ccc-install-dir %S/../Inputs/basic_linux_tree/usr/bin -fopenmp -static-flang-libs \ |
58 | | -! RUN: %s -lfoo -### 2>&1 | FileCheck --check-prefixes=CHECK-LD,CHECK-STATIC-FLANG,CHECK-DYNAMIC-OMP %s |
| 58 | +! RUN: %s -lfoo -### 2>&1 | FileCheck --check-prefixes=CHECK-LD,CHECK-MAIN,CHECK-STATIC-FLANG,CHECK-DYNAMIC-OMP %s |
59 | 59 | ! RUN: %flang -target x86_64-linux-gnu -ccc-install-dir %S/../Inputs/basic_linux_tree/usr/bin -static-flang-libs \ |
60 | | -! RUN: %s -lfoo -### 2>&1 | FileCheck --check-prefixes=CHECK-LD,CHECK-STATIC-FLANG,CHECK-NO-OMP %s |
61 | | - |
| 60 | +! RUN: %s -lfoo -### 2>&1 | FileCheck --check-prefixes=CHECK-LD,CHECK-MAIN,CHECK-STATIC-FLANG,CHECK-NO-OMP %s |
| 61 | +! RUN: %flang -target x86_64-linux-gnu -ccc-install-dir %S/../Inputs/basic_linux_tree/usr/bin -Mnomain \ |
| 62 | +! RUN: %s -lfoo -### 2>&1 | FileCheck --check-prefixes=CHECK-LD,CHECK-NOMAIN,CHECK-DYNAMIC-FLANG %s |
| 63 | +! RUN: %flang -target x86_64-linux-gnu -ccc-install-dir %S/../Inputs/basic_linux_tree/usr/bin -fno-fortran-main \ |
| 64 | +! RUN: %s -lfoo -### 2>&1 | FileCheck --check-prefixes=CHECK-LD,CHECK-NOMAIN,CHECK-DYNAMIC-FLANG %s |
62 | 65 | ! CHECK-LD: "{{.*}}ld{{(.exe)?}}" |
63 | 66 | ! CHECK-LD-NOT: "-static" |
64 | | -! CHECK-LD: "{{[^"]*}}classic-flang-{{[^ ]*}}.o" "-lflangmain" "-lfoo" "-L{{[^ ]*[/\\]+}}basic_linux_tree{{[/\\]+}}usr{{[/\\]+}}lib" |
| 67 | +! CHECK-LD-SAME: "{{[^"]*}}classic-flang-{{[^ ]*}}.o" |
| 68 | +! CHECK-MAIN-SAME: "-lflangmain" |
| 69 | +! CHECK-NOMAIN-NOT: "-lflangmain" |
| 70 | +! CHECK-LD-SAME: "-lfoo" "-L{{[^ ]*[/\\]+}}basic_linux_tree{{[/\\]+}}usr{{[/\\]+}}lib" |
65 | 71 | ! CHECK-DYNAMIC-FLANG-NOT: "-Bstatic" |
66 | 72 | ! CHECK-DYNAMIC-FLANG: "-lflang" "-lflangrti" "-lpgmath" "-lpthread" "-lrt" "-lm" |
67 | 73 | ! CHECK-DYNAMIC-FLANG-NOT: "-Bdynamic" |
|
87 | 93 | ! CHECK-STATIC-BOTH-NOT: "-Bstatic" |
88 | 94 | ! CHECK-STATIC-BOTH: "-lomp" |
89 | 95 | ! CHECK-STATIC-BOTH-NOT: "-Bdynamic" |
| 96 | + |
| 97 | +! RUN: %flang -target x86_64-linux-gnu -ccc-install-dir %S/../Inputs/basic_linux_tree/usr/bin -no-flang-libs \ |
| 98 | +! RUN: %s -lfoo -### 2>&1 | FileCheck --check-prefixes=CHECK-NOFLANGLIBS %s |
| 99 | +! CHECK-NOFLANGLIBS: "{{.*}}ld{{(.exe)?}}" |
| 100 | +! CHECK-NOFLANGLIBS-SAME: "{{[^"]*}}classic-flang-{{[^ ]*}}.o" |
| 101 | +! CHECK-NOFLANGLIBS-NOT: "-lflangmain" |
| 102 | +! CHECK-NOFLANGLIBS-SAME: "-lfoo" "-L{{[^ ]*[/\\]+}}basic_linux_tree{{[/\\]+}}usr{{[/\\]+}}lib" |
| 103 | +! CHECK-NOFLANGLIBS-NOT: "-lflang" "-lflangrti" "-lpgmath" |
| 104 | +! CHECK-NOFLANGLIBS: "-lm" "-lgcc" |
| 105 | +! CHECK-NOFLANGLIBS: "-lgcc_s" |
| 106 | +! CHECK-NOFLANGLIBS: "-lc" |
| 107 | + |
| 108 | +! In Flang mode, we always link with libm, even with -nostdlib. |
| 109 | +! RUN: %flang -target x86_64-linux-gnu -ccc-install-dir %S/../Inputs/basic_linux_tree/usr/bin -nostdlib \ |
| 110 | +! RUN: %s -lfoo -### 2>&1 | FileCheck --check-prefixes=CHECK-NOSTDLIB %s |
| 111 | +! CHECK-NOSTDLIB: "{{.*}}ld{{(.exe)?}}" |
| 112 | +! CHECK-NOSTDLIB-SAME: "{{[^"]*}}classic-flang-{{[^ ]*}}.o" |
| 113 | +! CHECK-NOSTDLIB-NOT: "-lflangmain" |
| 114 | +! CHECK-NOSTDLIB-SAME: "-lfoo" "-L{{[^ ]*[/\\]+}}basic_linux_tree{{[/\\]+}}usr{{[/\\]+}}lib" |
| 115 | +! CHECK-NOSTDLIB-NOT: "-lflang" "-lflangrti" "-lpgmath" |
| 116 | +! CHECK-NOSTDLIB-NOT: "-lpthread" "-lrt" |
| 117 | +! CHECK-NOSTDLIB: "-lm" |
| 118 | +! CHECK-NOSTDLIB-NOT: "-lgcc" |
| 119 | +! CHECK-NOSTDLIB-NOT: "-lgcc_s" |
| 120 | +! CHECK-NOSTDLIB-NOT: "-lc" |
0 commit comments