diff options
| author | Reid Spencer <rspencer@reidspencer.com> | 2005-12-22 01:50:56 +0000 |
|---|---|---|
| committer | Reid Spencer <rspencer@reidspencer.com> | 2005-12-22 01:50:56 +0000 |
| commit | f984b681811a7b887ee69dbfc67632eca7216612 (patch) | |
| tree | c7eadb77832d4a01c83fa756b0de22adb5417a29 /llvm/tools | |
| parent | 23d7a0b641e91dcddef199c9fab6689efe7d8abf (diff) | |
| download | bcm5719-llvm-f984b681811a7b887ee69dbfc67632eca7216612.tar.gz bcm5719-llvm-f984b681811a7b887ee69dbfc67632eca7216612.zip | |
Implement PR679:
* Changed the -rpath option from cl::opt to cl::list
* Changed the interface to GenerateNative to take a std::vector<std::string>
instead of just a std::string
* Changed GenerateNative to generate multiple -Wl,-rpath, options to be
passed to gcc.
llvm-svn: 24930
Diffstat (limited to 'llvm/tools')
| -rw-r--r-- | llvm/tools/gccld/GenerateCode.cpp | 13 | ||||
| -rw-r--r-- | llvm/tools/gccld/gccld.cpp | 7 | ||||
| -rw-r--r-- | llvm/tools/gccld/gccld.h | 2 |
3 files changed, 15 insertions, 7 deletions
diff --git a/llvm/tools/gccld/GenerateCode.cpp b/llvm/tools/gccld/GenerateCode.cpp index 3b5d2b2b050..9dffe332e48 100644 --- a/llvm/tools/gccld/GenerateCode.cpp +++ b/llvm/tools/gccld/GenerateCode.cpp @@ -352,7 +352,7 @@ int llvm::GenerateNative(const std::string &OutputFilename, const sys::Path &gcc, char ** const envp, bool Shared, bool ExportAllAsDynamic, - const std::string &RPath, + const std::vector<std::string> &RPaths, const std::string &SOName, bool Verbose) { // Remove these environment variables from the environment of the @@ -394,10 +394,13 @@ int llvm::GenerateNative(const std::string &OutputFilename, if (Shared) args.push_back("-shared"); if (ExportAllAsDynamic) args.push_back("-export-dynamic"); - if (!RPath.empty()) { - std::string rp = "-Wl,-rpath," + RPath; - StringsToDelete.push_back(strdup(rp.c_str())); - args.push_back(StringsToDelete.back()); + if (!RPaths.empty()) { + for (std::vector<std::string>::const_iterator I = RPaths.begin(), + E = RPaths.end(); I != E; I++) { + std::string rp = "-Wl,-rpath," + *I; + StringsToDelete.push_back(strdup(rp.c_str())); + args.push_back(StringsToDelete.back()); + } } if (!SOName.empty()) { std::string so = "-Wl,-soname," + SOName; diff --git a/llvm/tools/gccld/gccld.cpp b/llvm/tools/gccld/gccld.cpp index 612424eab29..ae451000884 100644 --- a/llvm/tools/gccld/gccld.cpp +++ b/llvm/tools/gccld/gccld.cpp @@ -88,7 +88,7 @@ namespace { SaveTemps("save-temps", cl::desc("Do not delete temporary files")); - cl::opt<std::string> + cl::list<std::string> RPath("rpath", cl::desc("Set runtime shared library search path (requires -native or" " -native-cbe)"), @@ -107,6 +107,11 @@ namespace { CO5("eh-frame-hdr", cl::Hidden, cl::desc("Compatibility option: ignored")); cl::opt<std::string> CO6("h", cl::Hidden, cl::desc("Compatibility option: ignored")); + cl::opt<bool> + CO7("start-group", cl::Hidden, cl::desc("Compatibility option: ignored")); + cl::opt<bool> + CO8("end-group", cl::Hidden, cl::desc("Compatibility option: ignored")); + cl::alias A0("s", cl::desc("Alias for --strip-all"), cl::aliasopt(Strip)); cl::alias A1("S", cl::desc("Alias for --strip-debug"), diff --git a/llvm/tools/gccld/gccld.h b/llvm/tools/gccld/gccld.h index b1649f07476..8dbae884c22 100644 --- a/llvm/tools/gccld/gccld.h +++ b/llvm/tools/gccld/gccld.h @@ -46,7 +46,7 @@ GenerateNative (const std::string &OutputFilename, char ** const envp, bool Shared, bool ExportAllAsDynamic, - const std::string &RPath, + const std::vector<std::string> &RPath, const std::string &SOName, bool Verbose=false); |

