Skip to content

Commit

Permalink
[Driver][FreeBSD][NFC] A bit of clean up
Browse files Browse the repository at this point in the history
  • Loading branch information
brad0 committed Nov 12, 2023
1 parent 5feebdc commit aebd232
Showing 1 changed file with 18 additions and 14 deletions.
32 changes: 18 additions & 14 deletions clang/lib/Driver/ToolChains/FreeBSD.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,16 @@ void freebsd::Assembler::ConstructJob(Compilation &C, const JobAction &JA,
const InputInfoList &Inputs,
const ArgList &Args,
const char *LinkingOutput) const {
claimNoWarnArgs(Args);
ArgStringList CmdArgs;
const auto &ToolChain = static_cast<const FreeBSD &>(getToolChain());
const auto &D = getToolChain().getDriver();
const llvm::Triple &Triple = ToolChain.getTriple();
ArgStringList CmdArgs;

claimNoWarnArgs(Args);

// When building 32-bit code on FreeBSD/amd64, we have to explicitly
// instruct as in the base system to assemble 32-bit code.
switch (getToolChain().getArch()) {
switch (ToolChain.getArch()) {
default:
break;
case llvm::Triple::x86:
Expand All @@ -52,15 +55,15 @@ void freebsd::Assembler::ConstructJob(Compilation &C, const JobAction &JA,
case llvm::Triple::mips64el: {
StringRef CPUName;
StringRef ABIName;
mips::getMipsCPUAndABI(Args, getToolChain().getTriple(), CPUName, ABIName);
mips::getMipsCPUAndABI(Args, Triple, CPUName, ABIName);

CmdArgs.push_back("-march");
CmdArgs.push_back(CPUName.data());

CmdArgs.push_back("-mabi");
CmdArgs.push_back(mips::getGnuCompatibleMipsABIName(ABIName).data());

if (getToolChain().getTriple().isLittleEndian())
if (Triple.isLittleEndian())
CmdArgs.push_back("-EL");
else
CmdArgs.push_back("-EB");
Expand All @@ -71,14 +74,14 @@ void freebsd::Assembler::ConstructJob(Compilation &C, const JobAction &JA,
A->claim();
}

AddAssemblerKPIC(getToolChain(), Args, CmdArgs);
AddAssemblerKPIC(ToolChain, Args, CmdArgs);
break;
}
case llvm::Triple::arm:
case llvm::Triple::armeb:
case llvm::Triple::thumb:
case llvm::Triple::thumbeb: {
arm::FloatABI ABI = arm::getARMFloatABI(getToolChain(), Args);
arm::FloatABI ABI = arm::getARMFloatABI(ToolChain, Args);

if (ABI == arm::FloatABI::Hard)
CmdArgs.push_back("-mfpu=vfp");
Expand All @@ -89,10 +92,9 @@ void freebsd::Assembler::ConstructJob(Compilation &C, const JobAction &JA,
break;
}
case llvm::Triple::sparcv9: {
std::string CPU = getCPUName(D, Args, getToolChain().getTriple());
CmdArgs.push_back(
sparc::getSparcAsmModeForCPU(CPU, getToolChain().getTriple()));
AddAssemblerKPIC(getToolChain(), Args, CmdArgs);
std::string CPU = getCPUName(D, Args, Triple);
CmdArgs.push_back(sparc::getSparcAsmModeForCPU(CPU, Triple));
AddAssemblerKPIC(ToolChain, Args, CmdArgs);
break;
}
}
Expand All @@ -118,7 +120,7 @@ void freebsd::Assembler::ConstructJob(Compilation &C, const JobAction &JA,
for (const auto &II : Inputs)
CmdArgs.push_back(II.getFilename());

const char *Exec = Args.MakeArgString(getToolChain().GetProgramPath("as"));
const char *Exec = Args.MakeArgString(ToolChain.GetProgramPath("as"));
C.addCommand(std::make_unique<Command>(JA, *this,
ResponseFileSupport::AtFileCurCP(),
Exec, CmdArgs, Inputs, Output));
Expand Down Expand Up @@ -366,10 +368,12 @@ void freebsd::Linker::ConstructJob(Compilation &C, const JobAction &JA,

if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nostartfiles,
options::OPT_r)) {
const char *crtend = nullptr;
if (Args.hasArg(options::OPT_shared) || IsPIE)
CmdArgs.push_back(Args.MakeArgString(ToolChain.GetFilePath("crtendS.o")));
crtend = "crtendS.o";
else
CmdArgs.push_back(Args.MakeArgString(ToolChain.GetFilePath("crtend.o")));
crtend = "crtend.o";
CmdArgs.push_back(Args.MakeArgString(ToolChain.GetFilePath(crtend)));
CmdArgs.push_back(Args.MakeArgString(ToolChain.GetFilePath("crtn.o")));
}

Expand Down

0 comments on commit aebd232

Please sign in to comment.