diff options
Diffstat (limited to 'lib/Linker/LinkArchives.cpp')
-rw-r--r-- | lib/Linker/LinkArchives.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/Linker/LinkArchives.cpp b/lib/Linker/LinkArchives.cpp index 0d770f56f1..1f96bf97c8 100644 --- a/lib/Linker/LinkArchives.cpp +++ b/lib/Linker/LinkArchives.cpp @@ -371,12 +371,19 @@ bool llvm::LinkFiles(const char *progname, Module *HeadModule, /// TRUE - Error. /// void llvm::LinkLibraries(const char *progname, Module *HeadModule, - const std::vector<std::string> &Libraries, + const std::vector<std::string> &Libs, const std::vector<std::string> &LibPaths, bool Verbose, bool Native) { // String in which to receive error messages. std::string ErrorMessage; + // Build a set of library names that we should try, including the + // HeadModule's dependent libraries. We use a set here to eliminate + // duplicates between the module's libraries and the argument Libs. + Module::LibraryListType Libraries(HeadModule->getLibraries()); + Libraries.insert(Libs.begin(),Libs.end()); + + // For each library for (unsigned i = 0; i < Libraries.size(); ++i) { // Determine where this library lives. std::string Pathname = FindLib(Libraries[i], LibPaths); |