Fedor Sergeev | faa0a82 | 2018-01-23 12:23:52 +0000 | [diff] [blame] | 1 | // General tests that ld invocations on Solaris targets sane. Note that we use |
| 2 | // sysroot to make these tests independent of the host system. |
Rafael Espindola | c53c5b1 | 2015-08-31 19:17:51 +0000 | [diff] [blame] | 3 | |
Fedor Sergeev | faa0a82 | 2018-01-23 12:23:52 +0000 | [diff] [blame] | 4 | // Check sparc-sun-solaris2.11, 32bit |
Rainer Orth | d39a9e3 | 2023-09-01 21:42:05 +0200 | [diff] [blame] | 5 | // RUN: %clang -### %s --target=sparc-sun-solaris2.11 -fuse-ld= \ |
Rainer Orth | d39a9e3 | 2023-09-01 21:42:05 +0200 | [diff] [blame] | 6 | // RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \ |
| 7 | // RUN: | FileCheck --check-prefixes=CHECK-LD-SPARC32,CHECK-LD %s |
| 8 | // RUN: %clang -### %s --target=sparc-sun-solaris2.11 -fuse-ld=gld \ |
Rainer Orth | d39a9e3 | 2023-09-01 21:42:05 +0200 | [diff] [blame] | 9 | // RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \ |
| 10 | // RUN: | FileCheck --check-prefixes=CHECK-LD-SPARC32,CHECK-GLD %s |
Fedor Sergeev | faa0a82 | 2018-01-23 12:23:52 +0000 | [diff] [blame] | 11 | // CHECK-LD-SPARC32-NOT: warning: |
Fangrui Song | 332d520 | 2022-06-05 16:06:09 -0700 | [diff] [blame] | 12 | // CHECK-LD-SPARC32: "-cc1" "-triple" "sparc-sun-solaris2.11" |
Fedor Sergeev | faa0a82 | 2018-01-23 12:23:52 +0000 | [diff] [blame] | 13 | // CHECK-LD-SPARC32-SAME: "-isysroot" "[[SYSROOT:[^"]+]]" |
Douglas Yung | 1b9260b | 2018-01-24 00:05:01 +0000 | [diff] [blame] | 14 | // CHECK-LD-SPARC32: "{{.*}}ld{{(.exe)?}}" |
Douglas Yung | 1b9260b | 2018-01-24 00:05:01 +0000 | [diff] [blame] | 15 | // CHECK-LD-SPARC32-SAME: "[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2{{/|\\\\}}crt1.o" |
| 16 | // CHECK-LD-SPARC32-SAME: "[[SYSROOT]]/usr/lib{{/|\\\\}}crti.o" |
| 17 | // CHECK-LD-SPARC32-SAME: "[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2{{/|\\\\}}crtbegin.o" |
Fedor Sergeev | faa0a82 | 2018-01-23 12:23:52 +0000 | [diff] [blame] | 18 | // CHECK-LD-SPARC32-SAME: "-L[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2" |
| 19 | // CHECK-LD-SPARC32-SAME: "-L[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/../../.." |
| 20 | // CHECK-LD-SPARC32-SAME: "-L[[SYSROOT]]/usr/lib" |
Rainer Orth | d39a9e3 | 2023-09-01 21:42:05 +0200 | [diff] [blame] | 21 | // CHECK-LD: "-z" "ignore" "-latomic" "-z" "record" |
| 22 | // CHECK-GLD: "--as-needed" "-latomic" "--no-as-needed" |
Rainer Orth | 4e81ee4 | 2025-05-04 10:26:01 +0200 | [diff] [blame^] | 23 | // CHECK-LD-SPARC32-SAME: "-lgcc" |
rorth | b084d10 | 2023-09-06 19:44:39 +0200 | [diff] [blame] | 24 | // CHECK-LD: "-z" "ignore" "-lgcc_s" "-z" "record" |
| 25 | // CHECK-GLD: "--as-needed" "-lgcc_s" "--no-as-needed" |
Fedor Sergeev | faa0a82 | 2018-01-23 12:23:52 +0000 | [diff] [blame] | 26 | // CHECK-LD-SPARC32-SAME: "-lc" |
Douglas Yung | 1b9260b | 2018-01-24 00:05:01 +0000 | [diff] [blame] | 27 | // CHECK-LD-SPARC32-SAME: "[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2{{/|\\\\}}crtend.o" |
| 28 | // CHECK-LD-SPARC32-SAME: "[[SYSROOT]]/usr/lib{{/|\\\\}}crtn.o" |
Fedor Sergeev | faa0a82 | 2018-01-23 12:23:52 +0000 | [diff] [blame] | 29 | |
| 30 | // Check sparc-sun-solaris2.11, 64bit |
Fangrui Song | 332d520 | 2022-06-05 16:06:09 -0700 | [diff] [blame] | 31 | // RUN: %clang -m64 -### %s 2>&1 --target=sparc-sun-solaris2.11 \ |
Fedor Sergeev | faa0a82 | 2018-01-23 12:23:52 +0000 | [diff] [blame] | 32 | // RUN: --sysroot=%S/Inputs/solaris_sparc_tree \ |
| 33 | // RUN: | FileCheck --check-prefix=CHECK-LD-SPARC64 %s |
| 34 | // CHECK-LD-SPARC64-NOT: warning: |
Fangrui Song | 332d520 | 2022-06-05 16:06:09 -0700 | [diff] [blame] | 35 | // CHECK-LD-SPARC64: "-cc1" "-triple" "sparcv9-sun-solaris2.11" |
Fedor Sergeev | faa0a82 | 2018-01-23 12:23:52 +0000 | [diff] [blame] | 36 | // CHECK-LD-SPARC64-SAME: "-isysroot" "[[SYSROOT:[^"]+]]" |
Douglas Yung | 1b9260b | 2018-01-24 00:05:01 +0000 | [diff] [blame] | 37 | // CHECK-LD-SPARC64: "{{.*}}ld{{(.exe)?}}" |
Douglas Yung | 1b9260b | 2018-01-24 00:05:01 +0000 | [diff] [blame] | 38 | // CHECK-LD-SPARC64-SAME: "[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/sparcv9{{/|\\\\}}crt1.o" |
| 39 | // CHECK-LD-SPARC64-SAME: "[[SYSROOT]]/usr/lib/sparcv9{{/|\\\\}}crti.o" |
| 40 | // CHECK-LD-SPARC64-SAME: "[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/sparcv9{{/|\\\\}}crtbegin.o" |
Fedor Sergeev | faa0a82 | 2018-01-23 12:23:52 +0000 | [diff] [blame] | 41 | // CHECK-LD-SPARC64-SAME: "-L[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/sparcv9" |
| 42 | // CHECK-LD-SPARC64-SAME: "-L[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/../../../sparcv9" |
| 43 | // CHECK-LD-SPARC64-SAME: "-L[[SYSROOT]]/usr/lib/sparcv9" |
Rainer Orth | a6afa9e | 2022-02-10 12:40:32 +0100 | [diff] [blame] | 44 | // CHECK-LD-SPARC64-NOT: "-latomic" |
Rainer Orth | 4e81ee4 | 2025-05-04 10:26:01 +0200 | [diff] [blame^] | 45 | // CHECK-LD-SPARC64-SAME: "-lgcc" |
Fedor Sergeev | faa0a82 | 2018-01-23 12:23:52 +0000 | [diff] [blame] | 46 | // CHECK-LD-SPARC64-SAME: "-lgcc_s" |
| 47 | // CHECK-LD-SPARC64-SAME: "-lc" |
Douglas Yung | 1b9260b | 2018-01-24 00:05:01 +0000 | [diff] [blame] | 48 | // CHECK-LD-SPARC64-SAME: "[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/sparcv9{{/|\\\\}}crtend.o" |
| 49 | // CHECK-LD-SPARC64-SAME: "[[SYSROOT]]/usr/lib/sparcv9{{/|\\\\}}crtn.o" |
Fedor Sergeev | faa0a82 | 2018-01-23 12:23:52 +0000 | [diff] [blame] | 50 | |
| 51 | // Check i386-pc-solaris2.11, 32bit |
Fangrui Song | 332d520 | 2022-06-05 16:06:09 -0700 | [diff] [blame] | 52 | // RUN: %clang -### %s 2>&1 --target=i386-pc-solaris2.11 \ |
Fedor Sergeev | faa0a82 | 2018-01-23 12:23:52 +0000 | [diff] [blame] | 53 | // RUN: --sysroot=%S/Inputs/solaris_x86_tree \ |
| 54 | // RUN: | FileCheck --check-prefix=CHECK-LD-X32 %s |
| 55 | // CHECK-LD-X32-NOT: warning: |
Fangrui Song | 332d520 | 2022-06-05 16:06:09 -0700 | [diff] [blame] | 56 | // CHECK-LD-X32: "-cc1" "-triple" "i386-pc-solaris2.11" |
Fedor Sergeev | faa0a82 | 2018-01-23 12:23:52 +0000 | [diff] [blame] | 57 | // CHECK-LD-X32-SAME: "-isysroot" "[[SYSROOT:[^"]+]]" |
Douglas Yung | 1b9260b | 2018-01-24 00:05:01 +0000 | [diff] [blame] | 58 | // CHECK-LD-X32: "{{.*}}ld{{(.exe)?}}" |
Douglas Yung | 1b9260b | 2018-01-24 00:05:01 +0000 | [diff] [blame] | 59 | // CHECK-LD-X32-SAME: "[[SYSROOT]]/usr/lib{{/|\\\\}}crt1.o" |
| 60 | // CHECK-LD-X32-SAME: "[[SYSROOT]]/usr/lib{{/|\\\\}}crti.o" |
| 61 | // CHECK-LD-X32-SAME: "[[SYSROOT]]/usr/gcc/4.9/lib/gcc/i386-pc-solaris2.11/4.9.4{{/|\\\\}}crtbegin.o" |
Fedor Sergeev | faa0a82 | 2018-01-23 12:23:52 +0000 | [diff] [blame] | 62 | // CHECK-LD-X32-SAME: "-L[[SYSROOT]]/usr/gcc/4.9/lib/gcc/i386-pc-solaris2.11/4.9.4" |
| 63 | // CHECK-LD-X32-SAME: "-L[[SYSROOT]]/usr/gcc/4.9/lib/gcc/i386-pc-solaris2.11/4.9.4/../../.." |
| 64 | // CHECK-LD-X32-SAME: "-L[[SYSROOT]]/usr/lib" |
Rainer Orth | a6afa9e | 2022-02-10 12:40:32 +0100 | [diff] [blame] | 65 | // CHECK-LD-X32-NOT: "-latomic" |
Rainer Orth | 4e81ee4 | 2025-05-04 10:26:01 +0200 | [diff] [blame^] | 66 | // CHECK-LD-X32-SAME: "-lgcc" |
Fedor Sergeev | faa0a82 | 2018-01-23 12:23:52 +0000 | [diff] [blame] | 67 | // CHECK-LD-X32-SAME: "-lgcc_s" |
| 68 | // CHECK-LD-X32-SAME: "-lc" |
Douglas Yung | 1b9260b | 2018-01-24 00:05:01 +0000 | [diff] [blame] | 69 | // CHECK-LD-X32-SAME: "[[SYSROOT]]/usr/gcc/4.9/lib/gcc/i386-pc-solaris2.11/4.9.4{{/|\\\\}}crtend.o" |
| 70 | // CHECK-LD-X32-SAME: "[[SYSROOT]]/usr/lib{{/|\\\\}}crtn.o" |
Fedor Sergeev | faa0a82 | 2018-01-23 12:23:52 +0000 | [diff] [blame] | 71 | |
| 72 | // Check i386-pc-solaris2.11, 64bit |
Fangrui Song | 332d520 | 2022-06-05 16:06:09 -0700 | [diff] [blame] | 73 | // RUN: %clang -m64 -### %s 2>&1 \ |
Fedor Sergeev | faa0a82 | 2018-01-23 12:23:52 +0000 | [diff] [blame] | 74 | // RUN: --target=i386-pc-solaris2.11 \ |
Fedor Sergeev | faa0a82 | 2018-01-23 12:23:52 +0000 | [diff] [blame] | 75 | // RUN: --sysroot=%S/Inputs/solaris_x86_tree \ |
| 76 | // RUN: | FileCheck --check-prefix=CHECK-LD-X64 %s |
| 77 | // CHECK-LD-X64-NOT: warning: |
Fangrui Song | 332d520 | 2022-06-05 16:06:09 -0700 | [diff] [blame] | 78 | // CHECK-LD-X64: "-cc1" "-triple" "x86_64-pc-solaris2.11" |
Fedor Sergeev | faa0a82 | 2018-01-23 12:23:52 +0000 | [diff] [blame] | 79 | // CHECK-LD-X64-SAME: "-isysroot" "[[SYSROOT:[^"]+]]" |
Douglas Yung | 1b9260b | 2018-01-24 00:05:01 +0000 | [diff] [blame] | 80 | // CHECK-LD-X64: "{{.*}}ld{{(.exe)?}}" |
Douglas Yung | 1b9260b | 2018-01-24 00:05:01 +0000 | [diff] [blame] | 81 | // CHECK-LD-X64-SAME: "[[SYSROOT]]/usr/lib/amd64{{/|\\\\}}crt1.o" |
| 82 | // CHECK-LD-X64-SAME: "[[SYSROOT]]/usr/lib/amd64{{/|\\\\}}crti.o" |
| 83 | // CHECK-LD-X64-SAME: "[[SYSROOT]]/usr/gcc/4.9/lib/gcc/i386-pc-solaris2.11/4.9.4/amd64{{/|\\\\}}crtbegin.o" |
Fedor Sergeev | faa0a82 | 2018-01-23 12:23:52 +0000 | [diff] [blame] | 84 | // CHECK-LD-X64-SAME: "-L[[SYSROOT]]/usr/gcc/4.9/lib/gcc/i386-pc-solaris2.11/4.9.4/amd64" |
| 85 | // CHECK-LD-X64-SAME: "-L[[SYSROOT]]/usr/gcc/4.9/lib/gcc/i386-pc-solaris2.11/4.9.4/../../../amd64" |
| 86 | // CHECK-LD-X64-SAME: "-L[[SYSROOT]]/usr/lib/amd64" |
Rainer Orth | a6afa9e | 2022-02-10 12:40:32 +0100 | [diff] [blame] | 87 | // CHECK-LD-X64-NOT: "-latomic" |
Rainer Orth | 4e81ee4 | 2025-05-04 10:26:01 +0200 | [diff] [blame^] | 88 | // CHECK-LD-X64-SAME: "-lgcc" |
Fedor Sergeev | faa0a82 | 2018-01-23 12:23:52 +0000 | [diff] [blame] | 89 | // CHECK-LD-X64-SAME: "-lgcc_s" |
| 90 | // CHECK-LD-X64-SAME: "-lc" |
Douglas Yung | 1b9260b | 2018-01-24 00:05:01 +0000 | [diff] [blame] | 91 | // CHECK-LD-X64-SAME: "[[SYSROOT]]/usr/gcc/4.9/lib/gcc/i386-pc-solaris2.11/4.9.4/amd64{{/|\\\\}}crtend.o" |
| 92 | // CHECK-LD-X64-SAME: "[[SYSROOT]]/usr/lib/amd64{{/|\\\\}}crtn.o" |
Rafael Espindola | 8d4d9d2f | 2015-09-14 19:30:53 +0000 | [diff] [blame] | 93 | |
| 94 | // Check the right -l flags are present with -shared |
Fangrui Song | 332d520 | 2022-06-05 16:06:09 -0700 | [diff] [blame] | 95 | // RUN: %clang -### %s -shared 2>&1 \ |
Rafael Espindola | 8d4d9d2f | 2015-09-14 19:30:53 +0000 | [diff] [blame] | 96 | // RUN: --target=sparc-sun-solaris2.11 \ |
Fedor Sergeev | faa0a82 | 2018-01-23 12:23:52 +0000 | [diff] [blame] | 97 | // RUN: --sysroot=%S/Inputs/solaris_sparc_tree \ |
| 98 | // RUN: | FileCheck --check-prefix=CHECK-SPARC32-SHARED %s |
Douglas Yung | 1b9260b | 2018-01-24 00:05:01 +0000 | [diff] [blame] | 99 | // CHECK-SPARC32-SHARED: "{{.*}}ld{{(.exe)?}}" |
Fedor Sergeev | faa0a82 | 2018-01-23 12:23:52 +0000 | [diff] [blame] | 100 | // CHECK-SPARC32-SHARED-SAME: "-lgcc_s" |
| 101 | // CHECK-SPARC32-SHARED-SAME: "-lc" |
| 102 | // CHECK-SPARC32-SHARED-NOT: "-lgcc" |
Rainer Orth | 1e6b0df | 2023-09-07 19:14:55 +0200 | [diff] [blame] | 103 | |
Rainer Orth | 4e81ee4 | 2025-05-04 10:26:01 +0200 | [diff] [blame^] | 104 | /// Check that -static-libgcc is supported. |
| 105 | // RUN: %clang -### %s --target=sparc-sun-solaris2.11 \ |
| 106 | // RUN: -static-libgcc \ |
| 107 | // RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \ |
| 108 | // RUN: | FileCheck --check-prefixes=CHECK-STATIC-LIBGCC %s |
| 109 | // CHECK-STATIC-LIBGCC-NOT: warning: argument unused during compilation: '-static-libgcc' |
| 110 | // CHECK-STATIC-LIBGCC: "-lgcc" "-lgcc_eh" |
| 111 | // CHECK-STATIC-LIBGCC-NOT: "-lgcc_s" |
| 112 | |
Rainer Orth | 1e6b0df | 2023-09-07 19:14:55 +0200 | [diff] [blame] | 113 | // Check that libm is only linked with clang++. |
| 114 | // RUN: %clang -### %s --target=sparc-sun-solaris2.11 \ |
Fangrui Song | f599116 | 2024-04-02 10:40:19 -0700 | [diff] [blame] | 115 | // RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \ |
Rainer Orth | 1e6b0df | 2023-09-07 19:14:55 +0200 | [diff] [blame] | 116 | // RUN: | FileCheck --check-prefix=CHECK-NOLIBM %s |
| 117 | // RUN: %clang -### %s -shared --target=sparc-sun-solaris2.11 \ |
Fangrui Song | f599116 | 2024-04-02 10:40:19 -0700 | [diff] [blame] | 118 | // RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \ |
Rainer Orth | 1e6b0df | 2023-09-07 19:14:55 +0200 | [diff] [blame] | 119 | // RUN: | FileCheck --check-prefix=CHECK-NOLIBM %s |
| 120 | // RUN: %clangxx -### %s --target=sparc-sun-solaris2.11 \ |
Fangrui Song | f599116 | 2024-04-02 10:40:19 -0700 | [diff] [blame] | 121 | // RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \ |
Rainer Orth | 1e6b0df | 2023-09-07 19:14:55 +0200 | [diff] [blame] | 122 | // RUN: | FileCheck --check-prefix=CHECK-LIBM %s |
| 123 | // RUN: %clangxx -### %s -shared --target=sparc-sun-solaris2.11 \ |
Fangrui Song | f599116 | 2024-04-02 10:40:19 -0700 | [diff] [blame] | 124 | // RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \ |
Rainer Orth | 1e6b0df | 2023-09-07 19:14:55 +0200 | [diff] [blame] | 125 | // RUN: | FileCheck --check-prefix=CHECK-LIBM %s |
| 126 | // CHECK-LIBM: "-lm" |
| 127 | // CHECK-NOLIBM-NOT: "-lm" |
Brad Smith | 3d7da81 | 2022-04-28 00:17:48 -0400 | [diff] [blame] | 128 | |
Rainer Orth | 62945bb | 2023-08-18 21:09:37 +0200 | [diff] [blame] | 129 | // Check the right ld flags are present with -pie. |
Rainer Orth | d39a9e3 | 2023-09-01 21:42:05 +0200 | [diff] [blame] | 130 | // RUN: %clang --target=sparc-sun-solaris2.11 -### %s -pie -fuse-ld= \ |
Rainer Orth | 62945bb | 2023-08-18 21:09:37 +0200 | [diff] [blame] | 131 | // RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \ |
Rainer Orth | d39a9e3 | 2023-09-01 21:42:05 +0200 | [diff] [blame] | 132 | // RUN: | FileCheck --check-prefix=CHECK-PIE-LD %s |
| 133 | // RUN: %clang --target=sparc-sun-solaris2.11 -### %s -pie -fuse-ld=gld \ |
Rainer Orth | 62945bb | 2023-08-18 21:09:37 +0200 | [diff] [blame] | 134 | // RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \ |
Rainer Orth | d39a9e3 | 2023-09-01 21:42:05 +0200 | [diff] [blame] | 135 | // RUN: | FileCheck --check-prefix=CHECK-PIE-GLD %s |
Fangrui Song | f1eddf5 | 2023-11-30 11:42:53 -0800 | [diff] [blame] | 136 | // RUN: %clang --target=sparc-sun-solaris2.11 -### %s -no-pie -fuse-ld= \ |
Rainer Orth | d39a9e3 | 2023-09-01 21:42:05 +0200 | [diff] [blame] | 137 | // RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \ |
| 138 | // RUN: | FileCheck --check-prefix=CHECK-NOPIE-LD %s |
Fangrui Song | f1eddf5 | 2023-11-30 11:42:53 -0800 | [diff] [blame] | 139 | // RUN: %clang --target=sparc-sun-solaris2.11 -### %s -no-pie -fuse-ld=gld \ |
Rainer Orth | d39a9e3 | 2023-09-01 21:42:05 +0200 | [diff] [blame] | 140 | // RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \ |
| 141 | // RUN: | FileCheck --check-prefix=CHECK-NOPIE-GLD %s |
Rainer Orth | 62945bb | 2023-08-18 21:09:37 +0200 | [diff] [blame] | 142 | |
| 143 | // Check that -shared/-r/-static disable PIE. |
Rainer Orth | d39a9e3 | 2023-09-01 21:42:05 +0200 | [diff] [blame] | 144 | // RUN: %clang --target=sparc-sun-solaris2.11 -### %s -shared -pie -fuse-ld= \ |
Rainer Orth | 62945bb | 2023-08-18 21:09:37 +0200 | [diff] [blame] | 145 | // RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \ |
Rainer Orth | d39a9e3 | 2023-09-01 21:42:05 +0200 | [diff] [blame] | 146 | // RUN: | FileCheck --check-prefix=CHECK-NOPIE-LD %s |
| 147 | // RUN: %clang --target=sparc-sun-solaris2.11 -### %s -shared -pie -fuse-ld=gld \ |
Rainer Orth | 62945bb | 2023-08-18 21:09:37 +0200 | [diff] [blame] | 148 | // RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \ |
Rainer Orth | d39a9e3 | 2023-09-01 21:42:05 +0200 | [diff] [blame] | 149 | // RUN: | FileCheck --check-prefix=CHECK-NOPIE-GLD %s |
| 150 | // RUN: %clang --target=sparc-sun-solaris2.11 -### %s -r -pie -fuse-ld= \ |
Rainer Orth | 62945bb | 2023-08-18 21:09:37 +0200 | [diff] [blame] | 151 | // RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \ |
Rainer Orth | d39a9e3 | 2023-09-01 21:42:05 +0200 | [diff] [blame] | 152 | // RUN: | FileCheck --check-prefix=CHECK-NOPIE-LD %s |
| 153 | // RUN: %clang --target=sparc-sun-solaris2.11 -### %s -r -pie -fuse-ld=gld \ |
Rainer Orth | d39a9e3 | 2023-09-01 21:42:05 +0200 | [diff] [blame] | 154 | // RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \ |
| 155 | // RUN: | FileCheck --check-prefix=CHECK-NOPIE-GLD %s |
| 156 | // RUN: %clang --target=sparc-sun-solaris2.11 -### %s -static -pie -fuse-ld= \ |
Rainer Orth | d39a9e3 | 2023-09-01 21:42:05 +0200 | [diff] [blame] | 157 | // RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \ |
| 158 | // RUN: | FileCheck --check-prefix=CHECK-NOPIE-LD %s |
| 159 | // RUN: %clang --target=sparc-sun-solaris2.11 -### %s -static -pie -fuse-ld=gld \ |
Rainer Orth | d39a9e3 | 2023-09-01 21:42:05 +0200 | [diff] [blame] | 160 | // RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \ |
| 161 | // RUN: | FileCheck --check-prefix=CHECK-NOPIE-GLD %s |
Rainer Orth | 62945bb | 2023-08-18 21:09:37 +0200 | [diff] [blame] | 162 | |
Rainer Orth | d39a9e3 | 2023-09-01 21:42:05 +0200 | [diff] [blame] | 163 | // CHECK-PIE-LD: "-z" "type=pie" |
| 164 | // CHECK-PIE-GLD: "-pie" |
| 165 | // CHECK-NOPIE-LD-NOT: "-z" "type=pie" |
| 166 | // CHECK-NOPIE-GLD-NOT: "-pie" |
Rainer Orth | 62945bb | 2023-08-18 21:09:37 +0200 | [diff] [blame] | 167 | |
Brad Smith | 3d7da81 | 2022-04-28 00:17:48 -0400 | [diff] [blame] | 168 | // -r suppresses default -l and crt*.o, values-*.o like -nostdlib. |
Fangrui Song | 332d520 | 2022-06-05 16:06:09 -0700 | [diff] [blame] | 169 | // RUN: %clang -### %s --target=sparc-sun-solaris2.11 -r 2>&1 \ |
Brad Smith | 3d7da81 | 2022-04-28 00:17:48 -0400 | [diff] [blame] | 170 | // RUN: | FileCheck %s --check-prefix=CHECK-RELOCATABLE |
| 171 | // CHECK-RELOCATABLE: "-L |
| 172 | // CHECK-RELOCATABLE: "-r" |
Rainer Orth | 183158b | 2023-10-26 20:37:31 +0200 | [diff] [blame] | 173 | // CHECK-RELOCATABLE-NOT: "-e" |
Brad Smith | 3d7da81 | 2022-04-28 00:17:48 -0400 | [diff] [blame] | 174 | // CHECK-RELOCATABLE-NOT: "-l |
Fangrui Song | 11cf75f | 2022-06-13 19:44:24 -0700 | [diff] [blame] | 175 | // CHECK-RELOCATABLE-NOT: /crt{{[^.]+}}.o |
| 176 | // CHECK-RELOCATABLE-NOT: /values-{{[^.]+}}.o |
Rainer Orth | 7c4a70f | 2023-01-13 10:08:33 +0100 | [diff] [blame] | 177 | |
Rainer Orth | 62945bb | 2023-08-18 21:09:37 +0200 | [diff] [blame] | 178 | // Check that crt{begin,end}S.o is linked with -shared/-pie. |
| 179 | // RUN: %clang --target=sparc-sun-solaris2.11 -### %s \ |
Rainer Orth | 62945bb | 2023-08-18 21:09:37 +0200 | [diff] [blame] | 180 | // RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \ |
| 181 | // RUN: | FileCheck --check-prefix=CHECK-NOCRTS %s |
| 182 | // RUN: %clang --target=sparc-sun-solaris2.11 -### %s -shared \ |
Rainer Orth | 62945bb | 2023-08-18 21:09:37 +0200 | [diff] [blame] | 183 | // RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \ |
| 184 | // RUN: | FileCheck --check-prefix=CHECK-CRTS %s |
Fangrui Song | f1eddf5 | 2023-11-30 11:42:53 -0800 | [diff] [blame] | 185 | // RUN: %clang --target=sparc-sun-solaris2.11 -### %s -no-pie \ |
Rainer Orth | 62945bb | 2023-08-18 21:09:37 +0200 | [diff] [blame] | 186 | // RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \ |
| 187 | // RUN: | FileCheck --check-prefix=CHECK-NOCRTS %s |
| 188 | // RUN: %clang --target=sparc-sun-solaris2.11 -### %s -pie \ |
Rainer Orth | 62945bb | 2023-08-18 21:09:37 +0200 | [diff] [blame] | 189 | // RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \ |
| 190 | // RUN: | FileCheck --check-prefix=CHECK-CRTS %s |
| 191 | // CHECK-CRTS: crtbeginS.o |
| 192 | // CHECK-CRTS: crtendS.o |
| 193 | // CHECK-NOCRTS-NOT: crtbeginS.o |
| 194 | // CHECK-NOCRTS-NOT: crtendS.o |
| 195 | |
Rainer Orth | 7c4a70f | 2023-01-13 10:08:33 +0100 | [diff] [blame] | 196 | // Check that crtfastmath.o is linked with -ffast-math. |
| 197 | |
| 198 | // Check sparc-sun-solaris2.11, 32bit |
| 199 | // RUN: %clang --target=sparc-sun-solaris2.11 -### %s \ |
Rainer Orth | 7c4a70f | 2023-01-13 10:08:33 +0100 | [diff] [blame] | 200 | // RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \ |
| 201 | // RUN: | FileCheck --check-prefix=CHECK-NOCRTFASTMATH-SPARC32 %s |
| 202 | // RUN: %clang --target=sparc-sun-solaris2.11 -### %s -ffast-math \ |
Rainer Orth | 7c4a70f | 2023-01-13 10:08:33 +0100 | [diff] [blame] | 203 | // RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \ |
| 204 | // RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH-SPARC32 %s |
Andy Kaylor | 8ba880b | 2024-04-29 13:22:08 -0700 | [diff] [blame] | 205 | // RUN: %clang --target=sparc-sun-solaris2.11 -### %s -ffp-model=fast \ |
| 206 | // RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \ |
| 207 | // RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH-SPARC32 %s |
Rainer Orth | 7c4a70f | 2023-01-13 10:08:33 +0100 | [diff] [blame] | 208 | // CHECK-CRTFASTMATH-SPARC32: "-isysroot" "[[SYSROOT:[^"]+]]" |
| 209 | // CHECK-CRTFASTMATH-SPARC32: "[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2{{/|\\\\}}crtfastmath.o" |
| 210 | // CHECK-NOCRTFASTMATH-SPARC32-NOT: crtfastmath.o |
| 211 | |
| 212 | // Check sparc-pc-solaris2.11, 64bit |
| 213 | // RUN: %clang -m64 --target=sparc-sun-solaris2.11 -### %s \ |
Rainer Orth | 7c4a70f | 2023-01-13 10:08:33 +0100 | [diff] [blame] | 214 | // RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \ |
| 215 | // RUN: | FileCheck --check-prefix=CHECK-NOCRTFASTMATH-SPARC64 %s |
| 216 | // RUN: %clang -m64 --target=sparc-sun-solaris2.11 -### %s -ffast-math \ |
Rainer Orth | 7c4a70f | 2023-01-13 10:08:33 +0100 | [diff] [blame] | 217 | // RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \ |
| 218 | // RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH-SPARC64 %s |
| 219 | // CHECK-CRTFASTMATH-SPARC64: "-isysroot" "[[SYSROOT:[^"]+]]" |
| 220 | // CHECK-CRTFASTMATH-SPARC64: "[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/sparcv9{{/|\\\\}}crtfastmath.o" |
| 221 | // CHECK-NOCRTFASTMATH-SPARC64-NOT: crtfastmath.o |
| 222 | |
| 223 | // Check i386-pc-solaris2.11, 32bit |
| 224 | // RUN: %clang --target=i386-pc-solaris2.11 -### %s \ |
Rainer Orth | 7c4a70f | 2023-01-13 10:08:33 +0100 | [diff] [blame] | 225 | // RUN: --sysroot=%S/Inputs/solaris_x86_tree 2>&1 \ |
| 226 | // RUN: | FileCheck --check-prefix=CHECK-NOCRTFASTMATH-X32 %s |
| 227 | // RUN: %clang --target=i386-pc-solaris2.11 -### %s -ffast-math \ |
Rainer Orth | 7c4a70f | 2023-01-13 10:08:33 +0100 | [diff] [blame] | 228 | // RUN: --sysroot=%S/Inputs/solaris_x86_tree 2>&1 \ |
| 229 | // RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH-X32 %s |
| 230 | // CHECK-CRTFASTMATH-X32: "-isysroot" "[[SYSROOT:[^"]+]]" |
| 231 | // CHECK-CRTFASTMATH-X32: "[[SYSROOT]]/usr/gcc/4.9/lib/gcc/i386-pc-solaris2.11/4.9.4{{/|\\\\}}crtfastmath.o" |
| 232 | // CHECK-NOCRTFASTMATH-X32-NOT: crtfastmath.o |
| 233 | |
| 234 | // Check i386-pc-solaris2.11, 64bit |
| 235 | // RUN: %clang -m64 --target=i386-pc-solaris2.11 -### %s \ |
Rainer Orth | 7c4a70f | 2023-01-13 10:08:33 +0100 | [diff] [blame] | 236 | // RUN: --sysroot=%S/Inputs/solaris_x86_tree 2>&1 \ |
| 237 | // RUN: | FileCheck --check-prefix=CHECK-NOCRTFASTMATH-X64 %s |
| 238 | // RUN: %clang -m64 --target=i386-pc-solaris2.11 -### %s -ffast-math \ |
Rainer Orth | 7c4a70f | 2023-01-13 10:08:33 +0100 | [diff] [blame] | 239 | // RUN: --sysroot=%S/Inputs/solaris_x86_tree 2>&1 \ |
| 240 | // RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH-X64 %s |
| 241 | // CHECK-CRTFASTMATH-X64: "-isysroot" "[[SYSROOT:[^"]+]]" |
| 242 | // CHECK-CRTFASTMATH-X64: "[[SYSROOT]]/usr/gcc/4.9/lib/gcc/i386-pc-solaris2.11/4.9.4/amd64{{/|\\\\}}crtfastmath.o" |
| 243 | // CHECK-NOCRTFASTMATH-X64-NOT: crtfastmath.o |