[llvm-commits] CVS: llvm/tools/gccld/GenerateCode.cpp gccld.cpp gccld.h

Reid Spencer reid at x10sys.com
Wed Dec 21 17:51:07 PST 2005



Changes in directory llvm/tools/gccld:

GenerateCode.cpp updated: 1.55 -> 1.56
gccld.cpp updated: 1.106 -> 1.107
gccld.h updated: 1.17 -> 1.18
---
Log message:

Implement PR679: http://llvm.cs.uiuc.edu/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.


---
Diffs of the changes:  (+15 -7)

 GenerateCode.cpp |   13 ++++++++-----
 gccld.cpp        |    7 ++++++-
 gccld.h          |    2 +-
 3 files changed, 15 insertions(+), 7 deletions(-)


Index: llvm/tools/gccld/GenerateCode.cpp
diff -u llvm/tools/gccld/GenerateCode.cpp:1.55 llvm/tools/gccld/GenerateCode.cpp:1.56
--- llvm/tools/gccld/GenerateCode.cpp:1.55	Thu Nov  3 01:17:51 2005
+++ llvm/tools/gccld/GenerateCode.cpp	Wed Dec 21 19:50:56 2005
@@ -352,7 +352,7 @@
                          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 @@
 
   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;


Index: llvm/tools/gccld/gccld.cpp
diff -u llvm/tools/gccld/gccld.cpp:1.106 llvm/tools/gccld/gccld.cpp:1.107
--- llvm/tools/gccld/gccld.cpp:1.106	Wed Dec 14 13:08:51 2005
+++ llvm/tools/gccld/gccld.cpp	Wed Dec 21 19:50:56 2005
@@ -88,7 +88,7 @@
   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 @@
   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"),


Index: llvm/tools/gccld/gccld.h
diff -u llvm/tools/gccld/gccld.h:1.17 llvm/tools/gccld/gccld.h:1.18
--- llvm/tools/gccld/gccld.h:1.17	Tue Aug  2 17:07:38 2005
+++ llvm/tools/gccld/gccld.h	Wed Dec 21 19:50:56 2005
@@ -46,7 +46,7 @@
                 char ** const envp,
                 bool Shared,
                 bool ExportAllAsDynamic,
-                const std::string &RPath,
+                const std::vector<std::string> &RPath,
                 const std::string &SOName,
                 bool Verbose=false);
 






More information about the llvm-commits mailing list