[llvm] r275498 - llvm-objdump: extend __mh_execute_header handling to other special syms

Tim Northover via llvm-commits llvm-commits at lists.llvm.org
Thu Jul 14 16:13:04 PDT 2016


Author: tnorthover
Date: Thu Jul 14 18:13:03 2016
New Revision: 275498

URL: http://llvm.org/viewvc/llvm-project?rev=275498&view=rev
Log:
llvm-objdump: extend __mh_execute_header handling to other special syms

We don't need to print any of the special __mh_*_header symbols when
disassembling. Since they point at the beginning of the segment (not where the
actual code is) they're pretty misleading.

Should also fix lld bots.

Added:
    llvm/trunk/test/tools/llvm-objdump/ARM/Inputs/mh_dylib_header.macho-arm   (with props)
    llvm/trunk/test/tools/llvm-objdump/ARM/mh_dylib_header.test
Modified:
    llvm/trunk/tools/llvm-objdump/MachODump.cpp

Added: llvm/trunk/test/tools/llvm-objdump/ARM/Inputs/mh_dylib_header.macho-arm
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-objdump/ARM/Inputs/mh_dylib_header.macho-arm?rev=275498&view=auto
==============================================================================
Binary files llvm/trunk/test/tools/llvm-objdump/ARM/Inputs/mh_dylib_header.macho-arm (added) and llvm/trunk/test/tools/llvm-objdump/ARM/Inputs/mh_dylib_header.macho-arm Thu Jul 14 18:13:03 2016 differ

Propchange: llvm/trunk/test/tools/llvm-objdump/ARM/Inputs/mh_dylib_header.macho-arm
------------------------------------------------------------------------------
    svn:executable = *

Added: llvm/trunk/test/tools/llvm-objdump/ARM/mh_dylib_header.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-objdump/ARM/mh_dylib_header.test?rev=275498&view=auto
==============================================================================
--- llvm/trunk/test/tools/llvm-objdump/ARM/mh_dylib_header.test (added)
+++ llvm/trunk/test/tools/llvm-objdump/ARM/mh_dylib_header.test Thu Jul 14 18:13:03 2016
@@ -0,0 +1,7 @@
+RUN: llvm-objdump -d -macho %p/Inputs/mh_dylib_header.macho-arm
+
+CHECK: _t1:
+CHECK:     movw r0, #4133
+
+CHECK: _a1:
+CHECK:     bx lr

Modified: llvm/trunk/tools/llvm-objdump/MachODump.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-objdump/MachODump.cpp?rev=275498&r1=275497&r2=275498&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-objdump/MachODump.cpp (original)
+++ llvm/trunk/tools/llvm-objdump/MachODump.cpp Thu Jul 14 18:13:03 2016
@@ -6708,11 +6708,13 @@ static void DisassembleMachO(StringRef F
         outs() << "-dis-symname: __mh_execute_header not in any section\n";
         return;
       }
-      // When this code is trying to disassemble a symbol at a time and in the case
-      // there is only the __mh_execute_header symbol left as in a stripped
-      // executable, we need to deal with this by ignoring this symbol so the whole
-      // section is disassembled and this symbol is then not displayed.
-      if (SymName == "__mh_execute_header")
+      // When this code is trying to disassemble a symbol at a time and in the
+      // case there is only the __mh_execute_header symbol left as in a stripped
+      // executable, we need to deal with this by ignoring this symbol so the
+      // whole section is disassembled and this symbol is then not displayed.
+      if (SymName == "__mh_execute_header" || SymName == "__mh_dylib_header" ||
+          SymName == "__mh_bundle_header" || SymName == "__mh_object_header" ||
+          SymName == "__mh_preload_header" || SymName == "__mh_dylinker_header")
         continue;
 
       // If we are only disassembling one symbol see if this is that symbol.




More information about the llvm-commits mailing list