diff options
| author | Chandler Carruth <chandlerc@gmail.com> | 2013-03-04 01:27:49 +0000 |
|---|---|---|
| committer | Chandler Carruth <chandlerc@gmail.com> | 2013-03-04 01:27:49 +0000 |
| commit | 4588e349b0e23348001d629f0bc0d87a6ceeb741 (patch) | |
| tree | eaed9878682ae0bfe6166f5d991473b7fffa344f | |
| parent | 434874db6f6163fe0604ad8adcb1152164c49487 (diff) | |
| download | bcm5719-llvm-4588e349b0e23348001d629f0bc0d87a6ceeb741.tar.gz bcm5719-llvm-4588e349b0e23348001d629f0bc0d87a6ceeb741.zip | |
Beef up the testing of our 'ld' invocation on linux to cover static
linking. About to fix a bug here and there was no good test case.
llvm-svn: 176427
| -rw-r--r-- | clang/test/Driver/Inputs/basic_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0/crtbeginT.o | 0 | ||||
| -rw-r--r-- | clang/test/Driver/linux-ld.c | 43 |
2 files changed, 43 insertions, 0 deletions
diff --git a/clang/test/Driver/Inputs/basic_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0/crtbeginT.o b/clang/test/Driver/Inputs/basic_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0/crtbeginT.o new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/clang/test/Driver/Inputs/basic_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0/crtbeginT.o diff --git a/clang/test/Driver/linux-ld.c b/clang/test/Driver/linux-ld.c index 06be3588600..e798942de8a 100644 --- a/clang/test/Driver/linux-ld.c +++ b/clang/test/Driver/linux-ld.c @@ -18,12 +18,55 @@ // RUN: --sysroot=%S/Inputs/basic_linux_tree \ // RUN: | FileCheck --check-prefix=CHECK-LD-64 %s // CHECK-LD-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" +// CHECK-LD-64: "--eh-frame-hdr" +// CHECK-LD-64: "-m" "elf_x86_64" +// CHECK-LD-64: "-dynamic-linker" // CHECK-LD-64: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0/crtbegin.o" // CHECK-LD-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0" // CHECK-LD-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib" // CHECK-LD-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.." // CHECK-LD-64: "-L[[SYSROOT]]/lib" // CHECK-LD-64: "-L[[SYSROOT]]/usr/lib" +// CHECK-LD-64: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" +// CHECK-LD-64: "-lc" +// CHECK-LD-64: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" +// +// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ +// RUN: -target x86_64-unknown-linux \ +// RUN: -static-libgcc \ +// RUN: --sysroot=%S/Inputs/basic_linux_tree \ +// RUN: | FileCheck --check-prefix=CHECK-LD-64-STATIC-LIBGCC %s +// CHECK-LD-64-STATIC-LIBGCC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" +// CHECK-LD-64-STATIC-LIBGCC: "--eh-frame-hdr" +// CHECK-LD-64-STATIC-LIBGCC: "-m" "elf_x86_64" +// CHECK-LD-64-STATIC-LIBGCC: "-dynamic-linker" +// CHECK-LD-64-STATIC-LIBGCC: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0/crtbegin.o" +// CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0" +// CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib" +// CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.." +// CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/lib" +// CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/usr/lib" +// CHECK-LD-64-STATIC-LIBGCC: "-lgcc" "-lgcc_eh" +// CHECK-LD-64-STATIC-LIBGCC: "-lc" +// CHECK-LD-64-STATIC-LIBGCC: "-lgcc" "-lgcc_eh" +// +// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ +// RUN: -target x86_64-unknown-linux \ +// RUN: -static \ +// RUN: --sysroot=%S/Inputs/basic_linux_tree \ +// RUN: | FileCheck --check-prefix=CHECK-LD-64-STATIC %s +// CHECK-LD-64-STATIC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" +// CHECK-LD-64-STATIC-NOT: "--eh-frame-hdr" +// CHECK-LD-64-STATIC: "-m" "elf_x86_64" +// CHECK-LD-64-STATIC-NOT: "-dynamic-linker" +// CHECK-LD-64-STATIC: "-static" +// CHECK-LD-64-STATIC: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0/crtbeginT.o" +// CHECK-LD-64-STATIC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0" +// CHECK-LD-64-STATIC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib" +// CHECK-LD-64-STATIC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.." +// CHECK-LD-64-STATIC: "-L[[SYSROOT]]/lib" +// CHECK-LD-64-STATIC: "-L[[SYSROOT]]/usr/lib" +// CHECK-LD-64-STATIC: "--start-group" "-lgcc" "-lgcc_eh" "-lc" "--end-group" // // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ // RUN: -target i386-unknown-linux -m32 \ |

