1 // RUN: %clangxx %s -### -no-canonical-prefixes --target=x86_64-fuchsia \
2 // RUN:     -ccc-install-dir %S/Inputs/basic_fuchsia_tree/bin \
3 // RUN:     -resource-dir=%S/Inputs/resource_dir_with_per_target_subdir \
4 // RUN:     --sysroot=%S/platform -fuse-ld=lld 2>&1 | FileCheck %s
5 // CHECK: {{.*}}clang{{.*}}" "-cc1"
6 // CHECK: "-triple" "x86_64-fuchsia"
7 // CHECK: "-fuse-init-array"
8 // CHECK: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
9 // CHECK: "-isysroot" "[[SYSROOT:[^"]+]]"
10 // CHECK: "-internal-isystem" "{{.*[/\\]}}include{{/|\\\\}}c++{{/|\\\\}}v1"
11 // CHECK: "-internal-externc-isystem" "[[SYSROOT]]{{/|\\\\}}include"
12 // CHECK: {{.*}}ld.lld{{.*}}" "-z" "rodynamic"
13 // CHECK: "--sysroot=[[SYSROOT]]"
14 // CHECK: "-pie"
15 // CHECK: "--build-id"
16 // CHECK: "-dynamic-linker" "ld.so.1"
17 // CHECK: Scrt1.o
18 // CHECK-NOT: crti.o
19 // CHECK-NOT: crtbegin.o
20 // CHECK: "-L[[SYSROOT]]{{/|\\\\}}lib"
21 // CHECK: "--push-state"
22 // CHECK: "--as-needed"
23 // CHECK: "-lc++"
24 // CHECK: "-lm"
25 // CHECK: "--pop-state"
26 // CHECK: "[[RESOURCE_DIR]]{{/|\\\\}}lib{{/|\\\\}}x86_64-fuchsia{{/|\\\\}}libclang_rt.builtins.a"
27 // CHECK: "-lc"
28 // CHECK-NOT: crtend.o
29 // CHECK-NOT: crtn.o
30 
31 // RUN: %clangxx %s -### --target=x86_64-unknown-fuchsia -stdlib=libstdc++ \
32 // RUN:     -fuse-ld=lld 2>&1 \
33 // RUN:     | FileCheck %s -check-prefix=CHECK-STDLIB
34 // CHECK-STDLIB: error: invalid library name in argument '-stdlib=libstdc++'
35 
36 // RUN: %clangxx %s -### --target=x86_64-unknown-fuchsia -static-libstdc++ \
37 // RUN:     -fuse-ld=lld 2>&1 \
38 // RUN:     | FileCheck %s -check-prefix=CHECK-STATIC
39 // CHECK-STATIC: "--push-state"
40 // CHECK-STATIC: "--as-needed"
41 // CHECK-STATIC: "-Bstatic"
42 // CHECK-STATIC: "-lc++"
43 // CHECK-STATIC: "-Bdynamic"
44 // CHECK-STATIC: "-lm"
45 // CHECK-STATIC: "--pop-state"
46 // CHECK-STATIC: "-lc"
47 
48 // RUN: %clangxx %s -### --target=x86_64-fuchsia -nostdlib++ -fuse-ld=lld 2>&1 \
49 // RUN:     | FileCheck %s -check-prefix=CHECK-NOSTDLIBXX
50 // CHECK-NOSTDLIBXX-NOT: "-lc++"
51 // CHECK-NOSTDLIBXX-NOT: "-lm"
52 // CHECK-NOSTDLIBXX: "-lc"
53 
54 // RUN: %clangxx %s -### --target=x86_64-fuchsia \
55 // RUN:     -ccc-install-dir %S/Inputs/basic_fuchsia_tree/bin \
56 // RUN:     -resource-dir=%S/Inputs/resource_dir_with_per_target_subdir \
57 // RUN:     -fuse-ld=lld 2>&1\
58 // RUN:     | FileCheck %s -check-prefixes=CHECK-MULTILIB-X86
59 // RUN: %clangxx %s -### --target=x86_64-fuchsia -fsanitize=address \
60 // RUN:     -ccc-install-dir %S/Inputs/basic_fuchsia_tree/bin \
61 // RUN:     -resource-dir=%S/Inputs/resource_dir_with_per_target_subdir \
62 // RUN:     -fuse-ld=lld 2>&1\
63 // RUN:     | FileCheck %s -check-prefixes=CHECK-MULTILIB-X86,CHECK-MULTILIB-ASAN-X86
64 // RUN: %clangxx %s -### --target=x86_64-fuchsia -fno-exceptions \
65 // RUN:     -ccc-install-dir %S/Inputs/basic_fuchsia_tree/bin \
66 // RUN:     -resource-dir=%S/Inputs/resource_dir_with_per_target_subdir \
67 // RUN:     -fuse-ld=lld 2>&1\
68 // RUN:     | FileCheck %s -check-prefixes=CHECK-MULTILIB-X86,CHECK-MULTILIB-NOEXCEPT-X86
69 // RUN: %clangxx %s -### --target=x86_64-fuchsia -fsanitize=address -fno-exceptions \
70 // RUN:     -ccc-install-dir %S/Inputs/basic_fuchsia_tree/bin \
71 // 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,CHECK-MULTILIB-ASAN-NOEXCEPT-X86
74 // CHECK-MULTILIB-X86: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
75 // CHECK-MULTILIB-ASAN-X86: "-L{{.*}}{{/|\\\\}}..{{/|\\\\}}lib{{/|\\\\}}x86_64-fuchsia{{/|\\\\}}c++{{/|\\\\}}asan"
76 // CHECK-MULTILIB-NOEXCEPT-X86: "-L{{.*}}{{/|\\\\}}..{{/|\\\\}}lib{{/|\\\\}}x86_64-fuchsia{{/|\\\\}}c++{{/|\\\\}}noexcept"
77 // CHECK-MULTILIB-ASAN-NOEXCEPT-X86: "-L{{.*}}{{/|\\\\}}..{{/|\\\\}}lib{{/|\\\\}}x86_64-fuchsia{{/|\\\\}}c++{{/|\\\\}}asan+noexcept"
78 // CHECK-MULTILIB-X86: "-L{{.*}}{{/|\\\\}}..{{/|\\\\}}lib{{/|\\\\}}x86_64-fuchsia{{/|\\\\}}c++"
79