diff options
author | Siva Chandra <sivachandra@google.com> | 2019-05-21 21:09:05 +0000 |
---|---|---|
committer | Siva Chandra <sivachandra@google.com> | 2019-05-21 21:09:05 +0000 |
commit | 8692af253c93c2f32b419a832e1cc2caf63669fb (patch) | |
tree | 0399d90ad46d37c40c5d681af97b52ef9b08564a /clang/test | |
parent | 17fdf1d38307fc99d6a7c417c13e8bc3857ac516 (diff) | |
download | bcm5719-llvm-8692af253c93c2f32b419a832e1cc2caf63669fb.tar.gz bcm5719-llvm-8692af253c93c2f32b419a832e1cc2caf63669fb.zip |
Let -static-pie win if it is specified along with -pie or -static.
Also, disallow specifying -no-pie/-nopie along with -static-pie.
Differential Revision: https://reviews.llvm.org/D59841
llvm-svn: 361312
Diffstat (limited to 'clang/test')
-rw-r--r-- | clang/test/Driver/linux-ld.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/clang/test/Driver/linux-ld.c b/clang/test/Driver/linux-ld.c index d592a1ccd21..e602c6c3237 100644 --- a/clang/test/Driver/linux-ld.c +++ b/clang/test/Driver/linux-ld.c @@ -194,6 +194,39 @@ // CHECK-CLANG-LD-STATIC-PIE: "{{.*}}rcrt1.o" // CHECK-CLANG-LD-STATIC-PIE: "--start-group" "-lgcc" "-lgcc_eh" "-lc" "--end-group" // +// RUN: %clang -static-pie -pie -no-canonical-prefixes %s -### -o %t.o 2>&1 \ +// RUN: --target=x86_64-unknown-linux -rtlib=platform \ +// RUN: --gcc-toolchain="" \ +// RUN: --sysroot=%S/Inputs/basic_linux_tree \ +// RUN: | FileCheck --check-prefix=CHECK-CLANG-LD-STATIC-PIE-PIE %s +// CHECK-CLANG-LD-STATIC-PIE-PIE: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" +// CHECK-CLANG-LD-STATIC-PIE-PIE: "-static" +// CHECK-CLANG-LD-STATIC-PIE-PIE: "-pie" +// CHECK-CLANG-LD-STATIC-PIE-PIE: "--no-dynamic-linker" +// CHECK-CLANG-LD-STATIC-PIE-PIE: "-m" "elf_x86_64" +// CHECK-CLANG-LD-STATIC-PIE-PIE: "{{.*}}rcrt1.o" +// CHECK-CLANG-LD-STATIC-PIE-PIE: "--start-group" "-lgcc" "-lgcc_eh" "-lc" "--end-group" +// +// RUN: %clang -static-pie -static -no-canonical-prefixes %s -### -o %t.o 2>&1 \ +// RUN: --target=x86_64-unknown-linux -rtlib=platform \ +// RUN: --gcc-toolchain="" \ +// RUN: --sysroot=%S/Inputs/basic_linux_tree \ +// RUN: | FileCheck --check-prefix=CHECK-CLANG-LD-STATIC-PIE-STATIC %s +// CHECK-CLANG-LD-STATIC-PIE-STATIC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" +// CHECK-CLANG-LD-STATIC-PIE-STATIC: "-static" +// CHECK-CLANG-LD-STATIC-PIE-STATIC: "-pie" +// CHECK-CLANG-LD-STATIC-PIE-STATIC: "--no-dynamic-linker" +// CHECK-CLANG-LD-STATIC-PIE-STATIC: "-m" "elf_x86_64" +// CHECK-CLANG-LD-STATIC-PIE-STATIC: "{{.*}}rcrt1.o" +// CHECK-CLANG-LD-STATIC-PIE-STATIC: "--start-group" "-lgcc" "-lgcc_eh" "-lc" "--end-group" +// +// RUN: %clang -static-pie -nopie -no-canonical-prefixes %s -### -o %t.o 2>&1 \ +// RUN: --target=x86_64-unknown-linux -rtlib=platform \ +// RUN: --gcc-toolchain="" \ +// RUN: --sysroot=%S/Inputs/basic_linux_tree \ +// RUN: | FileCheck --check-prefix=CHECK-CLANG-LD-STATIC-PIE-NOPIE %s +// CHECK-CLANG-LD-STATIC-PIE-NOPIE: error: cannot specify 'nopie' along with 'static-pie' +// // RUN: %clang -dynamic -no-canonical-prefixes %s -### -o %t.o 2>&1 \ // RUN: --target=x86_64-unknown-linux -rtlib=platform \ // RUN: --gcc-toolchain="" \ |