Add support for the '--sysroot' flag, and an accompanying test of its

interactions with -isysroot and other driver commands.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116912 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chandler Carruth 2010-10-20 07:00:47 +00:00
Родитель 4e2cbb28ba
Коммит feee58ce26
2 изменённых файлов: 35 добавлений и 0 удалений

Просмотреть файл

@ -295,6 +295,15 @@ void Clang::AddPreprocessingOptions(const Driver &D,
// -I- is a deprecated GCC feature, reject it.
if (Arg *A = Args.getLastArg(options::OPT_I_))
D.Diag(clang::diag::err_drv_I_dash_not_supported) << A->getAsString(Args);
// If we have a --sysroot, and don't have an explicit -isysroot flag, add an
// -isysroot to the CC1 invocation.
if (Arg *A = Args.getLastArg(options::OPT__sysroot_EQ)) {
if (!Args.hasArg(options::OPT_isysroot)) {
CmdArgs.push_back("-isysroot");
CmdArgs.push_back(A->getValue(Args));
}
}
}
/// getARMTargetCPU - Get the (LLVM) name of the ARM cpu we are targetting.

Просмотреть файл

@ -0,0 +1,26 @@
// Check for proper handling of --sysroot and -isysroot flags.
// RUN: %clang -### -fsyntax-only -isysroot /foo/bar %s |& \
// 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 -### -triple x86_64-unknown-linux-gnu --sysroot=/foo/bar \
// RUN: -o /dev/null %s |& 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 -### -triple x86_64-unknown-linux-gnu -isysroot /baz \
// RUN: --sysroot=/foo/bar -o /dev/null %s |& 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 -### -triple x86_64-unknown-linux-gnu --sysroot /foo/bar \
// RUN: -o /dev/null %s |& FileCheck %s -check-prefix=SYSROOT_SEPARATE
// SYSROOT_SEPARATE: "-isysroot" "/foo/bar"
// SYSROOT_SEPARATE: "--sysroot=/foo/bar"