[lld] r285163 - Truncate a SVN path part from --version output.

Rui Ueyama via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 25 20:52:06 PDT 2016


Author: ruiu
Date: Tue Oct 25 22:52:06 2016
New Revision: 285163

URL: http://llvm.org/viewvc/llvm-project?rev=285163&view=rev
Log:
Truncate a SVN path part from --version output.

This is in sync with what clang does.

Modified:
    lld/trunk/ELF/Driver.cpp
    lld/trunk/include/lld/Config/Version.h
    lld/trunk/include/lld/Config/Version.inc.in
    lld/trunk/lib/Config/Version.cpp

Modified: lld/trunk/ELF/Driver.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Driver.cpp?rev=285163&r1=285162&r2=285163&view=diff
==============================================================================
--- lld/trunk/ELF/Driver.cpp (original)
+++ lld/trunk/ELF/Driver.cpp Tue Oct 25 22:52:06 2016
@@ -298,7 +298,7 @@ void LinkerDriver::main(ArrayRef<const c
     if (F) {
       Cpio.reset(*F);
       Cpio->append("response.txt", createResponseFile(Args));
-      Cpio->append("version.txt", (getLLDVersion() + "\n").str());
+      Cpio->append("version.txt", getLLDVersion() + "\n");
     } else
       error(F.getError(),
             Twine("--reproduce: failed to open ") + Path + ".cpio");

Modified: lld/trunk/include/lld/Config/Version.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/Config/Version.h?rev=285163&r1=285162&r2=285163&view=diff
==============================================================================
--- lld/trunk/include/lld/Config/Version.h (original)
+++ lld/trunk/include/lld/Config/Version.h Tue Oct 25 22:52:06 2016
@@ -19,7 +19,7 @@
 
 namespace lld {
 /// \brief Retrieves a string representing the complete lld version.
-llvm::StringRef getLLDVersion();
+std::string getLLDVersion();
 }
 
 #endif // LLD_VERSION_H

Modified: lld/trunk/include/lld/Config/Version.inc.in
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/Config/Version.inc.in?rev=285163&r1=285162&r2=285163&view=diff
==============================================================================
--- lld/trunk/include/lld/Config/Version.inc.in (original)
+++ lld/trunk/include/lld/Config/Version.inc.in Tue Oct 25 22:52:06 2016
@@ -1,4 +1,5 @@
 #define LLD_VERSION @LLD_VERSION@
+#define LLD_VERSION_STRING "@LLD_VERSION@"
 #define LLD_VERSION_MAJOR @LLD_VERSION_MAJOR@
 #define LLD_VERSION_MINOR @LLD_VERSION_MINOR@
 #define LLD_REVISION_STRING "@LLD_REVISION@"

Modified: lld/trunk/lib/Config/Version.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Config/Version.cpp?rev=285163&r1=285162&r2=285163&view=diff
==============================================================================
--- lld/trunk/lib/Config/Version.cpp (original)
+++ lld/trunk/lib/Config/Version.cpp Tue Oct 25 22:52:06 2016
@@ -15,24 +15,29 @@
 
 using namespace llvm;
 
-#define JOIN2(X) #X
-#define JOIN(X, Y) JOIN2(X.Y)
+// Returns an SVN repository path, which is usually "trunk".
+static std::string getRepositoryPath() {
+  StringRef S = LLD_REPOSITORY_STRING;
+  size_t Pos = S.find("lld/");
+  if (Pos != StringRef::npos)
+    return S.substr(Pos + 4);
+  return S;
+}
 
-// A string that describes the lld version number, e.g., "1.0".
-#define VERSION JOIN(LLD_VERSION_MAJOR, LLD_VERSION_MINOR)
+// Returns an SVN repository name, e.g., " (trunk 284614)"
+// or an empty string if no repository info is available.
+static std::string getRepository() {
+  std::string Repo = getRepositoryPath();
+  std::string Rev = LLD_REVISION_STRING;
 
-// A string that describes SVN repository, e.g.,
-// " (https://llvm.org/svn/llvm-project/lld/trunk 284614)".
-#if defined(LLD_REPOSITORY_STRING) && defined(LLD_REVISION_STRING)
-#define REPO " (" LLD_REPOSITORY_STRING " " LLD_REVISION_STRING ")"
-#elif defined(LLD_REPOSITORY_STRING)
-#define REPO " (" LLD_REPOSITORY_STRING ")"
-#elif defined(LLD_REVISION_STRING)
-#define REPO " (" LLD_REVISION_STRING ")"
-#else
-#define REPO ""
-#endif
+  if (Repo.empty() && Rev.empty())
+    return "";
+  if (!Repo.empty() && !Rev.empty())
+    return " (" + Repo + " " + Rev + ")";
+  return " (" + Repo + Rev + ")";
+}
 
-// Returns a version string, e.g.,
-// "LLD 4.0 (https://llvm.org/svn/llvm-project/lld/trunk 284614)".
-StringRef lld::getLLDVersion() { return "LLD " VERSION REPO; }
+// Returns a version string, e.g., "LLD 4.0 (lld/trunk 284614)".
+std::string lld::getLLDVersion() {
+  return "LLD " + std::string(LLD_VERSION_STRING) + getRepository();
+}




More information about the llvm-commits mailing list