;
27 const char*LinkingOutput)
const{
29ArgStringList CmdArgs;
36CmdArgs.push_back(
"--32");
38Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, options::OPT_Xassembler);
40CmdArgs.push_back(
"-o");
43 for(
const auto&II : Inputs)
44CmdArgs.push_back(II.getFilename());
47 C.addCommand(std::make_unique<Command>(JA, *
this,
49Exec, CmdArgs, Inputs, Output));
56 const char*LinkingOutput)
const{
60 const bool Static= Args.hasArg(options::OPT_static);
61 const boolShared = Args.hasArg(options::OPT_shared);
62 const boolProfiling = Args.hasArg(options::OPT_pg);
63 const boolPie = Args.hasArg(options::OPT_pie);
64ArgStringList CmdArgs;
66 if(!
D.SysRoot.empty())
67CmdArgs.push_back(Args.MakeArgString(
"--sysroot="+
D.SysRoot));
69CmdArgs.push_back(
"--eh-frame-hdr");
71CmdArgs.push_back(
"-Bstatic");
73 if(Args.hasArg(options::OPT_rdynamic))
74CmdArgs.push_back(
"-export-dynamic");
76CmdArgs.push_back(
"-shared");
77 else if(!Args.hasArg(options::OPT_r)) {
78CmdArgs.push_back(
"-dynamic-linker");
79CmdArgs.push_back(
"/usr/libexec/ld-elf.so.2");
81CmdArgs.push_back(
"--hash-style=gnu");
82CmdArgs.push_back(
"--enable-new-dtags");
87 if(Arch == llvm::Triple::x86) {
88CmdArgs.push_back(
"-m");
89CmdArgs.push_back(
"elf_i386");
94CmdArgs.push_back(
"-o");
98 if(!Args.hasArg(options::OPT_nostdlib, options::OPT_nostartfiles,
100 const char*crt1 =
nullptr;
101 const char*crtbegin =
nullptr;
114crtbegin =
"crtbeginS.o";
116crtbegin =
"crtbegin.o";
124Args.addAllArgs(CmdArgs, {options::OPT_L, options::OPT_T_Group,
125options::OPT_s, options::OPT_t});
130 if(!Args.hasArg(options::OPT_nostdlib, options::OPT_nodefaultlibs,
133CmdArgs.push_back(
"-rpath");
134CmdArgs.push_back(
"/usr/lib/gcc80");
138 boolStaticOpenMP = Args.hasArg(options::OPT_static_openmp) && !
Static;
141 if(
D.CCCIsCXX()) {
144CmdArgs.push_back(
"-lm");
148Args.ClaimAllArgs(options::OPT_stdlib_EQ);
154 if(
D.IsFlangMode() &&
155!Args.hasArg(options::OPT_nostdlib, options::OPT_nodefaultlibs)) {
158CmdArgs.push_back(
"-lm");
161 if(Args.hasArg(options::OPT_pthread))
162CmdArgs.push_back(
"-lpthread");
164 if(!Args.hasArg(options::OPT_nolibc))
165CmdArgs.push_back(
"-lc");
167 if(
Static|| Args.hasArg(options::OPT_static_libgcc)) {
168CmdArgs.push_back(
"-lgcc");
169CmdArgs.push_back(
"-lgcc_eh");
171 if(Args.hasArg(options::OPT_shared_libgcc)) {
172CmdArgs.push_back(
"-lgcc_pic");
174CmdArgs.push_back(
"-lgcc");
176CmdArgs.push_back(
"-lgcc");
177CmdArgs.push_back(
"--as-needed");
178CmdArgs.push_back(
"-lgcc_pic");
179CmdArgs.push_back(
"--no-as-needed");
184 if(!Args.hasArg(options::OPT_nostdlib, options::OPT_nostartfiles,
186 const char*crtend =
nullptr;
188crtend =
"crtendS.o";
190crtend =
"crtend.o";
199 C.addCommand(std::make_unique<Command>(JA, *
this,
201Exec, CmdArgs, Inputs, Output));
218 constllvm::opt::ArgList &DriverArgs,
219llvm::opt::ArgStringList &CC1Args)
const{
222 if(DriverArgs.hasArg(clang::driver::options::OPT_nostdinc))
225 if(!DriverArgs.hasArg(options::OPT_nobuiltininc)) {
227llvm::sys::path::append(Dir,
"include");
231 if(DriverArgs.hasArg(options::OPT_nostdlibinc))
235 concat(
D.SysRoot,
"/usr/include"));
239llvm::opt::ArgStringList &CC1Args)
const{
241DriverArgs, CC1Args);
Compilation - A set of tasks to perform for a single driver invocation.
Driver - Encapsulate logic for constructing compilation processes from a set of gcc-driver-like comma...
InputInfo - Wrapper for information about an input source.
const char * getFilename() const
The JSON file list parser is used to communicate input to InstallAPI.
static constexpr ResponseFileSupport AtFileCurCP()
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4