[PATCH] D33869: [llvm-readobj] Install llvm-readelf alias

Roland McGrath via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sat Jun 3 16:22:04 PDT 2017


mcgrathr updated this revision to Diff 101338.
mcgrathr retitled this revision from "[llvm-readobj] More command-line compatibility with GNU readelf" to "[llvm-readobj] Install llvm-readelf alias".
mcgrathr edited the summary of this revision.
mcgrathr added a reviewer: davide.
mcgrathr added a comment.

Split out:

-S https://reviews.llvm.org/D33872                                              
-W https://reviews.llvm.org/D33873


Repository:
  rL LLVM

https://reviews.llvm.org/D33869

Files:
  test/tools/llvm-readobj/gnu-sections.test
  tools/llvm-readobj/CMakeLists.txt
  tools/llvm-readobj/llvm-readobj.cpp


Index: tools/llvm-readobj/llvm-readobj.cpp
===================================================================
--- tools/llvm-readobj/llvm-readobj.cpp
+++ tools/llvm-readobj/llvm-readobj.cpp
@@ -34,6 +34,7 @@
 #include "llvm/Support/Debug.h"
 #include "llvm/Support/FileSystem.h"
 #include "llvm/Support/ManagedStatic.h"
+#include "llvm/Support/Path.h"
 #include "llvm/Support/PrettyStackTrace.h"
 #include "llvm/Support/ScopedPrinter.h"
 #include "llvm/Support/Signals.h"
@@ -537,13 +538,18 @@
 }
 
 int main(int argc, const char *argv[]) {
-  sys::PrintStackTraceOnErrorSignal(argv[0]);
+  StringRef ToolName = argv[0];
+  sys::PrintStackTraceOnErrorSignal(ToolName);
   PrettyStackTraceProgram X(argc, argv);
   llvm_shutdown_obj Y;
 
   // Register the target printer for --version.
   cl::AddExtraVersionPrinter(TargetRegistry::printRegisteredTargetsForVersion);
 
+  opts::WideOutput.setHiddenFlag(cl::Hidden);
+  if (sys::path::stem(ToolName).find("readelf") != StringRef::npos)
+    opts::Output = opts::GNU;
+
   cl::ParseCommandLineOptions(argc, argv, "LLVM Object Reader\n");
 
   // Default to stdin if no filename is specified.
Index: tools/llvm-readobj/CMakeLists.txt
===================================================================
--- tools/llvm-readobj/CMakeLists.txt
+++ tools/llvm-readobj/CMakeLists.txt
@@ -19,3 +19,5 @@
   WasmDumper.cpp
   Win64EHDumper.cpp
   )
+
+add_llvm_tool_symlink(llvm-readelf llvm-readobj)
Index: test/tools/llvm-readobj/gnu-sections.test
===================================================================
--- test/tools/llvm-readobj/gnu-sections.test
+++ test/tools/llvm-readobj/gnu-sections.test
@@ -8,6 +8,8 @@
 RUN: llvm-readobj -W --sections \
 RUN:   %p/Inputs/relocs.obj.elf-x86_64 --elf-output-style=GNU \
 RUN:   | FileCheck %s -check-prefix ELF64
+RUN: llvm-readelf -W -S %p/Inputs/relocs.obj.elf-x86_64 \
+RUN:   | FileCheck %s -check-prefix ELF64
 
 ELF32:    Section Headers:
 ELF32-NEXT:      [Nr] Name              Type            Address  Off    Size   ES Flg Lk Inf Al


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D33869.101338.patch
Type: text/x-patch
Size: 2037 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170603/74d7a67c/attachment.bin>


More information about the llvm-commits mailing list