diff options
author | Reid Spencer <rspencer@reidspencer.com> | 2004-11-25 09:32:08 +0000 |
---|---|---|
committer | Reid Spencer <rspencer@reidspencer.com> | 2004-11-25 09:32:08 +0000 |
commit | 53c4c5672c2db81a2d85fcf4e8d95028fc0d535d (patch) | |
tree | 9b441514ed9886f5c41e113399f55f63bb438d77 /lib/Linker/LinkArchives.cpp | |
parent | 719012d6254ee425464f034250176283fb96793b (diff) |
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
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); |