diff options
| author | Chris Lattner <sabre@nondot.org> | 2002-03-11 17:49:53 +0000 | 
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2002-03-11 17:49:53 +0000 | 
| commit | 6f0d4531efec4e214f099e80741423734fe2666e (patch) | |
| tree | 92b173a75bf7170f1c766d90c8689e51263003ec /llvm/tools | |
| parent | 10b85921ef806fa55801af2eb50b3df14dbee5eb (diff) | |
| download | bcm5719-llvm-6f0d4531efec4e214f099e80741423734fe2666e.tar.gz bcm5719-llvm-6f0d4531efec4e214f099e80741423734fe2666e.zip  | |
* Implement linking to libraries
* Pass arguments to program through shell script
llvm-svn: 1851
Diffstat (limited to 'llvm/tools')
| -rw-r--r-- | llvm/tools/gccld/gccld.cpp | 17 | 
1 files changed, 14 insertions, 3 deletions
diff --git a/llvm/tools/gccld/gccld.cpp b/llvm/tools/gccld/gccld.cpp index cde23f9d28f..c2aa8379a11 100644 --- a/llvm/tools/gccld/gccld.cpp +++ b/llvm/tools/gccld/gccld.cpp @@ -22,6 +22,7 @@  #include "Support/CommandLine.h"  #include <fstream>  #include <memory> +#include <algorithm>  #include <sys/types.h>     // For FileExists  #include <sys/stat.h> @@ -86,8 +87,18 @@ int main(int argc, char **argv) {    unsigned BaseArg = 0;    std::string ErrorMessage; -  if (!Libraries.empty()) -    cerr << "LLVM Linker Warning:  Linking to libraries is unimplemented!\n"; +  if (!Libraries.empty()) { +    // Sort libraries list... +    sort(Libraries.begin(), Libraries.end()); + +    // Remove duplicate libraries entries... +    Libraries.erase(unique(Libraries.begin(), Libraries.end()), +                    Libraries.end()); + +    // Add all of the libraries to the end of the link line... +    for (unsigned i = 0; i < Libraries.size(); ++i) +      InputFilenames.push_back("lib" + Libraries[i] + ".bc"); +  }    std::auto_ptr<Module> Composite(LoadFile(InputFilenames[BaseArg]));    if (Composite.get() == 0) return 1; @@ -121,7 +132,7 @@ int main(int argc, char **argv) {      cerr << "Error openeing '" << OutputFilename << "' for writing!\n";      return 1;    } -  Out2 << "#!/bin/sh\nlli -q $0.bc\n"; +  Out2 << "#!/bin/sh\nlli -q $0.bc $*\n";    Out2.close();    // Make the script executable...  | 

