From: Reid Spencer Date: Thu, 25 Nov 2004 09:32:08 +0000 (+0000) Subject: Implement dependent library linking. It is no longer required that -lstdc++ X-Git-Url: http://plrg.eecs.uci.edu/git/?p=oota-llvm.git;a=commitdiff_plain;h=53c4c5672c2db81a2d85fcf4e8d95028fc0d535d Implement dependent library linking. It is no longer required that -lstdc++ -lstdsup++ no -lc be passed on the command line to llvm linkers if the progam being linked was compiled with the C/C++ Front End or Stacker. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18243 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Linker/LinkArchives.cpp b/lib/Linker/LinkArchives.cpp index 0d770f56f13..1f96bf97c89 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 &Libraries, + const std::vector &Libs, const std::vector &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);