<div dir="ltr">In particular, every build bot has been broken for an hour at this point. Please revert or fix....</div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Dec 4, 2014 at 12:55 AM, Charlie Turner <span dir="ltr"><<a href="mailto:Charlie.Turner@arm.com" target="_blank">Charlie.Turner@arm.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
I think you forgot to add the test/Object/Inputs/macho-rpath-x86_64 input file in your commit. I'm seeing test failures,<br>
<br>
/work/build-llvm-gitsvn/./bin/llvm-objdump: '/work/llvm-gitsvn/test/Object/Inputs/macho-rpath-x86_64': No such file<br>
FileCheck error: '-' is empty.<br>
<br>
Kind regards,<br>
Charlie.<br>
<div><div class="h5"><br>
-----Original Message-----<br>
From: <a href="mailto:llvm-commits-bounces@cs.uiuc.edu">llvm-commits-bounces@cs.uiuc.edu</a> [mailto:<a href="mailto:llvm-commits-bounces@cs.uiuc.edu">llvm-commits-bounces@cs.uiuc.edu</a>] On Behalf Of Jean-Daniel Dupas<br>
Sent: 04 December 2014 07:37<br>
To: <a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
Subject: [llvm] r223343 - Add mach-o LC_RPATH support to llvm-objdump<br>
<br>
Author: jddupas<br>
Date: Thu Dec  4 01:37:02 2014<br>
New Revision: 223343<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=223343&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=223343&view=rev</a><br>
Log:<br>
Add mach-o LC_RPATH support to llvm-objdump<br>
<br>
Summary: Add rpath load command support in Mach-O object and update llvm-objdump to use it.<br>
<br>
Subscribers: llvm-commits<br>
<br>
Differential Revision: <a href="http://reviews.llvm.org/D6512" target="_blank">http://reviews.llvm.org/D6512</a><br>
<br>
Modified:<br>
    llvm/trunk/include/llvm/Object/MachO.h<br>
    llvm/trunk/include/llvm/Support/MachO.h<br>
    llvm/trunk/lib/Object/MachOObjectFile.cpp<br>
    llvm/trunk/test/Object/objdump-private-headers.test<br>
    llvm/trunk/tools/llvm-objdump/MachODump.cpp<br>
<br>
Modified: llvm/trunk/include/llvm/Object/MachO.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Object/MachO.h?rev=223343&r1=223342&r2=223343&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Object/MachO.h?rev=223343&r1=223342&r2=223343&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/Object/MachO.h (original)<br>
+++ llvm/trunk/include/llvm/Object/MachO.h Thu Dec  4 01:37:02 2014<br>
@@ -360,6 +360,8 @@ public:<br>
   getDylinkerCommand(const LoadCommandInfo &L) const;<br>
   MachO::uuid_command<br>
   getUuidCommand(const LoadCommandInfo &L) const;<br>
+  MachO::rpath_command<br>
+  getRpathCommand(const LoadCommandInfo &L) const;<br>
   MachO::source_version_command<br>
   getSourceVersionCommand(const LoadCommandInfo &L) const;<br>
   MachO::entry_point_command<br>
<br>
Modified: llvm/trunk/include/llvm/Support/MachO.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/MachO.h?rev=223343&r1=223342&r2=223343&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/MachO.h?rev=223343&r1=223342&r2=223343&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/Support/MachO.h (original)<br>
+++ llvm/trunk/include/llvm/Support/MachO.h Thu Dec  4 01:37:02 2014<br>
@@ -1109,6 +1109,12 @@ namespace llvm {<br>
       sys::swapByteOrder(u.cmdsize);<br>
     }<br>
