|
@@ -1692,6 +1692,8 @@ static void addLinkOptionsPostorder(CodeGenModule &CGM, Module *Mod,
|
|
// Add linker options to link against the libraries/frameworks
|
|
// Add linker options to link against the libraries/frameworks
|
|
// described by this module.
|
|
// described by this module.
|
|
llvm::LLVMContext &Context = CGM.getLLVMContext();
|
|
llvm::LLVMContext &Context = CGM.getLLVMContext();
|
|
|
|
+ bool IsELF = CGM.getTarget().getTriple().isOSBinFormatELF();
|
|
|
|
+ bool IsPS4 = CGM.getTarget().getTriple().isPS4();
|
|
|
|
|
|
// For modules that use export_as for linking, use that module
|
|
// For modules that use export_as for linking, use that module
|
|
// name instead.
|
|
// name instead.
|
|
@@ -1711,11 +1713,19 @@ static void addLinkOptionsPostorder(CodeGenModule &CGM, Module *Mod,
|
|
}
|
|
}
|
|
|
|
|
|
// Link against a library.
|
|
// Link against a library.
|
|
- llvm::SmallString<24> Opt;
|
|
|
|
- CGM.getTargetCodeGenInfo().getDependentLibraryOption(
|
|
|
|
- Mod->LinkLibraries[I-1].Library, Opt);
|
|
|
|
- auto *OptString = llvm::MDString::get(Context, Opt);
|
|
|
|
- Metadata.push_back(llvm::MDNode::get(Context, OptString));
|
|
|
|
|
|
+ if (IsELF && !IsPS4) {
|
|
|
|
+ llvm::Metadata *Args[2] = {
|
|
|
|
+ llvm::MDString::get(Context, "lib"),
|
|
|
|
+ llvm::MDString::get(Context, Mod->LinkLibraries[I - 1].Library),
|
|
|
|
+ };
|
|
|
|
+ Metadata.push_back(llvm::MDNode::get(Context, Args));
|
|
|
|
+ } else {
|
|
|
|
+ llvm::SmallString<24> Opt;
|
|
|
|
+ CGM.getTargetCodeGenInfo().getDependentLibraryOption(
|
|
|
|
+ Mod->LinkLibraries[I - 1].Library, Opt);
|
|
|
|
+ auto *OptString = llvm::MDString::get(Context, Opt);
|
|
|
|
+ Metadata.push_back(llvm::MDNode::get(Context, OptString));
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|