llvm-project/clang/test/Driver/sysroot-flags.c
Rafael Espindola c8f008f649 Use ld directly on linux. Changes from the previous try:
*) Try to detect as much as possible from the system itself, not the distro.
   This should make it easier to port to a new distro and more likely to
   work on a unknown one.
*) The distro enum now doesn't include the arch. Just use the existing
   host detection support in LLVM.
*) Correctly handle --sysroot.

A small regression is that now clang will pass bitcode file to the linker.
This is necessary for the gold plugin support to work.

It might be better to detect this at configure/cmake time, but doing it in
c++ first is a lot easier.

llvm-svn: 118382
2010-11-07 20:14:31 +00:00

29 lines
1.2 KiB
C

// Check for proper handling of --sysroot and -isysroot flags.
// RUN: %clang -### -fsyntax-only -isysroot /foo/bar %s 2>&1 | \
// RUN: FileCheck %s -check-prefix=ISYSROOT
// ISYSROOT: "-isysroot" "/foo/bar"
// Check that we get both isysroot for headers, and pass --sysroot on to GCC to
// produce the final binary.
// RUN: %clang -### -ccc-host-triple x86_64-unknown-linux-gnu \
// RUN: --sysroot=/foo/bar -o /dev/null %s 2>&1 | \
// RUN: FileCheck %s -check-prefix=SYSROOT_EQ
// SYSROOT_EQ: "-isysroot" "/foo/bar"
// SYSROOT_EQ: "--sysroot" "/foo/bar"
// Check for overriding the header sysroot by providing both --sysroot and
// -isysroot.
// RUN: %clang -### -ccc-host-triple x86_64-unknown-linux-gnu -isysroot /baz \
// RUN: --sysroot=/foo/bar -o /dev/null %s 2>&1 | FileCheck %s \
// RUN: -check-prefix=ISYSROOT_AND_SYSROOT
// ISYSROOT_AND_SYSROOT: "-isysroot" "/baz"
// ISYSROOT_AND_SYSROOT: "--sysroot" "/foo/bar"
// Check that omitting the equals works as well.
// RUN: %clang -### -ccc-host-triple x86_64-unknown-linux-gnu \
// RUN: --sysroot /foo/bar -o /dev/null %s 2>&1 | \
// RUN: FileCheck %s -check-prefix=SYSROOT_SEPARATE
// SYSROOT_SEPARATE: "-isysroot" "/foo/bar"
// SYSROOT_SEPARATE: "--sysroot" "/foo/bar"