summaryrefslogtreecommitdiff
path: root/lib/Linker/LinkArchives.cpp
diff options
context:
space:
mode:
authorReid Spencer <rspencer@reidspencer.com>2004-11-25 09:32:08 +0000
committerReid Spencer <rspencer@reidspencer.com>2004-11-25 09:32:08 +0000
commit53c4c5672c2db81a2d85fcf4e8d95028fc0d535d (patch)
tree9b441514ed9886f5c41e113399f55f63bb438d77 /lib/Linker/LinkArchives.cpp
parent719012d6254ee425464f034250176283fb96793b (diff)
downloadllvm-53c4c5672c2db81a2d85fcf4e8d95028fc0d535d.tar.gz
llvm-53c4c5672c2db81a2d85fcf4e8d95028fc0d535d.tar.bz2
llvm-53c4c5672c2db81a2d85fcf4e8d95028fc0d535d.tar.xz
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.cpp9
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);