blob: 3ee301cdc5194dc95449eec195286b1aed49fa52 [file] [log] [blame]
Bob Wilson6fb01c22012-02-04 23:15:59 +00001// REQUIRES: ppc32-registered-target,ppc64-registered-target
Daniel Dunbar883f2bb2012-04-09 20:40:11 +00002// RUN: %clang -ccc-clang-archs powerpc -no-canonical-prefixes \
3// RUN: -target powerpc-pc-freebsd8 %s \
Chandler Carruth0b1756b2012-01-26 01:35:15 +00004// RUN: --sysroot=%S/Inputs/basic_freebsd_tree -### 2>&1 \
5// RUN: | FileCheck --check-prefix=CHECK-PPC %s
6// CHECK-PPC: clang{{.*}}" "-cc1" "-triple" "powerpc-pc-freebsd8"
Chandler Carruth013820f2012-01-25 10:50:34 +00007// CHECK-PPC: ld{{.*}}" "--sysroot=[[SYSROOT:[^"]+]]"
8// CHECK-PPC: "--eh-frame-hdr" "-dynamic-linker" "{{.*}}ld-elf{{.*}}" "-o" "a.out" "{{.*}}crt1.o" "{{.*}}crti.o" "{{.*}}crtbegin.o" "-L[[SYSROOT]]/usr/lib" "{{.*}}.o" "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" "-lc" "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" "{{.*}}crtend.o" "{{.*}}crtn.o"
Chandler Carruth0b1756b2012-01-26 01:35:15 +00009//
Daniel Dunbar883f2bb2012-04-09 20:40:11 +000010// RUN: %clang -ccc-clang-archs powerpc64 -no-canonical-prefixes \
11// RUN: -target powerpc64-pc-freebsd8 %s \
Chandler Carruth0b1756b2012-01-26 01:35:15 +000012// RUN: --sysroot=%S/Inputs/basic_freebsd64_tree -### 2>&1 \
13// RUN: | FileCheck --check-prefix=CHECK-PPC64 %s
14// CHECK-PPC64: clang{{.*}}" "-cc1" "-triple" "powerpc64-pc-freebsd8"
15// CHECK-PPC64: ld{{.*}}" "--sysroot=[[SYSROOT:[^"]+]]"
16// CHECK-PPC64: "--eh-frame-hdr" "-dynamic-linker" "{{.*}}ld-elf{{.*}}" "-o" "a.out" "{{.*}}crt1.o" "{{.*}}crti.o" "{{.*}}crtbegin.o" "-L[[SYSROOT]]/usr/lib" "{{.*}}.o" "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" "-lc" "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" "{{.*}}crtend.o" "{{.*}}crtn.o"
17//
18//
Daniel Dunbarce25f332010-08-10 17:39:05 +000019// Check that -m32 properly adjusts the toolchain flags.
20//
Chandler Carruth0b1756b2012-01-26 01:35:15 +000021// RUN: %clang -no-canonical-prefixes -target x86_64-pc-freebsd8 -m32 %s \
22// RUN: --sysroot=%S/Inputs/multiarch_freebsd64_tree -### 2>&1 \
23// RUN: | FileCheck --check-prefix=CHECK-LIB32 %s
Daniel Dunbarce25f332010-08-10 17:39:05 +000024// CHECK-LIB32: clang{{.*}}" "-cc1" "-triple" "i386-pc-freebsd8"
Daniel Dunbarce25f332010-08-10 17:39:05 +000025// CHECK-LIB32: ld{{.*}}" {{.*}} "-m" "elf_i386_fbsd"
26//
Chandler Carruth0b1756b2012-01-26 01:35:15 +000027// RUN: %clang -target x86_64-pc-freebsd8 -m32 %s 2>&1 \
28// RUN: --sysroot=%S/Inputs/multiarch_freebsd64_tree -print-search-dirs 2>&1 \
29// RUN: | FileCheck --check-prefix=CHECK-LIB32PATHS %s
Benjamin Kramered3d85a2011-01-28 18:28:30 +000030// CHECK-LIB32PATHS: libraries: ={{.*:?}}/usr/lib32
David Chisnalld5ca8362012-07-15 21:18:01 +000031//
32// Check that the new linker flags are passed to FreeBSD
33// RUN: %clang -no-canonical-prefixes -target x86_64-pc-freebsd8 -m32 %s \
34// RUN: --sysroot=%S/Inputs/multiarch_freebsd64_tree -### 2>&1 \
David Chisnall5f99f482012-07-29 15:24:44 +000035// RUN: | FileCheck --check-prefix=CHECK-LDFLAGS8 %s
36// RUN: %clang -no-canonical-prefixes -target x86_64-pc-freebsd9 -m32 %s \
37// RUN: --sysroot=%S/Inputs/multiarch_freebsd64_tree -### 2>&1 \
38// RUN: | FileCheck --check-prefix=CHECK-LDFLAGS9 %s
39// RUN: %clang -no-canonical-prefixes -target x86_64-pc-freebsd10.0 -m32 %s \
40// RUN: --sysroot=%S/Inputs/multiarch_freebsd64_tree -### 2>&1 \
41// RUN: | FileCheck --check-prefix=CHECK-LDFLAGS9 %s
42// CHECK-LDFLAGS8-NOT: --hash-style=both
43// CHECK-LDFLAGS8: --enable-new-dtags
44// CHECK-LDFLAGS9: --hash-style=both
45// CHECK-LDFLAGS9: --enable-new-dtags
David Chisnalld5ca8362012-07-15 21:18:01 +000046
Roman Divackyafe2f232012-08-28 15:09:03 +000047// RUN: %clang -no-canonical-prefixes -target x86_64-pc-freebsd8 -static %s \
48// RUN: --sysroot=%S/Inputs/multiarch_freebsd64_tree -### 2>&1 \
49// RUN: | FileCheck --check-prefix=CHECK-STATIC %s
50// CHECK-STATIC: crt1.o
51// CHECK-STATIC: crtbeginT.o
52
53// RUN: %clang -no-canonical-prefixes -target x86_64-pc-freebsd8 -shared %s \
54// RUN: --sysroot=%S/Inputs/multiarch_freebsd64_tree -### 2>&1 \
55// RUN: | FileCheck --check-prefix=CHECK-SHARED %s
56// CHECK-SHARED: crti.o
57// CHECK-SHARED: crtbeginS.o
58
59// RUN: %clang -no-canonical-prefixes -target x86_64-pc-freebsd8 -pie %s \
60// RUN: --sysroot=%S/Inputs/multiarch_freebsd64_tree -### 2>&1 \
61// RUN: | FileCheck --check-prefix=CHECK-PIE %s
62// CHECK-PIE: pie
63// CHECK-PIE: Scrt1.o
64// CHECK-PIE: crtbeginS.o
65
66// RUN: %clang -no-canonical-prefixes -target x86_64-pc-freebsd8 %s \
67// RUN: --sysroot=%S/Inputs/multiarch_freebsd64_tree -### 2>&1 \
68// RUN: | FileCheck --check-prefix=CHECK-NORMAL %s
69// CHECK-NORMAL: crt1.o
70// CHECK-NORMAL: crtbegin.o