Clang Project

clang_source_code/test/Driver/fuse-ld.c
1// RUN: %clang %s -### \
2// RUN:     -fuse-ld=/usr/local/bin/or1k-linux-ld 2>&1 \
3// RUN:   | FileCheck %s --check-prefix=CHECK-ABSOLUTE-LD
4// CHECK-ABSOLUTE-LD: /usr/local/bin/or1k-linux-ld
5
6
7// RUN: %clang %s -### \
8// RUN:     -target x86_64-unknown-freebsd 2>&1 \
9// RUN:   | FileCheck %s --check-prefix=CHECK-FREEBSD-LD
10// CHECK-FREEBSD-LD: ld
11
12// RUN: %clang %s -### -fuse-ld=bfd \
13// RUN:     --sysroot=%S/Inputs/basic_freebsd_tree \
14// RUN:     -target x86_64-unknown-freebsd \
15// RUN:     -B%S/Inputs/basic_freebsd_tree/usr/bin 2>&1 \
16// RUN:   | FileCheck %s -check-prefix=CHECK-FREEBSD-BFD
17// CHECK-FREEBSD-BFD: Inputs/basic_freebsd_tree/usr/bin{{/|\\+}}ld.bfd
18
19// RUN: %clang %s -### -fuse-ld=gold \
20// RUN:     --sysroot=%S/Inputs/basic_freebsd_tree \
21// RUN:     -target x86_64-unknown-freebsd \
22// RUN:     -B%S/Inputs/basic_freebsd_tree/usr/bin 2>&1 \
23// RUN:   | FileCheck %s -check-prefix=CHECK-FREEBSD-GOLD
24// CHECK-FREEBSD-GOLD: Inputs/basic_freebsd_tree/usr/bin{{/|\\+}}ld.gold
25
26// RUN: %clang %s -### -fuse-ld=plib \
27// RUN:     --sysroot=%S/Inputs/basic_freebsd_tree \
28// RUN:     -target x86_64-unknown-freebsd \
29// RUN:     -B%S/Inputs/basic_freebsd_tree/usr/bin 2>&1 \
30// RUN:   | FileCheck %s -check-prefix=CHECK-FREEBSD-PLIB
31// CHECK-FREEBSD-PLIB: error: invalid linker name
32
33
34
35// RUN: %clang %s -### -fuse-ld=ld \
36// RUN:     -target arm-linux-androideabi \
37// RUN:     -B%S/Inputs/basic_android_tree/bin 2>&1 \
38// RUN:   | FileCheck %s --check-prefix=CHECK-ANDROID-ARM-LD
39// CHECK-ANDROID-ARM-LD: Inputs/basic_android_tree/bin{{/|\\+}}arm-linux-androideabi-ld
40
41// RUN: %clang %s -### -fuse-ld=bfd \
42// RUN:     -target arm-linux-androideabi \
43// RUN:     -B%S/Inputs/basic_android_tree/bin 2>&1 \
44// RUN:   | FileCheck %s -check-prefix=CHECK-ANDROID-ARM-BFD
45// CHECK-ANDROID-ARM-BFD: Inputs/basic_android_tree/bin{{/|\\+}}arm-linux-androideabi-ld.bfd
46
47// RUN: %clang %s -### -fuse-ld=gold \
48// RUN:     -target arm-linux-androideabi \
49// RUN:     -B%S/Inputs/basic_android_tree/bin 2>&1 \
50// RUN:   | FileCheck %s -check-prefix=CHECK-ANDROID-ARM-GOLD
51// CHECK-ANDROID-ARM-GOLD: Inputs/basic_android_tree/bin{{/|\\+}}arm-linux-androideabi-ld.gold
52
53// RUN: %clang %s -### -fuse-ld=ld \
54// RUN:     -target arm-linux-androideabi \
55// RUN:     -gcc-toolchain %S/Inputs/basic_android_tree 2>&1 \
56// RUN:   | FileCheck %s --check-prefix=CHECK-ANDROID-ARM-LD-TC
57// CHECK-ANDROID-ARM-LD-TC: Inputs/basic_android_tree/lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin{{/|\\+}}ld
58
59// RUN: %clang %s -### -fuse-ld=bfd \
60// RUN:     -target arm-linux-androideabi \
61// RUN:     -gcc-toolchain %S/Inputs/basic_android_tree 2>&1 \
62// RUN:   | FileCheck %s -check-prefix=CHECK-ANDROID-ARM-BFD-TC
63// CHECK-ANDROID-ARM-BFD-TC: Inputs/basic_android_tree/lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin{{/|\\+}}ld.bfd
64
65// RUN: %clang %s -### -fuse-ld=gold \
66// RUN:     -target arm-linux-androideabi \
67// RUN:     -gcc-toolchain %S/Inputs/basic_android_tree 2>&1 \
68// RUN:   | FileCheck %s -check-prefix=CHECK-ANDROID-ARM-GOLD-TC
69// CHECK-ANDROID-ARM-GOLD-TC: Inputs/basic_android_tree/lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin{{/|\\+}}ld.gold
70
71
72// RUN: %clang %s -### -fuse-ld=link \
73// RUN:     -target i686-unknown-windows-msvc 2>&1 \
74// RUN:   | FileCheck %s --check-prefix CHECK-WINDOWS-MSVC-LINK
75// CHECK-WINDOWS-MSVC-LINK: "{{.*}}link.exe"
76// CHECK-WINDOWS-MSVC-LINK-SAME: "-out:{{.*}}"
77
78// RUN: %clang %s -### -fuse-ld=lld \
79// RUN:     -target i686-unknown-windows-msvc 2>&1 \
80// RUN:   | FileCheck %s --check-prefix CHECK-WINDOWS-MSVC-LLD
81// CHECK-WINDOWS-MSVC-LLD: "{{.*}}lld-link"
82// CHECK-WINDOWS-MSVC-LLD-SAME: "-out:{{.*}}"
83
84// RUN: %clang %s -### -fuse-ld=lld-link \
85// RUN:     -target i686-unknown-windows-msvc 2>&1 \
86// RUN:   | FileCheck %s --check-prefix CHECK-WINDOWS-MSVC-LLD-LINK
87// CHECK-WINDOWS-MSVC-LLD-LINK: "{{.*}}lld-link"
88// CHECK-WINDOWS-MSVC-LLD-LINK-SAME: "-out:{{.*}}"
89
90// RUN: %clang %s -### -fuse-ld=bfd \
91// RUN:     -target i686-unknown-windows-msvc \
92// RUN:     -B %S/Inputs/Windows/usr/bin 2>&1 \
93// RUN:   | FileCheck %s --check-prefix CHECK-WINDOWS-MSVC-BFD
94// CHECK-WINDOWS-MSVC-BFD: "{{.*}}ld.bfd"
95// CHECK-WINDOWS-MSVC-BFD-SAME: "-o"
96