<div dir="ltr">On Thu, Jul 14, 2016 at 4:13 PM, Tim Northover via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: tnorthover<br>
Date: Thu Jul 14 18:13:03 2016<br>
New Revision: 275498<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=275498&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=275498&view=rev</a><br>
Log:<br>
llvm-objdump: extend __mh_execute_header handling to other special syms<br>
<br>
We don't need to print any of the special __mh_*_header symbols when<br>
disassembling. Since they point at the beginning of the segment (not where the<br>
actual code is) they're pretty misleading.<br>
<br>
Should also fix lld bots.<br>
<br>
Added:<br>
    llvm/trunk/test/tools/llvm-objdump/ARM/Inputs/mh_dylib_header.macho-arm   (with props)<br>
    llvm/trunk/test/tools/llvm-objdump/ARM/mh_dylib_header.test<br>
Modified:<br>
    llvm/trunk/tools/llvm-objdump/MachODump.cpp<br>
<br>
Added: llvm/trunk/test/tools/llvm-objdump/ARM/Inputs/mh_dylib_header.macho-arm<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-objdump/ARM/Inputs/mh_dylib_header.macho-arm?rev=275498&view=auto" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-objdump/ARM/Inputs/mh_dylib_header.macho-arm?rev=275498&view=auto</a><br>
==============================================================================<br>
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<br>
<br>
Propchange: llvm/trunk/test/tools/llvm-objdump/ARM/Inputs/mh_dylib_header.macho-arm<br>
------------------------------------------------------------------------------<br>
    svn:executable = *<br></blockquote><div><br></div><div>Is yaml-to-obj not sufficiently complete yet to support this file?</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Added: llvm/trunk/test/tools/llvm-objdump/ARM/mh_dylib_header.test<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-objdump/ARM/mh_dylib_header.test?rev=275498&view=auto" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-objdump/ARM/mh_dylib_header.test?rev=275498&view=auto</a><br>
==============================================================================<br>
--- llvm/trunk/test/tools/llvm-objdump/ARM/mh_dylib_header.test (added)<br>
+++ llvm/trunk/test/tools/llvm-objdump/ARM/mh_dylib_header.test Thu Jul 14 18:13:03 2016<br>
@@ -0,0 +1,7 @@<br>
+RUN: llvm-objdump -d -macho %p/Inputs/mh_dylib_header.macho-arm<br>
+<br>
+CHECK: _t1:<br>
+CHECK:     movw r0, #4133<br>
+<br>
+CHECK: _a1:<br>
+CHECK:     bx lr<br>
<br>
Modified: llvm/trunk/tools/llvm-objdump/MachODump.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-objdump/MachODump.cpp?rev=275498&r1=275497&r2=275498&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-objdump/MachODump.cpp?rev=275498&r1=275497&r2=275498&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/tools/llvm-objdump/MachODump.cpp (original)<br>
+++ llvm/trunk/tools/llvm-objdump/MachODump.cpp Thu Jul 14 18:13:03 2016<br>
@@ -6708,11 +6708,13 @@ static void DisassembleMachO(StringRef F<br>
         outs() << "-dis-symname: __mh_execute_header not in any section\n";<br>
         return;<br>
       }<br>
-      // When this code is trying to disassemble a symbol at a time and in the case<br>
-      // there is only the __mh_execute_header symbol left as in a stripped<br>
-      // executable, we need to deal with this by ignoring this symbol so the whole<br>
-      // section is disassembled and this symbol is then not displayed.<br>
-      if (SymName == "__mh_execute_header")<br>
+      // When this code is trying to disassemble a symbol at a time and in the<br>
+      // case there is only the __mh_execute_header symbol left as in a stripped<br>
+      // executable, we need to deal with this by ignoring this symbol so the<br>
+      // whole section is disassembled and this symbol is then not displayed.<br>
+      if (SymName == "__mh_execute_header" || SymName == "__mh_dylib_header" ||<br>
+          SymName == "__mh_bundle_header" || SymName == "__mh_object_header" ||<br>
+          SymName == "__mh_preload_header" || SymName == "__mh_dylinker_header")<br>
         continue;<br>
<br>
       // If we are only disassembling one symbol see if this is that symbol.<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">Saleem Abdulrasool<br>compnerd (at) compnerd (dot) org</div>
</div></div>