Factor out Hexagon code to build args.
This patch factor out the code in hexagon::Link::ConstructJob to be reused in other functions. No functionality change intended. llvm-svn: 236926
This commit is contained in:
parent
f34f410e0a
commit
71d19f3cd6
|
@ -5444,17 +5444,16 @@ void hexagon::Link::RenderExtraToolArgs(const JobAction &JA,
|
||||||
// The types are (hopefully) good enough.
|
// The types are (hopefully) good enough.
|
||||||
}
|
}
|
||||||
|
|
||||||
void hexagon::Link::ConstructJob(Compilation &C, const JobAction &JA,
|
static void constructHexagonLinkArgs(Compilation &C, const JobAction &JA,
|
||||||
const InputInfo &Output,
|
const toolchains::Hexagon_TC& ToolChain,
|
||||||
const InputInfoList &Inputs,
|
const InputInfo &Output,
|
||||||
const ArgList &Args,
|
const InputInfoList &Inputs,
|
||||||
const char *LinkingOutput) const {
|
const ArgList &Args,
|
||||||
|
ArgStringList &CmdArgs,
|
||||||
|
const char *LinkingOutput) {
|
||||||
|
|
||||||
const toolchains::Hexagon_TC& ToolChain =
|
|
||||||
static_cast<const toolchains::Hexagon_TC&>(getToolChain());
|
|
||||||
const Driver &D = ToolChain.getDriver();
|
const Driver &D = ToolChain.getDriver();
|
||||||
|
|
||||||
ArgStringList CmdArgs;
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
//
|
//
|
||||||
|
@ -5600,6 +5599,20 @@ void hexagon::Link::ConstructJob(Compilation &C, const JobAction &JA,
|
||||||
std::string finiObj = useShared ? "/finiS.o" : "/fini.o";
|
std::string finiObj = useShared ? "/finiS.o" : "/fini.o";
|
||||||
CmdArgs.push_back(Args.MakeArgString(StartFilesDir + finiObj));
|
CmdArgs.push_back(Args.MakeArgString(StartFilesDir + finiObj));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void hexagon::Link::ConstructJob(Compilation &C, const JobAction &JA,
|
||||||
|
const InputInfo &Output,
|
||||||
|
const InputInfoList &Inputs,
|
||||||
|
const ArgList &Args,
|
||||||
|
const char *LinkingOutput) const {
|
||||||
|
|
||||||
|
const toolchains::Hexagon_TC& ToolChain =
|
||||||
|
static_cast<const toolchains::Hexagon_TC&>(getToolChain());
|
||||||
|
|
||||||
|
ArgStringList CmdArgs;
|
||||||
|
constructHexagonLinkArgs(C, JA, ToolChain, Output, Inputs, Args, CmdArgs,
|
||||||
|
LinkingOutput);
|
||||||
|
|
||||||
std::string Linker = ToolChain.GetProgramPath("hexagon-ld");
|
std::string Linker = ToolChain.GetProgramPath("hexagon-ld");
|
||||||
C.addCommand(llvm::make_unique<Command>(JA, *this, Args.MakeArgString(Linker),
|
C.addCommand(llvm::make_unique<Command>(JA, *this, Args.MakeArgString(Linker),
|
||||||
|
|
Loading…
Reference in New Issue