|
|
|
@ -147,14 +147,21 @@ void Parser::LinkELF(const LinkerOptions* LinkerOptions,
@@ -147,14 +147,21 @@ void Parser::LinkELF(const LinkerOptions* LinkerOptions,
|
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
bool linked = false; |
|
|
|
|
|
|
|
|
|
void Parser::LinkMachO(const LinkerOptions* LinkerOptions, |
|
|
|
|
std::vector<const char*>& args, |
|
|
|
|
llvm::StringRef& Dir, llvm::StringRef& Stem) |
|
|
|
|
{ |
|
|
|
|
if (linked) |
|
|
|
|
{ |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
linked = true; |
|
|
|
|
#ifdef __APPLE__ |
|
|
|
|
using namespace llvm; |
|
|
|
|
|
|
|
|
|
args.push_back("-flavor darwinnew"); |
|
|
|
|
args.push_back("-flavor darwin"); |
|
|
|
|
for (const std::string& Arg : LinkerOptions->Arguments) |
|
|
|
|
{ |
|
|
|
|
args.push_back(Arg.data()); |
|
|
|
@ -182,6 +189,6 @@ void Parser::LinkMachO(const LinkerOptions* LinkerOptions,
@@ -182,6 +189,6 @@ void Parser::LinkMachO(const LinkerOptions* LinkerOptions,
|
|
|
|
|
std::string Out(Output); |
|
|
|
|
args.push_back(Out.data()); |
|
|
|
|
|
|
|
|
|
lld::mach_o::link(args, false, outs(), errs()); |
|
|
|
|
lld::macho::link(args, false, outs(), errs()); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|