1 // NO-PIE-NOT: "-pie"
2 // PIE: "-pie"
3 
4 // RUN: %clang %s -### -o %t.o 2>&1 --target=arm-linux-androideabi \
5 // RUN:   | FileCheck --check-prefix=NO-PIE %s
6 // RUN: %clang %s -### -o %t.o 2>&1 --target=arm-linux-android \
7 // RUN:   | FileCheck --check-prefix=NO-PIE %s
8 // RUN: %clang %s -### -o %t.o 2>&1 --target=arm-linux-android14 \
9 // RUN:   | FileCheck --check-prefix=NO-PIE %s
10 // RUN: %clang %s -### -o %t.o 2>&1 --target=arm-linux-android16 \
11 // RUN:   | FileCheck --check-prefix=PIE %s
12 // RUN: %clang %s -### -o %t.o 2>&1 --target=arm-linux-android24 \
13 // RUN:   | FileCheck --check-prefix=PIE %s
14 
15 // RUN: %clang %s -### -o %t.o 2>&1 --target=mipsel-linux-android \
16 // RUN:   | FileCheck --check-prefix=NO-PIE %s
17 // RUN: %clang %s -### -o %t.o 2>&1 --target=mipsel-linux-android14 \
18 // RUN:   | FileCheck --check-prefix=NO-PIE %s
19 // RUN: %clang %s -### -o %t.o 2>&1 --target=mipsel-linux-android16 \
20 // RUN:   | FileCheck --check-prefix=PIE %s
21 // RUN: %clang %s -### -o %t.o 2>&1 --target=mipsel-linux-android24 \
22 // RUN:   | FileCheck --check-prefix=PIE %s
23 
24 // RUN: %clang %s -### -o %t.o 2>&1 --target=i686-linux-android \
25 // RUN:   | FileCheck --check-prefix=NO-PIE %s
26 // RUN: %clang %s -### -o %t.o 2>&1 --target=i686-linux-android14 \
27 // RUN:   | FileCheck --check-prefix=NO-PIE %s
28 // RUN: %clang %s -### -o %t.o 2>&1 --target=i686-linux-android16 \
29 // RUN:   | FileCheck --check-prefix=PIE %s
30 // RUN: %clang %s -### -o %t.o 2>&1 --target=i686-linux-android24 \
31 // RUN:   | FileCheck --check-prefix=PIE %s
32 
33 // RUN: %clang %s -### -o %t.o 2>&1 --target=aarch64-linux-android \
34 // RUN:   | FileCheck --check-prefix=PIE %s
35 // RUN: %clang %s -### -o %t.o 2>&1 --target=aarch64-linux-android24 \
36 // RUN:   | FileCheck --check-prefix=PIE %s
37 
38 // RUN: %clang %s -### -o %t.o 2>&1 --target=arm64-linux-android \
39 // RUN:   | FileCheck --check-prefix=PIE %s
40 // RUN: %clang %s -### -o %t.o 2>&1 --target=arm64-linux-android24 \
41 // RUN:   | FileCheck --check-prefix=PIE %s
42 
43 // RUN: %clang %s -### -o %t.o 2>&1 --target=mips64el-linux-android \
44 // RUN:   | FileCheck --check-prefix=PIE %s
45 // RUN: %clang %s -### -o %t.o 2>&1 --target=mips64el-linux-android24 \
46 // RUN:   | FileCheck --check-prefix=PIE %s
47 
48 // RUN: %clang %s -### -o %t.o 2>&1 --target=x86_64-linux-android \
49 // RUN:   | FileCheck --check-prefix=PIE %s
50 // RUN: %clang %s -### -o %t.o 2>&1 --target=x86_64-linux-android24 \
51 // RUN:   | FileCheck --check-prefix=PIE %s
52 
53 // Override toolchain default setting.
54 // RUN: %clang %s -### -o %t.o 2>&1 -pie --target=arm-linux-androideabi \
55 // RUN:   | FileCheck --check-prefix=PIE %s
56 // RUN: %clang %s -### -o %t.o 2>&1 -pie --target=arm-linux-androideabi14 \
57 // RUN:   | FileCheck --check-prefix=PIE %s
58 // RUN: %clang %s -### -o %t.o 2>&1 -no-pie -pie --target=arm-linux-androideabi24 \
59 // RUN:   | FileCheck --check-prefix=PIE %s
60 
61 // RUN: %clang %s -### -o %t.o 2>&1 -no-pie --target=arm-linux-androideabi24 \
62 // RUN:   | FileCheck --check-prefix=NO-PIE %s
63 // RUN: %clang %s -### -o %t.o 2>&1 -nopie --target=arm-linux-androideabi24 \
64 // RUN:   | FileCheck --check-prefix=NO-PIE %s
65 // RUN: %clang %s -### -o %t.o 2>&1 -pie -no-pie --target=arm-linux-androideabi24 \
66 // RUN:   | FileCheck --check-prefix=NO-PIE %s
67 
68 // Static/shared/relocatable disable -pie
69 
70 // RUN: %clang %s -### --target=aarch64-linux-android -static 2>&1 \
71 // RUN:     | FileCheck %s -check-prefix=CHECK-STATIC
72 // CHECK-STATIC-NOT: "-pie"
73 // CHECK-STATIC: -static
74 
75 // RUN: %clang %s -### --target=aarch64-linux-android -shared 2>&1 \
76 // RUN:     | FileCheck %s -check-prefix=CHECK-SHARED
77 // CHECK-SHARED-NOT: "-pie"
78 // CHECK-SHARED: "-shared"
79 
80 // RUN: %clang %s -### --target=aarch64-linux-android -r 2>&1 \
81 // RUN:     | FileCheck %s -check-prefix=CHECK-RELOCATABLE
82 // CHECK-RELOCATABLE-NOT: "-pie"
83 // CHECK-RELOCATABLE: "-r"
84