Skip to content

Commit dce2245

Browse files
authored
[clang][driver] Cleanup UEFI toolchain driver (#111473)
Updating UEFI header includes to not include system include directories, adding includes from compiler resource directory and minor cleanups.
1 parent 530fe60 commit dce2245

File tree

4 files changed

+23
-5
lines changed

4 files changed

+23
-5
lines changed

clang/lib/Basic/Targets/X86.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -832,11 +832,6 @@ class LLVM_LIBRARY_VISIBILITY UEFIX86_64TargetInfo
832832
"i64:64-i128:128-f80:128-n8:16:32:64-S128");
833833
}
834834

835-
void getTargetDefines(const LangOptions &Opts,
836-
MacroBuilder &Builder) const override {
837-
getOSDefines(Opts, X86TargetInfo::getTriple(), Builder);
838-
}
839-
840835
BuiltinVaListKind getBuiltinVaListKind() const override {
841836
return TargetInfo::CharPtrBuiltinVaList;
842837
}

clang/lib/Driver/ToolChains/UEFI.cpp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,24 @@ UEFI::UEFI(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
3535

3636
Tool *UEFI::buildLinker() const { return new tools::uefi::Linker(*this); }
3737

38+
void UEFI::AddClangSystemIncludeArgs(const ArgList &DriverArgs,
39+
ArgStringList &CC1Args) const {
40+
if (DriverArgs.hasArg(options::OPT_nostdinc))
41+
return;
42+
43+
if (!DriverArgs.hasArg(options::OPT_nobuiltininc)) {
44+
SmallString<128> Dir(getDriver().ResourceDir);
45+
llvm::sys::path::append(Dir, "include");
46+
addSystemInclude(DriverArgs, CC1Args, Dir.str());
47+
}
48+
49+
if (DriverArgs.hasArg(options::OPT_nostdlibinc))
50+
return;
51+
52+
if (std::optional<std::string> Path = getStdlibIncludePath())
53+
addSystemInclude(DriverArgs, CC1Args, *Path);
54+
}
55+
3856
void tools::uefi::Linker::ConstructJob(Compilation &C, const JobAction &JA,
3957
const InputInfo &Output,
4058
const InputInfoList &Inputs,

clang/lib/Driver/ToolChains/UEFI.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,10 @@ class LLVM_LIBRARY_VISIBILITY UEFI : public ToolChain {
5151
return false;
5252
}
5353
bool isPICDefaultForced() const override { return true; }
54+
55+
void
56+
AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs,
57+
llvm::opt::ArgStringList &CC1Args) const override;
5458
};
5559

5660
} // namespace toolchains

clang/lib/Lex/InitHeaderSearch.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -301,6 +301,7 @@ bool InitHeaderSearch::ShouldAddDefaultIncludePaths(
301301
case llvm::Triple::PS5:
302302
case llvm::Triple::RTEMS:
303303
case llvm::Triple::Solaris:
304+
case llvm::Triple::UEFI:
304305
case llvm::Triple::WASI:
305306
case llvm::Triple::ZOS:
306307
return false;

0 commit comments

Comments
 (0)