@@ -29,14 +29,16 @@ void netbsd::Assembler::ConstructJob(Compilation &C, const JobAction &JA,
29
29
const InputInfoList &Inputs,
30
30
const ArgList &Args,
31
31
const char *LinkingOutput) const {
32
- const Driver &D = getToolChain ().getDriver ();
32
+ const toolchains::NetBSD &ToolChain =
33
+ static_cast <const toolchains::NetBSD &>(getToolChain ());
34
+ const Driver &D = ToolChain.getDriver ();
33
35
34
36
claimNoWarnArgs (Args);
35
37
ArgStringList CmdArgs;
36
38
37
39
// GNU as needs different flags for creating the correct output format
38
40
// on architectures with different ABIs or optional feature sets.
39
- switch (getToolChain () .getArch ()) {
41
+ switch (ToolChain .getArch ()) {
40
42
case llvm::Triple::x86:
41
43
CmdArgs.push_back (" --32" );
42
44
break ;
@@ -47,7 +49,7 @@ void netbsd::Assembler::ConstructJob(Compilation &C, const JobAction &JA,
47
49
StringRef MArch, MCPU;
48
50
arm::getARMArchCPUFromArgs (Args, MArch, MCPU, /* FromAs*/ true );
49
51
std::string Arch =
50
- arm::getARMTargetCPU (MCPU, MArch, getToolChain () .getTriple ());
52
+ arm::getARMTargetCPU (MCPU, MArch, ToolChain .getTriple ());
51
53
CmdArgs.push_back (Args.MakeArgString (" -mcpu=" + Arch));
52
54
break ;
53
55
}
@@ -58,39 +60,39 @@ void netbsd::Assembler::ConstructJob(Compilation &C, const JobAction &JA,
58
60
case llvm::Triple::mips64el: {
59
61
StringRef CPUName;
60
62
StringRef ABIName;
61
- mips::getMipsCPUAndABI (Args, getToolChain () .getTriple (), CPUName, ABIName);
63
+ mips::getMipsCPUAndABI (Args, ToolChain .getTriple (), CPUName, ABIName);
62
64
63
65
CmdArgs.push_back (" -march" );
64
66
CmdArgs.push_back (CPUName.data ());
65
67
66
68
CmdArgs.push_back (" -mabi" );
67
69
CmdArgs.push_back (mips::getGnuCompatibleMipsABIName (ABIName).data ());
68
70
69
- if (getToolChain () .getTriple ().isLittleEndian ())
71
+ if (ToolChain .getTriple ().isLittleEndian ())
70
72
CmdArgs.push_back (" -EL" );
71
73
else
72
74
CmdArgs.push_back (" -EB" );
73
75
74
- AddAssemblerKPIC (getToolChain () , Args, CmdArgs);
76
+ AddAssemblerKPIC (ToolChain , Args, CmdArgs);
75
77
break ;
76
78
}
77
79
78
80
case llvm::Triple::sparc:
79
81
case llvm::Triple::sparcel: {
80
82
CmdArgs.push_back (" -32" );
81
- std::string CPU = getCPUName (D, Args, getToolChain () .getTriple ());
83
+ std::string CPU = getCPUName (D, Args, ToolChain .getTriple ());
82
84
CmdArgs.push_back (
83
- sparc::getSparcAsmModeForCPU (CPU, getToolChain () .getTriple ()));
84
- AddAssemblerKPIC (getToolChain () , Args, CmdArgs);
85
+ sparc::getSparcAsmModeForCPU (CPU, ToolChain .getTriple ()));
86
+ AddAssemblerKPIC (ToolChain , Args, CmdArgs);
85
87
break ;
86
88
}
87
89
88
90
case llvm::Triple::sparcv9: {
89
91
CmdArgs.push_back (" -64" );
90
- std::string CPU = getCPUName (D, Args, getToolChain () .getTriple ());
92
+ std::string CPU = getCPUName (D, Args, ToolChain .getTriple ());
91
93
CmdArgs.push_back (
92
- sparc::getSparcAsmModeForCPU (CPU, getToolChain () .getTriple ()));
93
- AddAssemblerKPIC (getToolChain () , Args, CmdArgs);
94
+ sparc::getSparcAsmModeForCPU (CPU, ToolChain .getTriple ()));
95
+ AddAssemblerKPIC (ToolChain , Args, CmdArgs);
94
96
break ;
95
97
}
96
98
@@ -106,7 +108,7 @@ void netbsd::Assembler::ConstructJob(Compilation &C, const JobAction &JA,
106
108
for (const auto &II : Inputs)
107
109
CmdArgs.push_back (II.getFilename ());
108
110
109
- const char *Exec = Args.MakeArgString ((getToolChain () .GetProgramPath (" as" )));
111
+ const char *Exec = Args.MakeArgString ((ToolChain .GetProgramPath (" as" )));
110
112
C.addCommand (std::make_unique<Command>(JA, *this ,
111
113
ResponseFileSupport::AtFileCurCP (),
112
114
Exec, CmdArgs, Inputs, Output));
@@ -258,9 +260,9 @@ void netbsd::Linker::ConstructJob(Compilation &C, const JobAction &JA,
258
260
Args.AddAllArgs (CmdArgs, options::OPT_Z_Flag);
259
261
Args.AddAllArgs (CmdArgs, options::OPT_r);
260
262
261
- bool NeedsSanitizerDeps = addSanitizerRuntimes (getToolChain () , Args, CmdArgs);
263
+ bool NeedsSanitizerDeps = addSanitizerRuntimes (ToolChain , Args, CmdArgs);
262
264
bool NeedsXRayDeps = addXRayRuntime (ToolChain, Args, CmdArgs);
263
- AddLinkerInputs (getToolChain () , Inputs, Args, CmdArgs, JA);
265
+ AddLinkerInputs (ToolChain , Inputs, Args, CmdArgs, JA);
264
266
265
267
const SanitizerArgs &SanArgs = ToolChain.getSanitizerArgs ();
266
268
if (SanArgs.needsSharedRt ()) {
@@ -297,15 +299,15 @@ void netbsd::Linker::ConstructJob(Compilation &C, const JobAction &JA,
297
299
// Use the static OpenMP runtime with -static-openmp
298
300
bool StaticOpenMP = Args.hasArg (options::OPT_static_openmp) &&
299
301
!Args.hasArg (options::OPT_static);
300
- addOpenMPRuntime (CmdArgs, getToolChain () , Args, StaticOpenMP);
302
+ addOpenMPRuntime (CmdArgs, ToolChain , Args, StaticOpenMP);
301
303
302
304
if (D.CCCIsCXX ()) {
303
305
if (ToolChain.ShouldLinkCXXStdlib (Args))
304
306
ToolChain.AddCXXStdlibLibArgs (Args, CmdArgs);
305
307
CmdArgs.push_back (" -lm" );
306
308
}
307
309
if (NeedsSanitizerDeps)
308
- linkSanitizerRuntimeDeps (getToolChain () , CmdArgs);
310
+ linkSanitizerRuntimeDeps (ToolChain , CmdArgs);
309
311
if (NeedsXRayDeps)
310
312
linkXRayRuntimeDeps (ToolChain, CmdArgs);
311
313
if (Args.hasArg (options::OPT_pthread))
0 commit comments