Driver: Add support for a new -nostdlibinc option.
- This disables the system include directories, but not the compiler builtin directories. Useful for projects that want to use things like the intrinsic headers, but are otherwise freestanding. - I'm willing to reconsider the option naming, I also considered providing an explicit -builtinc (which would match -nobuiltininc), but this is more consistent with existing options. llvm-svn: 141692
This commit is contained in:
parent
b25bfde52d
commit
0f41eee2a0
|
@ -459,7 +459,13 @@ Add the specified directory to the search path for framework include files.
|
|||
|
||||
=item B<-nostdinc>
|
||||
|
||||
Do not search the standard system directories for include files.
|
||||
Do not search the standard system directories or compiler builtin directories
|
||||
for include files.
|
||||
|
||||
=item B<-nostdlibinc>
|
||||
|
||||
Do not search the standard system directories for include files, but do search
|
||||
compiler builting include directories.
|
||||
|
||||
=item B<-nobuiltininc>
|
||||
|
||||
|
|
|
@ -624,6 +624,7 @@ def noprebind : Flag<"-noprebind">;
|
|||
def noseglinkedit : Flag<"-noseglinkedit">;
|
||||
def nostartfiles : Flag<"-nostartfiles">;
|
||||
def nostdinc : Flag<"-nostdinc">;
|
||||
def nostdlibinc : Flag<"-nostdlibinc">;
|
||||
def nostdincxx : Flag<"-nostdinc++">;
|
||||
def nostdlib : Flag<"-nostdlib">;
|
||||
def object : Flag<"-object">;
|
||||
|
|
|
@ -1486,6 +1486,8 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
CmdArgs.push_back("-nostdsysteminc");
|
||||
CmdArgs.push_back("-nobuiltininc");
|
||||
} else {
|
||||
if (Args.hasArg(options::OPT_nostdlibinc))
|
||||
CmdArgs.push_back("-nostdsysteminc");
|
||||
Args.AddLastArg(CmdArgs, options::OPT_nostdincxx);
|
||||
Args.AddLastArg(CmdArgs, options::OPT_nobuiltininc);
|
||||
}
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
// RUN: %clang -ccc-host-triple x86_64-unknown-unknown \
|
||||
// RUN: -nostdlibinc -ffreestanding -fsyntax-only %s
|
||||
|
||||
#if !__has_include("stddef.h")
|
||||
#error "expected to be able to find compiler builtin headers!"
|
||||
#endif
|
||||
|
||||
#if __has_include("stdlib.h")
|
||||
#error "expected to *not* be able to find standard C headers"
|
||||
#endif
|
Loading…
Reference in New Issue