| NAKAMURA Takumi | 7cbe30f | 2013-12-04 03:41:15 +0000 | [diff] [blame] | 1 | // REQUIRES: powerpc-registered-target,mips-registered-target | 
| Rafael Espindola | fc3fc0c | 2012-10-09 20:46:28 +0000 | [diff] [blame] | 2 | // RUN: %clang -no-canonical-prefixes \ | 
| Daniel Dunbar | 883f2bb | 2012-04-09 20:40:11 +0000 | [diff] [blame] | 3 | // RUN:   -target powerpc-pc-freebsd8 %s    \ | 
| Chandler Carruth | 0b1756b | 2012-01-26 01:35:15 +0000 | [diff] [blame] | 4 | // 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 Carruth | 013820f | 2012-01-25 10:50:34 +0000 | [diff] [blame] | 7 | // 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 Carruth | 0b1756b | 2012-01-26 01:35:15 +0000 | [diff] [blame] | 9 | // | 
| Rafael Espindola | fc3fc0c | 2012-10-09 20:46:28 +0000 | [diff] [blame] | 10 | // RUN: %clang -no-canonical-prefixes \ | 
| Daniel Dunbar | 883f2bb | 2012-04-09 20:40:11 +0000 | [diff] [blame] | 11 | // RUN:   -target powerpc64-pc-freebsd8 %s                              \ | 
| Chandler Carruth | 0b1756b | 2012-01-26 01:35:15 +0000 | [diff] [blame] | 12 | // 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 Dunbar | ce25f33 | 2010-08-10 17:39:05 +0000 | [diff] [blame] | 19 | // Check that -m32 properly adjusts the toolchain flags. | 
|  | 20 | // | 
| Chandler Carruth | 0b1756b | 2012-01-26 01:35:15 +0000 | [diff] [blame] | 21 | // 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 Dunbar | ce25f33 | 2010-08-10 17:39:05 +0000 | [diff] [blame] | 24 | // CHECK-LIB32: clang{{.*}}" "-cc1" "-triple" "i386-pc-freebsd8" | 
| Daniel Dunbar | ce25f33 | 2010-08-10 17:39:05 +0000 | [diff] [blame] | 25 | // CHECK-LIB32: ld{{.*}}" {{.*}} "-m" "elf_i386_fbsd" | 
|  | 26 | // | 
| Chandler Carruth | 0b1756b | 2012-01-26 01:35:15 +0000 | [diff] [blame] | 27 | // 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 Kramer | ed3d85a | 2011-01-28 18:28:30 +0000 | [diff] [blame] | 30 | // CHECK-LIB32PATHS: libraries: ={{.*:?}}/usr/lib32 | 
| David Chisnall | d5ca836 | 2012-07-15 21:18:01 +0000 | [diff] [blame] | 31 | // | 
|  | 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 Chisnall | 5f99f48 | 2012-07-29 15:24:44 +0000 | [diff] [blame] | 35 | // 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 | 
| Eric Christopher | c0f1a5e | 2012-09-05 21:32:44 +0000 | [diff] [blame] | 46 | // | 
|  | 47 | // Check that we do not pass --hash-style=gnu and --hash-style=both to linker | 
|  | 48 | // and provide correct path to the dynamic linker for MIPS platforms. | 
|  | 49 | // Also verify that we tell the assembler to target the right ISA and ABI. | 
|  | 50 | // RUN: %clang %s -### -o %t.o 2>&1 \ | 
| Rafael Espindola | fc3fc0c | 2012-10-09 20:46:28 +0000 | [diff] [blame] | 51 | // RUN:     -target mips-unknown-freebsd10.0 \ | 
| Eric Christopher | c0f1a5e | 2012-09-05 21:32:44 +0000 | [diff] [blame] | 52 | // RUN:   | FileCheck --check-prefix=CHECK-MIPS %s | 
| Jakob Stoklund Olesen | 83859e7 | 2012-09-06 16:29:03 +0000 | [diff] [blame] | 53 | // CHECK-MIPS: "{{[^" ]*}}ld{{[^" ]*}}" | 
| Eric Christopher | c0f1a5e | 2012-09-05 21:32:44 +0000 | [diff] [blame] | 54 | // CHECK-MIPS: "-dynamic-linker" "{{.*}}/libexec/ld-elf.so.1" | 
|  | 55 | // CHECK-MIPS-NOT: "--hash-style={{gnu|both}}" | 
|  | 56 | // RUN: %clang %s -### -o %t.o 2>&1 \ | 
| Rafael Espindola | fc3fc0c | 2012-10-09 20:46:28 +0000 | [diff] [blame] | 57 | // RUN:     -target mipsel-unknown-freebsd10.0 \ | 
| Eric Christopher | c0f1a5e | 2012-09-05 21:32:44 +0000 | [diff] [blame] | 58 | // RUN:   | FileCheck --check-prefix=CHECK-MIPSEL %s | 
| Jakob Stoklund Olesen | 83859e7 | 2012-09-06 16:29:03 +0000 | [diff] [blame] | 59 | // CHECK-MIPSEL: "{{[^" ]*}}ld{{[^" ]*}}" | 
| Eric Christopher | c0f1a5e | 2012-09-05 21:32:44 +0000 | [diff] [blame] | 60 | // CHECK-MIPSEL: "-dynamic-linker" "{{.*}}/libexec/ld-elf.so.1" | 
|  | 61 | // CHECK-MIPSEL-NOT: "--hash-style={{gnu|both}}" | 
| Roman Divacky | b1ae3d4 | 2014-02-25 18:35:30 +0000 | [diff] [blame] | 62 | // RUN: %clang %s -### 2>&1 \ | 
| Rafael Espindola | fc3fc0c | 2012-10-09 20:46:28 +0000 | [diff] [blame] | 63 | // RUN:     -target mips64-unknown-freebsd10.0 \ | 
| Eric Christopher | c0f1a5e | 2012-09-05 21:32:44 +0000 | [diff] [blame] | 64 | // RUN:   | FileCheck --check-prefix=CHECK-MIPS64 %s | 
| Jakob Stoklund Olesen | 83859e7 | 2012-09-06 16:29:03 +0000 | [diff] [blame] | 65 | // CHECK-MIPS64: "{{[^" ]*}}ld{{[^" ]*}}" | 
| Eric Christopher | c0f1a5e | 2012-09-05 21:32:44 +0000 | [diff] [blame] | 66 | // CHECK-MIPS64: "-dynamic-linker" "{{.*}}/libexec/ld-elf.so.1" | 
|  | 67 | // CHECK-MIPS64-NOT: "--hash-style={{gnu|both}}" | 
| Roman Divacky | b1ae3d4 | 2014-02-25 18:35:30 +0000 | [diff] [blame] | 68 | // RUN: %clang %s -### 2>&1 \ | 
| Rafael Espindola | fc3fc0c | 2012-10-09 20:46:28 +0000 | [diff] [blame] | 69 | // RUN:     -target mips64el-unknown-freebsd10.0 \ | 
| Eric Christopher | c0f1a5e | 2012-09-05 21:32:44 +0000 | [diff] [blame] | 70 | // RUN:   | FileCheck --check-prefix=CHECK-MIPS64EL %s | 
| Jakob Stoklund Olesen | 83859e7 | 2012-09-06 16:29:03 +0000 | [diff] [blame] | 71 | // CHECK-MIPS64EL: "{{[^" ]*}}ld{{[^" ]*}}" | 
| Eric Christopher | c0f1a5e | 2012-09-05 21:32:44 +0000 | [diff] [blame] | 72 | // CHECK-MIPS64EL: "-dynamic-linker" "{{.*}}/libexec/ld-elf.so.1" | 
|  | 73 | // CHECK-MIPS64EL-NOT: "--hash-style={{gnu|both}}" | 
| David Chisnall | d5ca836 | 2012-07-15 21:18:01 +0000 | [diff] [blame] | 74 |  | 
| Roman Divacky | afe2f23 | 2012-08-28 15:09:03 +0000 | [diff] [blame] | 75 | // RUN: %clang -no-canonical-prefixes -target x86_64-pc-freebsd8 -static %s \ | 
|  | 76 | // RUN:   --sysroot=%S/Inputs/multiarch_freebsd64_tree -### 2>&1 \ | 
|  | 77 | // RUN:   | FileCheck --check-prefix=CHECK-STATIC %s | 
|  | 78 | // CHECK-STATIC: crt1.o | 
|  | 79 | // CHECK-STATIC: crtbeginT.o | 
|  | 80 |  | 
|  | 81 | // RUN: %clang -no-canonical-prefixes -target x86_64-pc-freebsd8 -shared %s \ | 
|  | 82 | // RUN:   --sysroot=%S/Inputs/multiarch_freebsd64_tree -### 2>&1 \ | 
|  | 83 | // RUN:   | FileCheck --check-prefix=CHECK-SHARED %s | 
|  | 84 | // CHECK-SHARED: crti.o | 
|  | 85 | // CHECK-SHARED: crtbeginS.o | 
|  | 86 |  | 
|  | 87 | // RUN: %clang -no-canonical-prefixes -target x86_64-pc-freebsd8 -pie %s \ | 
|  | 88 | // RUN:   --sysroot=%S/Inputs/multiarch_freebsd64_tree -### 2>&1 \ | 
|  | 89 | // RUN:   | FileCheck --check-prefix=CHECK-PIE %s | 
|  | 90 | // CHECK-PIE: pie | 
|  | 91 | // CHECK-PIE: Scrt1.o | 
|  | 92 | // CHECK-PIE: crtbeginS.o | 
|  | 93 |  | 
|  | 94 | // RUN: %clang -no-canonical-prefixes -target x86_64-pc-freebsd8 %s \ | 
|  | 95 | // RUN:   --sysroot=%S/Inputs/multiarch_freebsd64_tree -### 2>&1 \ | 
|  | 96 | // RUN:   | FileCheck --check-prefix=CHECK-NORMAL %s | 
|  | 97 | // CHECK-NORMAL: crt1.o | 
|  | 98 | // CHECK-NORMAL: crtbegin.o | 
| Rafael Espindola | 0f207ed | 2012-12-13 04:17:14 +0000 | [diff] [blame] | 99 |  | 
| Roman Divacky | b1ae3d4 | 2014-02-25 18:35:30 +0000 | [diff] [blame] | 100 | // RUN: %clang %s -### -target arm-unknown-freebsd10.0 -no-integrated-as 2>&1 \ | 
| Rafael Espindola | 0f207ed | 2012-12-13 04:17:14 +0000 | [diff] [blame] | 101 | // RUN:   | FileCheck --check-prefix=CHECK-ARM %s | 
|  | 102 | // CHECK-ARM: clang{{.*}}" "-cc1"{{.*}}" "-fsjlj-exceptions" | 
|  | 103 | // CHECK-ARM: as{{.*}}" "-mfpu=softvfp"{{.*}}"-matpcs" | 
| Renato Golin | f4421f7 | 2014-02-19 10:44:07 +0000 | [diff] [blame] | 104 | // CHECK-ARM-EABI-NOT: as{{.*}}" "-mfpu=vfp" | 
| Rafael Espindola | 0f207ed | 2012-12-13 04:17:14 +0000 | [diff] [blame] | 105 |  | 
| Roman Divacky | b1ae3d4 | 2014-02-25 18:35:30 +0000 | [diff] [blame] | 106 | // RUN: %clang %s -### -target arm-gnueabi-freebsd10.0 -no-integrated-as 2>&1 \ | 
| Rafael Espindola | 0f207ed | 2012-12-13 04:17:14 +0000 | [diff] [blame] | 107 | // RUN:   | FileCheck --check-prefix=CHECK-ARM-EABI %s | 
|  | 108 | // CHECK-ARM-EABI-NOT: clang{{.*}}" "-cc1"{{.*}}" "-fsjlj-exceptions" | 
| Anton Korobeynikov | 2bed847 | 2013-03-18 07:59:20 +0000 | [diff] [blame] | 109 | // CHECK-ARM-EABI: as{{.*}}" "-mfpu=softvfp" "-meabi=5" | 
| Renato Golin | f4421f7 | 2014-02-19 10:44:07 +0000 | [diff] [blame] | 110 | // CHECK-ARM-EABI-NOT: as{{.*}}" "-mfpu=vfp" | 
| Rafael Espindola | 0f207ed | 2012-12-13 04:17:14 +0000 | [diff] [blame] | 111 | // CHECK-ARM-EABI-NOT: as{{.*}}" "-matpcs" | 
| Roman Divacky | 612c916 | 2013-11-11 18:24:28 +0000 | [diff] [blame] | 112 |  | 
| Roman Divacky | b1ae3d4 | 2014-02-25 18:35:30 +0000 | [diff] [blame] | 113 | // RUN: %clang %s -### -target arm-gnueabihf-freebsd10.0 -no-integrated-as 2>&1 \ | 
| Renato Golin | f4421f7 | 2014-02-19 10:44:07 +0000 | [diff] [blame] | 114 | // RUN:   | FileCheck --check-prefix=CHECK-ARM-EABIHF %s | 
|  | 115 | // CHECK-ARM-EABIHF-NOT: clang{{.*}}" "-cc1"{{.*}}" "-fsjlj-exceptions" | 
|  | 116 | // CHECK-ARM-EABIHF: as{{.*}}" "-mfpu=vfp" "-meabi=5" | 
|  | 117 | // CHECK-ARM-EABIHF-NOT: as{{.*}}" "-mfpu=softvfp" | 
|  | 118 | // CHECK-ARM-EABIHF-NOT: as{{.*}}" "-matpcs" | 
|  | 119 |  | 
| Roman Divacky | b1ae3d4 | 2014-02-25 18:35:30 +0000 | [diff] [blame] | 120 | // RUN: %clang -target x86_64-pc-freebsd8 %s -### -flto 2>&1 \ | 
| Roman Divacky | 612c916 | 2013-11-11 18:24:28 +0000 | [diff] [blame] | 121 | // RUN:   | FileCheck --check-prefix=CHECK-LTO %s | 
|  | 122 | // CHECK-LTO: ld{{.*}}" "-plugin{{.*}}LLVMgold.so | 
| Roman Divacky | 8dc1580 | 2014-01-02 17:18:03 +0000 | [diff] [blame] | 123 |  | 
| Roman Divacky | b1ae3d4 | 2014-02-25 18:35:30 +0000 | [diff] [blame] | 124 | // RUN: %clang -target sparc-unknown-freebsd8 %s -### -fpic 2>&1 \ | 
| Roman Divacky | 8dc1580 | 2014-01-02 17:18:03 +0000 | [diff] [blame] | 125 | // RUN:   | FileCheck --check-prefix=CHECK-SPARC-PIE %s | 
|  | 126 | // CHECK-SPARC-PIE: as{{.*}}" "-KPIC | 
| Roman Divacky | b1ae3d4 | 2014-02-25 18:35:30 +0000 | [diff] [blame] | 127 |  | 
|  | 128 | // RUN: %clang -mcpu=ultrasparc -target sparc64-unknown-freebsd8 %s -### 2>&1 \ | 
|  | 129 | // RUN:   | FileCheck --check-prefix=CHECK-SPARC-CPU %s | 
|  | 130 | // CHECK-SPARC-CPU: cc1{{.*}}" "-target-cpu" "ultrasparc" |