[lld] r189883 - Recognize -rpath-link option and add arguments to ELFLinkingContext.

Joerg Sonnenberger joerg at bec.de
Tue Sep 3 16:28:51 PDT 2013


Author: joerg
Date: Tue Sep  3 18:28:51 2013
New Revision: 189883

URL: http://llvm.org/viewvc/llvm-project?rev=189883&view=rev
Log:
Recognize -rpath-link option and add arguments to ELFLinkingContext.

Modified:
    lld/trunk/include/lld/ReaderWriter/ELFLinkingContext.h
    lld/trunk/lib/Driver/GnuLdDriver.cpp
    lld/trunk/lib/Driver/LDOptions.td

Modified: lld/trunk/include/lld/ReaderWriter/ELFLinkingContext.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/ReaderWriter/ELFLinkingContext.h?rev=189883&r1=189882&r2=189883&view=diff
==============================================================================
--- lld/trunk/include/lld/ReaderWriter/ELFLinkingContext.h (original)
+++ lld/trunk/include/lld/ReaderWriter/ELFLinkingContext.h Tue Sep  3 18:28:51 2013
@@ -189,6 +189,14 @@ public:
     return _rpathList;
   }
 
+  void addRpathLink(StringRef path) {
+   _rpathLinkList.push_back(path);
+  }
+
+  range<const StringRef *> getRpathLinkList() const {
+    return _rpathLinkList;
+  }
+
 private:
   ELFLinkingContext() LLVM_DELETED_FUNCTION;
 
@@ -223,6 +231,7 @@ protected:
   StringRefVector _finiFunctions;
   StringRef _sysrootPath;
   StringRefVector _rpathList;
+  StringRefVector _rpathLinkList;
 };
 } // end namespace lld
 

Modified: lld/trunk/lib/Driver/GnuLdDriver.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Driver/GnuLdDriver.cpp?rev=189883&r1=189882&r2=189883&view=diff
==============================================================================
--- lld/trunk/lib/Driver/GnuLdDriver.cpp (original)
+++ lld/trunk/lib/Driver/GnuLdDriver.cpp Tue Sep  3 18:28:51 2013
@@ -317,6 +317,14 @@ bool GnuLdDriver::parse(int argc, const
       break;
     }
 
+    case OPT_rpath_link: {
+      SmallVector<StringRef, 2> rpaths;
+      StringRef(inputArg->getValue()).split(rpaths, ":");
+      for (auto path : rpaths)
+        ctx->addRpathLink(path);
+      break;
+    }
+
     case OPT_sysroot:
       ctx->setSysroot(inputArg->getValue());
       break;

Modified: lld/trunk/lib/Driver/LDOptions.td
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Driver/LDOptions.td?rev=189883&r1=189882&r2=189883&view=diff
==============================================================================
--- lld/trunk/lib/Driver/LDOptions.td (original)
+++ lld/trunk/lib/Driver/LDOptions.td Tue Sep  3 18:28:51 2013
@@ -44,6 +44,7 @@ def m : Separate<["-"], "m">;
 def z : Separate<["-"], "z">;
 def t : Flag<["-"], "t">;
 def rpath : Separate<["-"], "rpath">;
+def rpath_link : Separate<["-"], "rpath-link">;
 def soname : Separate<["-"], "soname">;
 
 def static : Flag<["-"], "static">;





More information about the llvm-commits mailing list