1 // These tests try to ensure that the driver operates reasonably when run with
2 // a strange environment. Unfortunately, it requires a normal shell and the
3 // 'env' command that understands arguments, unlike the LIT built-in env.
4 //
5 // REQUIRES: shell
6 // The PATH variable is heavily used when trying to find a linker.
7 // RUN: env -i LC_ALL=C LD_LIBRARY_PATH="$LD_LIBRARY_PATH" \
8 // RUN:   %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
9 // RUN:     --target=i386-unknown-linux \
10 // RUN:     --sysroot=%S/Inputs/basic_linux_tree \
11 // RUN:     --gcc-toolchain="" \
12 // RUN:   | FileCheck --check-prefix=CHECK-LD-32 %s
13 //
14 // RUN: env -i LC_ALL=C PATH="" LD_LIBRARY_PATH="$LD_LIBRARY_PATH" \
15 // RUN:   %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
16 // RUN:     --target=i386-unknown-linux \
17 // RUN:     --sysroot=%S/Inputs/basic_linux_tree \
18 // RUN:     --gcc-toolchain="" \
19 // RUN:   | FileCheck --check-prefix=CHECK-LD-32 %s
20 //
21 // CHECK-LD-32-NOT: warning:
22 // CHECK-LD-32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
23 // CHECK-LD-32: "{{.*}}/usr/lib/gcc/i386-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o"
24 // CHECK-LD-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0"
25 // CHECK-LD-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/lib"
26 // CHECK-LD-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../.."
27 // CHECK-LD-32: "-L[[SYSROOT]]/lib"
28 // CHECK-LD-32: "-L[[SYSROOT]]/usr/lib"
29