blob: b0aeb04d92a2e3043de961205c3be8ffde7ba229 [file] [log] [blame]
Petr Hoseke6e04242018-11-04 03:53:07 +00001// RUN: %clangxx %s -### -no-canonical-prefixes --target=x86_64-fuchsia \
Petr Hosek2db79ef2019-05-26 03:39:07 +00002// RUN: -ccc-install-dir %S/Inputs/basic_fuchsia_tree/bin \
Petr Hoseke6e04242018-11-04 03:53:07 +00003// RUN: -resource-dir=%S/Inputs/resource_dir_with_per_target_subdir \
Petr Hosek68a3a3b2019-11-19 19:56:54 -08004// RUN: --sysroot=%S/platform -fuse-ld=lld 2>&1 \
5// RUN: | FileCheck -check-prefixes=CHECK,CHECK-X86_64 %s
6// RUN: %clangxx %s -### -no-canonical-prefixes --target=aarch64-fuchsia \
7// RUN: -ccc-install-dir %S/Inputs/basic_fuchsia_tree/bin \
8// RUN: -resource-dir=%S/Inputs/resource_dir_with_per_target_subdir \
9// RUN: --sysroot=%S/platform -fuse-ld=lld 2>&1 \
10// RUN: | FileCheck -check-prefixes=CHECK,CHECK-AARCH64 %s
11// RUN: %clangxx %s -### -no-canonical-prefixes --target=riscv64-fuchsia \
12// RUN: -ccc-install-dir %S/Inputs/basic_fuchsia_tree/bin \
13// RUN: -resource-dir=%S/Inputs/resource_dir_with_per_target_subdir \
14// RUN: --sysroot=%S/platform -fuse-ld=lld 2>&1 \
15// RUN: | FileCheck -check-prefixes=CHECK,CHECK-RISCV64 %s
Petr Hosek62e1d232016-10-06 06:08:09 +000016// CHECK: {{.*}}clang{{.*}}" "-cc1"
Petr Hosek68a3a3b2019-11-19 19:56:54 -080017// CHECK-X86_64: "-triple" "x86_64-unknown-fuchsia"
18// CHECK-AARCH64: "-triple" "aarch64-unknown-fuchsia"
19// CHECK-RISCV64: "-triple" "riscv64-unknown-fuchsia"
Fangrui Songb2b5cac2019-12-11 21:48:59 -080020// CHECK-NOT: "-fno-use-init-array"
Petr Hoseke6e04242018-11-04 03:53:07 +000021// CHECK: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
Petr Hosek62e1d232016-10-06 06:08:09 +000022// CHECK: "-isysroot" "[[SYSROOT:[^"]+]]"
Petr Hosek887f26d2018-06-28 03:11:52 +000023// CHECK: "-internal-isystem" "{{.*[/\\]}}include{{/|\\\\}}c++{{/|\\\\}}v1"
Petr Hosek62e1d232016-10-06 06:08:09 +000024// CHECK: "-internal-externc-isystem" "[[SYSROOT]]{{/|\\\\}}include"
Petr Hosek231875e2019-11-21 16:25:14 -080025// CHECK: {{.*}}ld.lld{{.*}}" "-z" "now" "-z" "rodynamic" "-z" "separate-loadable-segments"
Petr Hosek62e1d232016-10-06 06:08:09 +000026// CHECK: "--sysroot=[[SYSROOT]]"
27// CHECK: "-pie"
28// CHECK: "--build-id"
29// CHECK: "-dynamic-linker" "ld.so.1"
30// CHECK: Scrt1.o
31// CHECK-NOT: crti.o
32// CHECK-NOT: crtbegin.o
Petr Hosekcc248512017-07-12 22:14:41 +000033// CHECK: "-L[[SYSROOT]]{{/|\\\\}}lib"
Petr Hosekc39b97f2018-11-03 01:43:25 +000034// CHECK: "--push-state"
35// CHECK: "--as-needed"
36// CHECK: "-lc++"
37// CHECK: "-lm"
38// CHECK: "--pop-state"
Petr Hosek68a3a3b2019-11-19 19:56:54 -080039// CHECK-X86_64: "[[RESOURCE_DIR]]{{/|\\\\}}lib{{/|\\\\}}x86_64-fuchsia{{/|\\\\}}libclang_rt.builtins.a"
40// CHECK-AARCH64: "[[RESOURCE_DIR]]{{/|\\\\}}lib{{/|\\\\}}aarch64-fuchsia{{/|\\\\}}libclang_rt.builtins.a"
41// CHECK-RISCV64: "[[RESOURCE_DIR]]{{/|\\\\}}lib{{/|\\\\}}riscv64-fuchsia{{/|\\\\}}libclang_rt.builtins.a"
Petr Hosek62e1d232016-10-06 06:08:09 +000042// CHECK: "-lc"
43// CHECK-NOT: crtend.o
44// CHECK-NOT: crtn.o
45
David Greenee98b9d42018-08-06 17:35:44 +000046// RUN: %clangxx %s -### --target=x86_64-unknown-fuchsia -stdlib=libstdc++ \
47// RUN: -fuse-ld=lld 2>&1 \
Petr Hosek62e1d232016-10-06 06:08:09 +000048// RUN: | FileCheck %s -check-prefix=CHECK-STDLIB
49// CHECK-STDLIB: error: invalid library name in argument '-stdlib=libstdc++'
50
David Greenee98b9d42018-08-06 17:35:44 +000051// RUN: %clangxx %s -### --target=x86_64-unknown-fuchsia -static-libstdc++ \
52// RUN: -fuse-ld=lld 2>&1 \
Petr Hosek62e1d232016-10-06 06:08:09 +000053// RUN: | FileCheck %s -check-prefix=CHECK-STATIC
Petr Hosekc39b97f2018-11-03 01:43:25 +000054// CHECK-STATIC: "--push-state"
55// CHECK-STATIC: "--as-needed"
Petr Hosek6c652b72018-11-04 22:38:47 +000056// CHECK-STATIC: "-Bstatic"
Petr Hoseke857f5a2018-05-11 20:42:31 +000057// CHECK-STATIC: "-lc++"
Petr Hosek6c652b72018-11-04 22:38:47 +000058// CHECK-STATIC: "-Bdynamic"
Petr Hosek62e1d232016-10-06 06:08:09 +000059// CHECK-STATIC: "-lm"
Petr Hosekc39b97f2018-11-03 01:43:25 +000060// CHECK-STATIC: "--pop-state"
Petr Hosek62e1d232016-10-06 06:08:09 +000061// CHECK-STATIC: "-lc"
Petr Hosek5ecf51d2019-02-17 01:02:40 +000062
Petr Hosek2db79ef2019-05-26 03:39:07 +000063// RUN: %clangxx %s -### --target=x86_64-fuchsia -nostdlib++ -fuse-ld=lld 2>&1 \
Petr Hosek5ecf51d2019-02-17 01:02:40 +000064// RUN: | FileCheck %s -check-prefix=CHECK-NOSTDLIBXX
65// CHECK-NOSTDLIBXX-NOT: "-lc++"
66// CHECK-NOSTDLIBXX-NOT: "-lm"
67// CHECK-NOSTDLIBXX: "-lc"
Petr Hosekb58561b2019-04-27 00:25:13 +000068
Petr Hosek2db79ef2019-05-26 03:39:07 +000069// RUN: %clangxx %s -### --target=x86_64-fuchsia \
70// RUN: -ccc-install-dir %S/Inputs/basic_fuchsia_tree/bin \
Petr Hosekb58561b2019-04-27 00:25:13 +000071// RUN: -resource-dir=%S/Inputs/resource_dir_with_per_target_subdir \
72// RUN: -fuse-ld=lld 2>&1\
73// RUN: | FileCheck %s -check-prefixes=CHECK-MULTILIB-X86
Petr Hosek2db79ef2019-05-26 03:39:07 +000074// RUN: %clangxx %s -### --target=x86_64-fuchsia -fsanitize=address \
75// RUN: -ccc-install-dir %S/Inputs/basic_fuchsia_tree/bin \
Petr Hosekb58561b2019-04-27 00:25:13 +000076// RUN: -resource-dir=%S/Inputs/resource_dir_with_per_target_subdir \
77// RUN: -fuse-ld=lld 2>&1\
78// RUN: | FileCheck %s -check-prefixes=CHECK-MULTILIB-X86,CHECK-MULTILIB-ASAN-X86
Petr Hosek2db79ef2019-05-26 03:39:07 +000079// RUN: %clangxx %s -### --target=x86_64-fuchsia -fno-exceptions \
80// RUN: -ccc-install-dir %S/Inputs/basic_fuchsia_tree/bin \
Petr Hosekb58561b2019-04-27 00:25:13 +000081// RUN: -resource-dir=%S/Inputs/resource_dir_with_per_target_subdir \
82// RUN: -fuse-ld=lld 2>&1\
83// RUN: | FileCheck %s -check-prefixes=CHECK-MULTILIB-X86,CHECK-MULTILIB-NOEXCEPT-X86
Petr Hosek2db79ef2019-05-26 03:39:07 +000084// RUN: %clangxx %s -### --target=x86_64-fuchsia -fsanitize=address -fno-exceptions \
85// RUN: -ccc-install-dir %S/Inputs/basic_fuchsia_tree/bin \
Petr Hosekb58561b2019-04-27 00:25:13 +000086// RUN: -resource-dir=%S/Inputs/resource_dir_with_per_target_subdir \
87// RUN: -fuse-ld=lld 2>&1\
Petr Hosek20d34ea2019-07-13 08:07:10 +000088// RUN: | FileCheck %s -check-prefixes=CHECK-MULTILIB-X86,CHECK-MULTILIB-ASAN-NOEXCEPT-X86
Petr Hosekb58561b2019-04-27 00:25:13 +000089// CHECK-MULTILIB-X86: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
Petr Hosek2db79ef2019-05-26 03:39:07 +000090// CHECK-MULTILIB-ASAN-X86: "-L{{.*}}{{/|\\\\}}..{{/|\\\\}}lib{{/|\\\\}}x86_64-fuchsia{{/|\\\\}}c++{{/|\\\\}}asan"
91// CHECK-MULTILIB-NOEXCEPT-X86: "-L{{.*}}{{/|\\\\}}..{{/|\\\\}}lib{{/|\\\\}}x86_64-fuchsia{{/|\\\\}}c++{{/|\\\\}}noexcept"
Petr Hosek20d34ea2019-07-13 08:07:10 +000092// CHECK-MULTILIB-ASAN-NOEXCEPT-X86: "-L{{.*}}{{/|\\\\}}..{{/|\\\\}}lib{{/|\\\\}}x86_64-fuchsia{{/|\\\\}}c++{{/|\\\\}}asan+noexcept"
Petr Hosek2db79ef2019-05-26 03:39:07 +000093// CHECK-MULTILIB-X86: "-L{{.*}}{{/|\\\\}}..{{/|\\\\}}lib{{/|\\\\}}x86_64-fuchsia{{/|\\\\}}c++"