diff options
Diffstat (limited to 'clang/test/Driver/solaris-ld.c')
-rw-r--r-- | clang/test/Driver/solaris-ld.c | 124 |
1 files changed, 98 insertions, 26 deletions
diff --git a/clang/test/Driver/solaris-ld.c b/clang/test/Driver/solaris-ld.c index d871b592eb1..efbef0515dd 100644 --- a/clang/test/Driver/solaris-ld.c +++ b/clang/test/Driver/solaris-ld.c @@ -1,33 +1,105 @@ -// Test ld invocation on Solaris targets. +// General tests that ld invocations on Solaris targets sane. Note that we use +// sysroot to make these tests independent of the host system. -// Check sparc-sun-solaris2.1 +// Check sparc-sun-solaris2.11, 32bit // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ // RUN: --target=sparc-sun-solaris2.11 \ -// RUN: --gcc-toolchain="" \ -// RUN: --sysroot=%S/Inputs/sparc-sun-solaris2.11 \ -// RUN: | FileCheck %s -// CHECK: "-cc1" "-triple" "sparc-sun-solaris2.11" -// CHECK: ld{{.*}}" -// CHECK: "--dynamic-linker" "{{.*}}/usr/lib/ld.so.1" -// CHECK: "{{.*}}/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2{{/|\\\\}}crt1.o" -// CHECK: "{{.*}}/usr/lib/crti.o" -// CHECK: "{{.*}}/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2{{/|\\\\}}crtbegin.o" -// CHECK: "{{.*}}/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2{{/|\\\\}}crtend.o" -// CHECK: "{{.*}}/usr/lib/crtn.o" -// CHECK "-lc" -// CHECK "-lgcc_s" -// CHECK "-lgcc" -// CHECK "-lm" +// RUN: --sysroot=%S/Inputs/solaris_sparc_tree \ +// RUN: | FileCheck --check-prefix=CHECK-LD-SPARC32 %s +// CHECK-LD-SPARC32-NOT: warning: +// CHECK-LD-SPARC32: {{.*/clang}}" "-cc1" "-triple" "sparc-sun-solaris2.11" +// CHECK-LD-SPARC32-SAME: "-isysroot" "[[SYSROOT:[^"]+]]" +// CHECK-LD-SPARC32: {{.*/ld}}" +// CHECK-LD-SPARC32-SAME: "--dynamic-linker" "[[SYSROOT]]/usr/lib/ld.so.1" +// CHECK-LD-SPARC32-SAME: "[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/crt1.o" +// CHECK-LD-SPARC32-SAME: "[[SYSROOT]]/usr/lib/crti.o" +// CHECK-LD-SPARC32-SAME: "[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/crtbegin.o" +// CHECK-LD-SPARC32-SAME: "-L[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2" +// CHECK-LD-SPARC32-SAME: "-L[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/../../.." +// CHECK-LD-SPARC32-SAME: "-L[[SYSROOT]]/usr/lib" +// CHECK-LD-SPARC32-SAME: "-lgcc_s" +// CHECK-LD-SPARC32-SAME: "-lc" +// CHECK-LD-SPARC32-SAME: "-lgcc" +// CHECK-LD-SPARC32-SAME: "-lm" +// CHECK-LD-SPARC32-SAME: "[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/crtend.o" +// CHECK-LD-SPARC32-SAME: "[[SYSROOT]]/usr/lib/crtn.o" + +// Check sparc-sun-solaris2.11, 64bit +// RUN: %clang -no-canonical-prefixes -m64 %s -### -o %t.o 2>&1 \ +// RUN: --target=sparc-sun-solaris2.11 \ +// RUN: --sysroot=%S/Inputs/solaris_sparc_tree \ +// RUN: | FileCheck --check-prefix=CHECK-LD-SPARC64 %s +// CHECK-LD-SPARC64-NOT: warning: +// CHECK-LD-SPARC64: {{.*/clang}}" "-cc1" "-triple" "sparcv9-sun-solaris2.11" +// CHECK-LD-SPARC64-SAME: "-isysroot" "[[SYSROOT:[^"]+]]" +// CHECK-LD-SPARC64: {{.*/ld}}" +// CHECK-LD-SPARC64-SAME: "--dynamic-linker" "[[SYSROOT]]/usr/lib/sparcv9/ld.so.1" +// CHECK-LD-SPARC64-SAME: "[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/sparcv9/crt1.o" +// CHECK-LD-SPARC64-SAME: "[[SYSROOT]]/usr/lib/sparcv9/crti.o" +// CHECK-LD-SPARC64-SAME: "[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/sparcv9/crtbegin.o" +// CHECK-LD-SPARC64-SAME: "-L[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/sparcv9" +// CHECK-LD-SPARC64-SAME: "-L[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/../../../sparcv9" +// CHECK-LD-SPARC64-SAME: "-L[[SYSROOT]]/usr/lib/sparcv9" +// CHECK-LD-SPARC64-SAME: "-lgcc_s" +// CHECK-LD-SPARC64-SAME: "-lc" +// CHECK-LD-SPARC64-SAME: "-lgcc" +// CHECK-LD-SPARC64-SAME: "-lm" +// CHECK-LD-SPARC64-SAME: "[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/sparcv9/crtend.o" +// CHECK-LD-SPARC64-SAME: "[[SYSROOT]]/usr/lib/sparcv9/crtn.o" + +// Check i386-pc-solaris2.11, 32bit +// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ +// RUN: --target=i386-pc-solaris2.11 \ +// RUN: --sysroot=%S/Inputs/solaris_x86_tree \ +// RUN: | FileCheck --check-prefix=CHECK-LD-X32 %s +// CHECK-LD-X32-NOT: warning: +// CHECK-LD-X32: {{.*/clang}}" "-cc1" "-triple" "i386-pc-solaris2.11" +// CHECK-LD-X32-SAME: "-isysroot" "[[SYSROOT:[^"]+]]" +// CHECK-LD-X32: {{.*/ld}}" +// CHECK-LD-X32-SAME: "--dynamic-linker" "[[SYSROOT]]/usr/lib/ld.so.1" +// CHECK-LD-X32-SAME: "[[SYSROOT]]/usr/lib/crt1.o" +// CHECK-LD-X32-SAME: "[[SYSROOT]]/usr/lib/crti.o" +// CHECK-LD-X32-SAME: "[[SYSROOT]]/usr/gcc/4.9/lib/gcc/i386-pc-solaris2.11/4.9.4/crtbegin.o" +// CHECK-LD-X32-SAME: "-L[[SYSROOT]]/usr/gcc/4.9/lib/gcc/i386-pc-solaris2.11/4.9.4" +// CHECK-LD-X32-SAME: "-L[[SYSROOT]]/usr/gcc/4.9/lib/gcc/i386-pc-solaris2.11/4.9.4/../../.." +// CHECK-LD-X32-SAME: "-L[[SYSROOT]]/usr/lib" +// CHECK-LD-X32-SAME: "-lgcc_s" +// CHECK-LD-X32-SAME: "-lc" +// CHECK-LD-X32-SAME: "-lgcc" +// CHECK-LD-X32-SAME: "-lm" +// CHECK-LD-X32-SAME: "[[SYSROOT]]/usr/gcc/4.9/lib/gcc/i386-pc-solaris2.11/4.9.4/crtend.o" +// CHECK-LD-X32-SAME: "[[SYSROOT]]/usr/lib/crtn.o" + +// Check i386-pc-solaris2.11, 64bit +// RUN: %clang -no-canonical-prefixes -m64 %s -### -o %t.o 2>&1 \ +// RUN: --target=i386-pc-solaris2.11 \ +// RUN: --sysroot=%S/Inputs/solaris_x86_tree \ +// RUN: | FileCheck --check-prefix=CHECK-LD-X64 %s +// CHECK-LD-X64-NOT: warning: +// CHECK-LD-X64: {{.*/clang}}" "-cc1" "-triple" "x86_64-pc-solaris2.11" +// CHECK-LD-X64-SAME: "-isysroot" "[[SYSROOT:[^"]+]]" +// CHECK-LD-X64: {{.*/ld}}" +// CHECK-LD-X64-SAME: "--dynamic-linker" "[[SYSROOT]]/usr/lib/amd64/ld.so.1" +// CHECK-LD-X64-SAME: "[[SYSROOT]]/usr/lib/amd64/crt1.o" +// CHECK-LD-X64-SAME: "[[SYSROOT]]/usr/lib/amd64/crti.o" +// CHECK-LD-X64-SAME: "[[SYSROOT]]/usr/gcc/4.9/lib/gcc/i386-pc-solaris2.11/4.9.4/amd64/crtbegin.o" +// CHECK-LD-X64-SAME: "-L[[SYSROOT]]/usr/gcc/4.9/lib/gcc/i386-pc-solaris2.11/4.9.4/amd64" +// CHECK-LD-X64-SAME: "-L[[SYSROOT]]/usr/gcc/4.9/lib/gcc/i386-pc-solaris2.11/4.9.4/../../../amd64" +// CHECK-LD-X64-SAME: "-L[[SYSROOT]]/usr/lib/amd64" +// CHECK-LD-X64-SAME: "-lgcc_s" +// CHECK-LD-X64-SAME: "-lc" +// CHECK-LD-X64-SAME: "-lgcc" +// CHECK-LD-X64-SAME: "-lm" +// CHECK-LD-X64-SAME: "[[SYSROOT]]/usr/gcc/4.9/lib/gcc/i386-pc-solaris2.11/4.9.4/amd64/crtend.o" +// CHECK-LD-X64-SAME: "[[SYSROOT]]/usr/lib/amd64/crtn.o" // Check the right -l flags are present with -shared // RUN: %clang -no-canonical-prefixes %s -### -o %t.o -shared 2>&1 \ // RUN: --target=sparc-sun-solaris2.11 \ -// RUN: --gcc-toolchain="" \ -// RUN: --sysroot=%S/Inputs/sparc-sun-solaris2.11 \ -// RUN: | FileCheck --check-prefix=CHECK-SHARED %s - -// CHECK-SHARED: ld{{.*}}" -// CHECK-SHARED "-lc" -// CHECK-SHARED "-lgcc_s" -// CHECK-SHARED-NOT "-lgcc" -// CHECK-SHARED-NOT: "-lm" +// RUN: --sysroot=%S/Inputs/solaris_sparc_tree \ +// RUN: | FileCheck --check-prefix=CHECK-SPARC32-SHARED %s +// CHECK-SPARC32-SHARED: {{.*/ld}}" +// CHECK-SPARC32-SHARED-SAME: "-lgcc_s" +// CHECK-SPARC32-SHARED-SAME: "-lc" +// CHECK-SPARC32-SHARED-NOT: "-lgcc" +// CHECK-SPARC32-SHARED-NOT: "-lm" |