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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24930 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/tools/gccld/GenerateCode.cpp b/tools/gccld/GenerateCode.cpp
index 3b5d2b2..9dffe33 100644
--- a/tools/gccld/GenerateCode.cpp
+++ b/tools/gccld/GenerateCode.cpp
@@ -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;