Clang Project

clang_source_code/test/Driver/fuchsia.cpp
1// RUN: %clangxx %s -### -no-canonical-prefixes --target=x86_64-fuchsia \
2// RUN:     -resource-dir=%S/Inputs/resource_dir_with_per_target_subdir \
3// RUN:     --sysroot=%S/platform -fuse-ld=lld 2>&1 | FileCheck %s
4// CHECK: {{.*}}clang{{.*}}" "-cc1"
5// CHECK: "-triple" "x86_64-fuchsia"
6// CHECK: "-fuse-init-array"
7// CHECK: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
8// CHECK: "-isysroot" "[[SYSROOT:[^"]+]]"
9// CHECK: "-internal-isystem" "{{.*[/\\]}}include{{/|\\\\}}c++{{/|\\\\}}v1"
10// CHECK: "-internal-externc-isystem" "[[SYSROOT]]{{/|\\\\}}include"
11// CHECK: {{.*}}ld.lld{{.*}}" "-z" "rodynamic"
12// CHECK: "--sysroot=[[SYSROOT]]"
13// CHECK: "-pie"
14// CHECK: "--build-id"
15// CHECK: "-dynamic-linker" "ld.so.1"
16// CHECK: Scrt1.o
17// CHECK-NOT: crti.o
18// CHECK-NOT: crtbegin.o
19// CHECK: "-L[[SYSROOT]]{{/|\\\\}}lib"
20// CHECK: "--push-state"
21// CHECK: "--as-needed"
22// CHECK: "-lc++"
23// CHECK: "-lm"
24// CHECK: "--pop-state"
25// CHECK: "[[RESOURCE_DIR]]{{/|\\\\}}x86_64-fuchsia{{/|\\\\}}lib{{/|\\\\}}libclang_rt.builtins.a"
26// CHECK: "-lc"
27// CHECK-NOT: crtend.o
28// CHECK-NOT: crtn.o
29
30// RUN: %clangxx %s -### --target=x86_64-unknown-fuchsia -stdlib=libstdc++ \
31// RUN:     -fuse-ld=lld 2>&1 \
32// RUN:     | FileCheck %s -check-prefix=CHECK-STDLIB
33// CHECK-STDLIB: error: invalid library name in argument '-stdlib=libstdc++'
34
35// RUN: %clangxx %s -### --target=x86_64-unknown-fuchsia -static-libstdc++ \
36// RUN:     -fuse-ld=lld 2>&1 \
37// RUN:     | FileCheck %s -check-prefix=CHECK-STATIC
38// CHECK-STATIC: "--push-state"
39// CHECK-STATIC: "--as-needed"
40// CHECK-STATIC: "-Bstatic"
41// CHECK-STATIC: "-lc++"
42// CHECK-STATIC: "-Bdynamic"
43// CHECK-STATIC: "-lm"
44// CHECK-STATIC: "--pop-state"
45// CHECK-STATIC: "-lc"
46
47// RUN: %clang %s -### --target=x86_64-fuchsia -nostdlib++ -fuse-ld=lld 2>&1 \
48// RUN:     | FileCheck %s -check-prefix=CHECK-NOSTDLIBXX
49// CHECK-NOSTDLIBXX-NOT: "-lc++"
50// CHECK-NOSTDLIBXX-NOT: "-lm"
51// CHECK-NOSTDLIBXX: "-lc"
52