• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // RUN: %clang -no-canonical-prefixes -target i686-pc-openbsd %s -### 2>&1 \
2 // RUN:   | FileCheck --check-prefix=CHECK-LD %s
3 // CHECK-LD: clang{{.*}}" "-cc1" "-triple" "i686-pc-openbsd"
4 // CHECK-LD: ld{{.*}}" "-e" "__start" "--eh-frame-hdr" "-Bdynamic" "-dynamic-linker" "{{.*}}ld.so" "-o" "a.out" "{{.*}}crt0.o" "{{.*}}crtbegin.o" "{{.*}}.o" "-lcompiler_rt" "-lc" "-lcompiler_rt" "{{.*}}crtend.o"
5 
6 // Check for --eh-frame-hdr being passed with static linking
7 // RUN: %clang -no-canonical-prefixes -target i686-pc-openbsd -static %s -### 2>&1 \
8 // RUN:   | FileCheck --check-prefix=CHECK-LD-STATIC-EH %s
9 // CHECK-LD-STATIC-EH: clang{{.*}}" "-cc1" "-triple" "i686-pc-openbsd"
10 // CHECK-LD-STATIC-EH: ld{{.*}}" "-e" "__start" "--eh-frame-hdr" "-Bstatic" "-o" "a.out" "{{.*}}rcrt0.o" "{{.*}}crtbegin.o" "{{.*}}.o" "-lcompiler_rt" "-lc" "-lcompiler_rt" "{{.*}}crtend.o"
11 
12 // RUN: %clang -no-canonical-prefixes -target i686-pc-openbsd -pg -pthread %s -### 2>&1 \
13 // RUN:   | FileCheck --check-prefix=CHECK-PG %s
14 // CHECK-PG: clang{{.*}}" "-cc1" "-triple" "i686-pc-openbsd"
15 // CHECK-PG: ld{{.*}}" "-e" "__start" "--eh-frame-hdr" "-Bdynamic" "-dynamic-linker" "{{.*}}ld.so" "-nopie" "-o" "a.out" "{{.*}}gcrt0.o" "{{.*}}crtbegin.o" "{{.*}}.o" "-lcompiler_rt" "-lpthread_p" "-lc_p" "-lcompiler_rt" "{{.*}}crtend.o"
16 
17 // Check CPU type for i386
18 // RUN: %clang -target i386-unknown-openbsd -### -c %s 2>&1 \
19 // RUN:   | FileCheck -check-prefix=CHECK-i386-CPU %s
20 // CHECK-i386-CPU: "-target-cpu" "i586"
21 
22 // Check CPU type for MIPS64
23 // RUN: %clang -target mips64-unknown-openbsd -### -c %s 2>&1 \
24 // RUN:   | FileCheck -check-prefix=CHECK-MIPS64-CPU %s
25 // RUN: %clang -target mips64el-unknown-openbsd -### -c %s 2>&1 \
26 // RUN:   | FileCheck -check-prefix=CHECK-MIPS64EL-CPU %s
27 // CHECK-MIPS64-CPU: "-target-cpu" "mips3"
28 // CHECK-MIPS64EL-CPU: "-target-cpu" "mips3"
29 
30 // Check that the new linker flags are passed to OpenBSD
31 // RUN: %clang -no-canonical-prefixes -target i686-pc-openbsd -r %s -### 2>&1 \
32 // RUN:   | FileCheck --check-prefix=CHECK-LD-R %s
33 // RUN: %clang -no-canonical-prefixes -target i686-pc-openbsd -s %s -### 2>&1 \
34 // RUN:   | FileCheck --check-prefix=CHECK-LD-S %s
35 // RUN: %clang -no-canonical-prefixes -target i686-pc-openbsd -t %s -### 2>&1 \
36 // RUN:   | FileCheck --check-prefix=CHECK-LD-T %s
37 // RUN: %clang -no-canonical-prefixes -target i686-pc-openbsd -Z %s -### 2>&1 \
38 // RUN:   | FileCheck --check-prefix=CHECK-LD-Z %s
39 // RUN: %clang -no-canonical-prefixes -target mips64-unknown-openbsd %s -### 2>&1 \
40 // RUN:   | FileCheck --check-prefix=CHECK-MIPS64-LD %s
41 // RUN: %clang -no-canonical-prefixes -target mips64el-unknown-openbsd %s -### 2>&1 \
42 // RUN:   | FileCheck --check-prefix=CHECK-MIPS64EL-LD %s
43 // CHECK-LD-R: clang{{.*}}" "-cc1" "-triple" "i686-pc-openbsd"
44 // CHECK-LD-R: ld{{.*}}" "-e" "__start" "--eh-frame-hdr" "-Bdynamic" "-dynamic-linker" "{{.*}}ld.so" "-o" "a.out" "{{.*}}crt0.o" "{{.*}}crtbegin.o" "-L{{.*}}" "-r" "{{.*}}.o" "-lcompiler_rt" "-lc" "-lcompiler_rt" "{{.*}}crtend.o"
45 // CHECK-LD-S: clang{{.*}}" "-cc1" "-triple" "i686-pc-openbsd"
46 // CHECK-LD-S: ld{{.*}}" "-e" "__start" "--eh-frame-hdr" "-Bdynamic" "-dynamic-linker" "{{.*}}ld.so" "-o" "a.out" "{{.*}}crt0.o" "{{.*}}crtbegin.o" "-L{{.*}}" "-s" "{{.*}}.o" "-lcompiler_rt" "-lc" "-lcompiler_rt" "{{.*}}crtend.o"
47 // CHECK-LD-T: clang{{.*}}" "-cc1" "-triple" "i686-pc-openbsd"
48 // CHECK-LD-T: ld{{.*}}" "-e" "__start" "--eh-frame-hdr" "-Bdynamic" "-dynamic-linker" "{{.*}}ld.so" "-o" "a.out" "{{.*}}crt0.o" "{{.*}}crtbegin.o" "-L{{.*}}" "-t" "{{.*}}.o" "-lcompiler_rt" "-lc" "-lcompiler_rt" "{{.*}}crtend.o"
49 // CHECK-LD-Z: clang{{.*}}" "-cc1" "-triple" "i686-pc-openbsd"
50 // CHECK-LD-Z: ld{{.*}}" "-e" "__start" "--eh-frame-hdr" "-Bdynamic" "-dynamic-linker" "{{.*}}ld.so" "-o" "a.out" "{{.*}}crt0.o" "{{.*}}crtbegin.o" "-L{{.*}}" "-Z" "{{.*}}.o" "-lcompiler_rt" "-lc" "-lcompiler_rt" "{{.*}}crtend.o"
51 // CHECK-MIPS64-LD: clang{{.*}}" "-cc1" "-triple" "mips64-unknown-openbsd"
52 // CHECK-MIPS64-LD: ld{{.*}}" "-EB" "-e" "__start" "--eh-frame-hdr" "-Bdynamic" "-dynamic-linker" "{{.*}}ld.so" "-o" "a.out" "{{.*}}crt0.o" "{{.*}}crtbegin.o" "-L{{.*}}" "{{.*}}.o" "-lcompiler_rt" "-lc" "-lcompiler_rt" "{{.*}}crtend.o"
53 // CHECK-MIPS64EL-LD: clang{{.*}}" "-cc1" "-triple" "mips64el-unknown-openbsd"
54 // CHECK-MIPS64EL-LD: ld{{.*}}" "-EL" "-e" "__start" "--eh-frame-hdr" "-Bdynamic" "-dynamic-linker" "{{.*}}ld.so" "-o" "a.out" "{{.*}}crt0.o" "{{.*}}crtbegin.o" "-L{{.*}}" "{{.*}}.o" "-lcompiler_rt" "-lc" "-lcompiler_rt" "{{.*}}crtend.o"
55 
56 // Check passing options to the assembler for various OpenBSD targets
57 // RUN: %clang -target amd64-pc-openbsd -m32 -### -no-integrated-as -c %s 2>&1 \
58 // RUN:   | FileCheck -check-prefix=CHECK-AMD64-M32 %s
59 // RUN: %clang -target powerpc-unknown-openbsd -### -no-integrated-as -c %s 2>&1 \
60 // RUN:   | FileCheck -check-prefix=CHECK-POWERPC %s
61 // RUN: %clang -target sparc64-unknown-openbsd -### -no-integrated-as -c %s 2>&1 \
62 // RUN:   | FileCheck -check-prefix=CHECK-SPARC64 %s
63 // RUN: %clang -target mips64-unknown-openbsd -### -no-integrated-as -c %s 2>&1 \
64 // RUN:   | FileCheck -check-prefix=CHECK-MIPS64 %s
65 // RUN: %clang -target mips64-unknown-openbsd -fPIC -### -no-integrated-as -c %s 2>&1 \
66 // RUN:   | FileCheck -check-prefix=CHECK-MIPS64-PIC %s
67 // RUN: %clang -target mips64el-unknown-openbsd -### -no-integrated-as -c %s 2>&1 \
68 // RUN:   | FileCheck -check-prefix=CHECK-MIPS64EL %s
69 // RUN: %clang -target mips64el-unknown-openbsd -fPIC -### -no-integrated-as -c %s 2>&1 \
70 // RUN:   | FileCheck -check-prefix=CHECK-MIPS64EL-PIC %s
71 // CHECK-AMD64-M32: as{{.*}}" "--32"
72 // CHECK-POWERPC: as{{.*}}" "-mppc" "-many"
73 // CHECK-SPARC64: as{{.*}}" "-64" "-Av9a"
74 // CHECK-MIPS64: as{{.*}}" "-mabi" "64" "-EB"
75 // CHECK-MIPS64-PIC: as{{.*}}" "-mabi" "64" "-EB" "-KPIC"
76 // CHECK-MIPS64EL: as{{.*}}" "-mabi" "64" "-EL"
77 // CHECK-MIPS64EL-PIC: as{{.*}}" "-mabi" "64" "-EL" "-KPIC"
78 
79 // Check that the integrated assembler is enabled for SPARC
80 // RUN: %clang -target sparc64-unknown-openbsd -### -c %s 2>&1 \
81 // RUN:   | FileCheck -check-prefix=CHECK-IAS %s
82 // CHECK-IAS-NOT: "-no-integrated-as"
83 
84 // Check linking against correct startup code when (not) using PIE
85 // RUN: %clang -no-canonical-prefixes -target i686-pc-openbsd %s -### 2>&1 \
86 // RUN:   | FileCheck -check-prefix=CHECK-PIE %s
87 // RUN: %clang -no-canonical-prefixes -target i686-pc-openbsd -pie %s -### 2>&1 \
88 // RUN:   | FileCheck -check-prefix=CHECK-PIE-FLAG %s
89 // RUN: %clang -no-canonical-prefixes -target i686-pc-openbsd -fno-pie %s -### 2>&1 \
90 // RUN:   | FileCheck -check-prefix=CHECK-PIE %s
91 // RUN: %clang -no-canonical-prefixes -target i686-pc-openbsd -static %s -### 2>&1 \
92 // RUN:   | FileCheck -check-prefix=CHECK-STATIC-PIE %s
93 // RUN: %clang -no-canonical-prefixes -target i686-pc-openbsd -static -fno-pie %s -### 2>&1 \
94 // RUN:   | FileCheck -check-prefix=CHECK-STATIC-PIE %s
95 // RUN: %clang -no-canonical-prefixes -target i686-pc-openbsd -nopie %s -### 2>&1 \
96 // RUN:   | FileCheck -check-prefix=CHECK-NOPIE %s
97 // RUN: %clang -no-canonical-prefixes -target i686-pc-openbsd -fno-pie -nopie %s -### 2>&1 \
98 // RUN:   | FileCheck -check-prefix=CHECK-NOPIE %s
99 // RUN: %clang -no-canonical-prefixes -target i686-pc-openbsd -static -nopie %s -### 2>&1 \
100 // RUN:   | FileCheck -check-prefix=CHECK-NOPIE %s
101 // RUN: %clang -no-canonical-prefixes -target i686-pc-openbsd -fno-pie -static -nopie %s -### 2>&1 \
102 // RUN:   | FileCheck -check-prefix=CHECK-NOPIE %s
103 // CHECK-PIE: "{{.*}}crt0.o"
104 // CHECK-PIE-NOT: "-nopie"
105 // CHECK-PIE-FLAG: "-pie"
106 // CHECK-STATIC-PIE: "{{.*}}rcrt0.o"
107 // CHECK-STATIC-PIE-NOT: "-nopie"
108 // CHECK-NOPIE: "-nopie" "{{.*}}crt0.o"
109 
110 // Check ARM float ABI
111 // RUN: %clang -target arm-unknown-openbsd -### -c %s 2>&1 \
112 // RUN:   | FileCheck -check-prefix=CHECK-ARM-FLOAT-ABI %s
113 // CHECK-ARM-FLOAT-ABI-NOT: "-target-feature" "+soft-float"
114 // CHECK-ARM-FLOAT-ABI: "-target-feature" "+soft-float-abi"
115 
116 // Check PowerPC for Secure PLT
117 // RUN: %clang -target powerpc-unknown-openbsd -### -c %s 2>&1 \
118 // RUN:   | FileCheck -check-prefix=CHECK-POWERPC-SECUREPLT %s
119 // CHECK-POWERPC-SECUREPLT: "-target-feature" "+secure-plt"
120