зеркало из https://github.com/microsoft/clang-1.git
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:
Родитель
4e2cbb28ba
Коммит
feee58ce26
|
@ -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"
|
Загрузка…
Ссылка в новой задаче