<br>
+    inline void swapStruct(rpath_command &r) {<br>
+      sys::swapByteOrder(r.cmd);<br>
+      sys::swapByteOrder(r.cmdsize);<br>
+      sys::swapByteOrder(r.path);<br>
+    }<br>
+<br>
     inline void swapStruct(source_version_command &s) {<br>
       sys::swapByteOrder(s.cmd);<br>
       sys::swapByteOrder(s.cmdsize);<br>
<br>
Modified: llvm/trunk/lib/Object/MachOObjectFile.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Object/MachOObjectFile.cpp?rev=223343&r1=223342&r2=223343&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Object/MachOObjectFile.cpp?rev=223343&r1=223342&r2=223343&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Object/MachOObjectFile.cpp (original)<br>
+++ llvm/trunk/lib/Object/MachOObjectFile.cpp Thu Dec  4 01:37:02 2014<br>
@@ -2299,6 +2299,11 @@ MachOObjectFile::getUuidCommand(const Lo<br>
   return getStruct<MachO::uuid_command>(this, L.Ptr);  }<br>
<br>
+MachO::rpath_command<br>
+MachOObjectFile::getRpathCommand(const LoadCommandInfo &L) const {<br>
+  return getStruct<MachO::rpath_command>(this, L.Ptr); }<br>
+<br>
</div></div><span class=""> MachO::source_version_command<br>
 MachOObjectFile::getSourceVersionCommand(const LoadCommandInfo &L) const {<br>
   return getStruct<MachO::source_version_command>(this, L.Ptr);<br>
<br>
Modified: llvm/trunk/test/Object/objdump-private-headers.test<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Object/objdump-private-headers.test?rev=223343&r1=223342&r2=223343&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Object/objdump-private-headers.test?rev=223343&r1=223342&r2=223343&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/test/Object/objdump-private-headers.test (original)<br>
+++ llvm/trunk/test/Object/objdump-private-headers.test Thu Dec  4<br>
</span>+++ 01:37:02 2014<br>
<div><div class="h5">@@ -2,6 +2,8 @@ RUN: llvm-objdump -p %p/Inputs/program-h<br>
 RUN:              | FileCheck %s -check-prefix ELF-i386<br>
 RUN: llvm-objdump -p %p/Inputs/program-headers.elf-x86-64 \<br>
 RUN:              | FileCheck %s -check-prefix ELF-x86-64<br>
+RUN: llvm-objdump -p %p/Inputs/macho-rpath-x86_64 \<br>
+RUN:              | FileCheck %s -check-prefix MACHO-x86_64<br>
<br>
 ELF-i386: Program Header:<br>
 ELF-i386:     LOAD off    0x00000000 vaddr 0x08048000 paddr 0x08048000 align 2**12<br>
@@ -16,3 +18,8 @@ ELF-x86-64: EH_FRAME off    0x0000000000<br>
 ELF-x86-64:          filesz 0x0000000000000014 memsz 0x0000000000000014 flags r--<br>
 ELF-x86-64:    STACK off    0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**3<br>
 ELF-x86-64:          filesz 0x0000000000000000 memsz 0x0000000000000000 flags rw-<br>
+<br>
+MACHO-x86_64: Load command 12<br>
+MACHO-x86_64:          cmd LC_RPATH<br>
+MACHO-x86_64:      cmdsize 32<br>
+MACHO-x86_64:         path @executable_path/. (offset 12)<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=223343&r1=223342&r2=223343&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-objdump/MachODump.cpp?rev=223343&r1=223342&r2=223343&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/tools/llvm-objdump/MachODump.cpp (original)<br>
+++ llvm/trunk/tools/llvm-objdump/MachODump.cpp Thu Dec  4 01:37:02 2014<br>
@@ -3299,6 +3299,22 @@ static void PrintUuidLoadCommand(MachO::<br>
   outs() << "\n";<br>
 }<br>
<br>
+static void PrintRpathLoadCommand(MachO::rpath_command rpath,<br>
+                                  const char *Ptr) {<br>
+  outs() << "          cmd LC_RPATH\n";<br>
+  outs() << "      cmdsize " << rpath.cmdsize;<br>
+  if (rpath.cmdsize < sizeof(struct MachO::rpath_command))<br>
+    outs() << " Incorrect size\n";<br>
+  else<br>
+    outs() << "\n";<br>
+  if (rpath.path >= rpath.cmdsize)<br>
+    outs() << "         path ?(bad offset " << rpath.path << ")\n";<br>
+  else {<br>
+    const char *P = (const char *)(Ptr) + rpath.path;<br>
+    outs() << "         path " << P << " (offset " << rpath.path << ")\n";<br>
+  }<br>
+}<br>
+<br>
 static void PrintVersionMinLoadCommand(MachO::version_min_command vd) {<br>
   if (vd.cmd == MachO::LC_VERSION_MIN_MACOSX)<br>
     outs() << "      cmd LC_VERSION_MIN_MACOSX\n";<br>
@@ -3494,6 +3510,9 @@ static void PrintLoadCommands(const Mach<br>
     } else if (Command.C.cmd == MachO::LC_UUID) {<br>
       MachO::uuid_command Uuid = Obj->getUuidCommand(Command);<br>
       PrintUuidLoadCommand(Uuid);<br>
+    } else if (Command.C.cmd == MachO::LC_RPATH) {<br>
+      MachO::rpath_command Rpath = Obj->getRpathCommand(Command);<br>
+      PrintRpathLoadCommand(Rpath, Command.Ptr);<br>
     } else if (Command.C.cmd == MachO::LC_VERSION_MIN_MACOSX) {<br>
       MachO::version_min_command Vd = Obj->getVersionMinLoadCommand(Command);<br>
       PrintVersionMinLoadCommand(Vd);<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
<br>
<br>
</div></div>-- IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium.  Thank you.<br>
<br>
ARM Limited, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, Registered in England & Wales, Company No:  2557590<br>
ARM Holdings plc, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, Registered in England & Wales, Company No:  2548782<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</div></div></blockquote></div><br></div>