<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Hi Rafael,<div class=""><br class=""><div class="">Yep I’ve been trying to fix it with <span style="font-family: 'Helvetica Neue';" class="">r226232 then </span><span style="font-family: 'Helvetica Neue';" class="">r226239 and I have removed the test in </span><span style="font-family: 'Helvetica Neue';" class="">r226241</span> while I try to figure what is is going on.<div class=""><br class=""></div><div class="">Sorry for the breakage,</div><div class="">Kev</div><div class=""><br class=""></div><div class="">P.S. Maybe I should have Cc’ed <a href="mailto:llvm-commits@cs.uiuc.edu" class="">llvm-commits@cs.uiuc.edu</a> on this email I first sent when I saw the failure:</div><div class=""><br class=""><blockquote type="cite" class=""><div class="">Begin forwarded message:</div><br class="Apple-interchange-newline"><div style="margin: 0px;" class=""><span style="font-family: -webkit-system-font, 'Helvetica Neue', Helvetica, sans-serif;" class=""><b class="">Subject: </b></span><span style="font-family: -webkit-system-font, 'Helvetica Neue', Helvetica, sans-serif;" class=""><b class="">Re: buildbot failure in LLVM on clang-cmake-armv7-a15-full</b><br class=""></span></div><div style="margin: 0px;" class=""><span style="font-family: -webkit-system-font, 'Helvetica Neue', Helvetica, sans-serif;" class=""><b class="">From: </b></span><span style="font-family: -webkit-system-font, 'Helvetica Neue', Helvetica, sans-serif;" class="">Kevin Enderby <<a href="mailto:enderby@apple.com" class="">enderby@apple.com</a>><br class=""></span></div><div style="margin: 0px;" class=""><span style="font-family: -webkit-system-font, 'Helvetica Neue', Helvetica, sans-serif;" class=""><b class="">Date: </b></span><span style="font-family: -webkit-system-font, 'Helvetica Neue', Helvetica, sans-serif;" class="">January 15, 2015 at 4:15:02 PM PST<br class=""></span></div><div style="margin: 0px;" class=""><span style="font-family: -webkit-system-font, 'Helvetica Neue', Helvetica, sans-serif;" class=""><b class="">Cc: </b></span><span style="font-family: -webkit-system-font, 'Helvetica Neue', Helvetica, sans-serif;" class="">Kevin Enderby <<a href="mailto:enderby@apple.com" class="">enderby@apple.com</a>><br class=""></span></div><div style="margin: 0px;" class=""><span style="font-family: -webkit-system-font, 'Helvetica Neue', Helvetica, sans-serif;" class=""><b class="">To: </b></span><span style="font-family: -webkit-system-font, 'Helvetica Neue', Helvetica, sans-serif;" class=""><a href="mailto:llvm.buildmaster@lab.llvm.org" class="">llvm.buildmaster@lab.llvm.org</a><br class=""></span></div><br class=""><div class="">I’m looking into this now.<br class=""><br class="">Kev<br class=""><br class=""><blockquote type="cite" class="">On Jan 15, 2015, at 4:08 PM, <a href="mailto:llvm.buildmaster@lab.llvm.org" class="">llvm.buildmaster@lab.llvm.org</a> wrote:<br class=""><br class="">The Buildbot has detected a new failure on builder clang-cmake-armv7-a15-full while building llvm.<br class="">Full details are available at:<br class=""><a href="http://lab.llvm.org:8011/builders/clang-cmake-armv7-a15-full/builds/3165" class="">http://lab.llvm.org:8011/builders/clang-cmake-armv7-a15-full/builds/3165</a><br class=""><br class="">Buildbot URL: http://lab.llvm.org:8011/<br class=""><br class="">Buildslave for this Build: linaro-a15-03<br class=""><br class="">Build Reason: scheduler<br class="">Build Source Stamp: [branch trunk] 226228<br class="">Blamelist: arsenm,colinl,enderby,rafael<br class=""><br class="">BUILD FAILED: failed ninja check 1<br class=""><br class="">sincerely,<br class="">-The Buildbot<br class=""><br class=""><br class=""><br class=""></blockquote><br class=""></div></blockquote></div><div class=""><div class=""><br class=""></div><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Jan 15, 2015, at 6:15 PM, Rafael Espíndola <<a href="mailto:rafael.espindola@gmail.com" class="">rafael.espindola@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class="">This is failing in a bot:<br class=""><br class=""><a href="http://lab.llvm.org:8011/builders/clang-cmake-armv7-a15-full/builds/3165/steps/ninja%20check%201/logs/LLVM%3A%3Amacho-archive-headers.test" class="">http://lab.llvm.org:8011/builders/clang-cmake-armv7-a15-full/builds/3165/steps/ninja%20check%201/logs/LLVM%3A%3Amacho-archive-headers.test</a><br class=""><br class="">On 15 January 2015 at 18:19, Kevin Enderby <enderby@apple.com> wrote:<br class=""><blockquote type="cite" class="">Author: enderby<br class="">Date: Thu Jan 15 17:19:11 2015<br class="">New Revision: 226228<br class=""><br class="">URL: http://llvm.org/viewvc/llvm-project?rev=226228&view=rev<br class="">Log:<br class="">Add the option, -archive-headers, used with -macho to print the Mach-O archive headers to llvm-objdump.<br class=""><br class="">Added:<br class="">    llvm/trunk/test/tools/llvm-objdump/X86/macho-archive-headers.test<br class="">Modified:<br class="">    llvm/trunk/include/llvm/Object/Archive.h<br class="">    llvm/trunk/lib/Object/Archive.cpp<br class="">    llvm/trunk/tools/llvm-objdump/MachODump.cpp<br class="">    llvm/trunk/tools/llvm-objdump/llvm-objdump.cpp<br class="">    llvm/trunk/tools/llvm-objdump/llvm-objdump.h<br class=""><br class="">Modified: llvm/trunk/include/llvm/Object/Archive.h<br class="">URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Object/Archive.h?rev=226228&r1=226227&r2=226228&view=diff<br class="">==============================================================================<br class="">--- llvm/trunk/include/llvm/Object/Archive.h (original)<br class="">+++ llvm/trunk/include/llvm/Object/Archive.h Thu Jan 15 17:19:11 2015<br class="">@@ -41,6 +41,9 @@ struct ArchiveMemberHeader {<br class=""><br class="">   sys::fs::perms getAccessMode() const;<br class="">   sys::TimeValue getLastModified() const;<br class="">+  llvm::StringRef getRawLastModified() const {<br class="">+    return StringRef(LastModified, sizeof(LastModified)).rtrim(" ");<br class="">+  }<br class="">   unsigned getUID() const;<br class="">   unsigned getGID() const;<br class=""> };<br class="">@@ -78,6 +81,9 @@ public:<br class="">     sys::TimeValue getLastModified() const {<br class="">       return getHeader()->getLastModified();<br class="">     }<br class="">+    StringRef getRawLastModified() const {<br class="">+      return getHeader()->getRawLastModified();<br class="">+    }<br class="">     unsigned getUID() const { return getHeader()->getUID(); }<br class="">     unsigned getGID() const { return getHeader()->getGID(); }<br class="">     sys::fs::perms getAccessMode() const {<br class="">@@ -85,10 +91,13 @@ public:<br class="">     }<br class="">     /// \return the size of the archive member without the header or padding.<br class="">     uint64_t getSize() const;<br class="">+    /// \return the size of the archive member with the header and padding.<br class="">+    uint64_t getRawSize() const;<br class=""><br class="">     StringRef getBuffer() const {<br class="">       return StringRef(Data.data() + StartOfFile, getSize());<br class="">     }<br class="">+    uint64_t getChildOffset() const;<br class=""><br class="">     ErrorOr<MemoryBufferRef> getMemoryBufferRef() const;<br class=""><br class="">@@ -194,6 +203,7 @@ public:<br class="">   child_iterator findSym(StringRef name) const;<br class=""><br class="">   bool hasSymbolTable() const;<br class="">+  child_iterator getSymbolTableChild() const { return SymbolTable; }<br class=""><br class=""> private:<br class="">   child_iterator SymbolTable;<br class=""><br class="">Modified: llvm/trunk/lib/Object/Archive.cpp<br class="">URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Object/Archive.cpp?rev=226228&r1=226227&r2=226228&view=diff<br class="">==============================================================================<br class="">--- llvm/trunk/lib/Object/Archive.cpp (original)<br class="">+++ llvm/trunk/lib/Object/Archive.cpp Thu Jan 15 17:19:11 2015<br class="">@@ -110,6 +110,12 @@ uint64_t Archive::Child::getSize() const<br class="">   return Data.size() - StartOfFile;<br class=""> }<br class=""><br class="">+uint64_t Archive::Child::getRawSize() const {<br class="">+  if (Parent->IsThin)<br class="">+    return getHeader()->getSize();<br class="">+  return Data.size();<br class="">+}<br class="">+<br class=""> Archive::Child Archive::Child::getNext() const {<br class="">   size_t SpaceToSkip = Data.size();<br class="">   // If it's odd, add 1 to make it even.<br class="">@@ -125,6 +131,13 @@ Archive::Child Archive::Child::getNext()<br class="">   return Child(Parent, NextLoc);<br class=""> }<br class=""><br class="">+uint64_t Archive::Child::getChildOffset() const {<br class="">+  const char *a = Parent->Data.getBuffer().data();<br class="">+  const char *c = Data.data();<br class="">+  uint64_t offset = c - a;<br class="">+  return offset;<br class="">+}<br class="">+<br class=""> ErrorOr<StringRef> Archive::Child::getName() const {<br class="">   StringRef name = getRawName();<br class="">   // Check if it's a special name.<br class=""><br class="">Added: llvm/trunk/test/tools/llvm-objdump/X86/macho-archive-headers.test<br class="">URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-objdump/X86/macho-archive-headers.test?rev=226228&view=auto<br class="">==============================================================================<br class="">--- llvm/trunk/test/tools/llvm-objdump/X86/macho-archive-headers.test (added)<br class="">+++ llvm/trunk/test/tools/llvm-objdump/X86/macho-archive-headers.test Thu Jan 15 17:19:11 2015<br class="">@@ -0,0 +1,10 @@<br class="">+RUN: llvm-objdump %p/Inputs/macho-universal-archive.x86_64.i386 -macho -archive-headers -arch all \<br class="">+RUN: | FileCheck %s<br class="">+<br class="">+# Note the date as printed by ctime(3) is time zone dependent and not checked.<br class="">+CHECK: Archive : {{.*}}/macho-universal-archive.x86_64.i386 (architecture x86_64)<br class="">+CHECK: -rw-r--r--124/11     44 {{.*}} __.SYMDEF SORTED<br class="">+CHECK: -rw-r--r--124/0     860 {{.*}} hello.o<br class="">+CHECK: Archive : {{.*}}/macho-universal-archive.x86_64.i386 (architecture i386)<br class="">+CHECK: -rw-r--r--124/11     60 {{.*}} __.SYMDEF SORTED<br class="">+CHECK: -rw-r--r--124/0     388 {{.*}} foo.o<br class=""><br class="">Modified: llvm/trunk/tools/llvm-objdump/MachODump.cpp<br class="">URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-objdump/MachODump.cpp?rev=226228&r1=226227&r2=226228&view=diff<br class="">==============================================================================<br class="">--- llvm/trunk/tools/llvm-objdump/MachODump.cpp (original)<br class="">+++ llvm/trunk/tools/llvm-objdump/MachODump.cpp Thu Jan 15 17:19:11 2015<br class="">@@ -66,9 +66,14 @@ static cl::opt<bool><br class="">     PrintImmHex("print-imm-hex",<br class="">                 cl::desc("Use hex format for immediate values"));<br class=""><br class="">+cl::opt<bool> llvm::UniversalHeaders("universal-headers",<br class="">+                                     cl::desc("Print Mach-O universal headers "<br class="">+                                              "(requires -macho)"));<br class="">+<br class=""> cl::opt<bool><br class="">-    llvm::UniversalHeaders("universal-headers",<br class="">-                           cl::desc("Print Mach-O universal headers"));<br class="">+    llvm::ArchiveHeaders("archive-headers",<br class="">+                         cl::desc("Print archive headers for Mach-O archives "<br class="">+                                  "(requires -macho)"));<br class=""><br class=""> static cl::list<std::string><br class="">     ArchFlags("arch", cl::desc("architecture(s) from a Mach-O file to dump"),<br class="">@@ -514,6 +519,106 @@ static void printMachOUniversalHeaders(c<br class="">   }<br class=""> }<br class=""><br class="">+static void printArchiveChild(Archive::Child &C, bool verbose,<br class="">+                              bool print_offset) {<br class="">+  if (print_offset)<br class="">+    outs() << C.getChildOffset() << "\t";<br class="">+  sys::fs::perms Mode = C.getAccessMode();<br class="">+  if (verbose) {<br class="">+    // FIXME: this first dash, "-", is for (Mode & S_IFMT) == S_IFREG.<br class="">+    // But there is nothing in sys::fs::perms for S_IFMT or S_IFREG.<br class="">+    outs() << "-";<br class="">+    if (Mode & sys::fs::owner_read)<br class="">+      outs() << "r";<br class="">+    else<br class="">+      outs() << "-";<br class="">+    if (Mode & sys::fs::owner_write)<br class="">+      outs() << "w";<br class="">+    else<br class="">+      outs() << "-";<br class="">+    if (Mode & sys::fs::owner_exe)<br class="">+      outs() << "x";<br class="">+    else<br class="">+      outs() << "-";<br class="">+    if (Mode & sys::fs::group_read)<br class="">+      outs() << "r";<br class="">+    else<br class="">+      outs() << "-";<br class="">+    if (Mode & sys::fs::group_write)<br class="">+      outs() << "w";<br class="">+    else<br class="">+      outs() << "-";<br class="">+    if (Mode & sys::fs::group_exe)<br class="">+      outs() << "x";<br class="">+    else<br class="">+      outs() << "-";<br class="">+    if (Mode & sys::fs::others_read)<br class="">+      outs() << "r";<br class="">+    else<br class="">+      outs() << "-";<br class="">+    if (Mode & sys::fs::others_write)<br class="">+      outs() << "w";<br class="">+    else<br class="">+      outs() << "-";<br class="">+    if (Mode & sys::fs::others_exe)<br class="">+      outs() << "x";<br class="">+    else<br class="">+      outs() << "-";<br class="">+  } else {<br class="">+    outs() << format("0%o ", Mode);<br class="">+  }<br class="">+<br class="">+  unsigned UID = C.getUID();<br class="">+  outs() << format("%3d/", UID);<br class="">+  unsigned GID = C.getGID();<br class="">+  outs() << format("%-3d ", GID);<br class="">+  uint64_t Size = C.getRawSize() - sizeof(object::ArchiveMemberHeader);<br class="">+  outs() << format("%5d ", Size);<br class="">+<br class="">+  StringRef RawLastModified = C.getRawLastModified();<br class="">+  if (verbose) {<br class="">+    unsigned Seconds;<br class="">+    if (RawLastModified.getAsInteger(10, Seconds))<br class="">+      outs() << "(date: \"%s\" contains non-decimal chars) " << RawLastModified;<br class="">+    else {<br class="">+      // Since cime(3) returns a 26 character string of the form:<br class="">+      // "Sun Sep 16 01:03:52 1973\n\0"<br class="">+      // just print 24 characters.<br class="">+      time_t t = Seconds;<br class="">+      outs() << format("%.24s ", ctime(&t));<br class="">+    }<br class="">+  } else {<br class="">+    outs() << RawLastModified << " ";<br class="">+  }<br class="">+<br class="">+  if (verbose) {<br class="">+    ErrorOr<StringRef> NameOrErr = C.getName();<br class="">+    if (NameOrErr.getError()) {<br class="">+      StringRef RawName = C.getRawName();<br class="">+      outs() << RawName << "\n";<br class="">+    } else {<br class="">+      StringRef Name = NameOrErr.get();<br class="">+      outs() << Name << "\n";<br class="">+    }<br class="">+  } else {<br class="">+    StringRef RawName = C.getRawName();<br class="">+    outs() << RawName << "\n";<br class="">+  }<br class="">+}<br class="">+<br class="">+static void printArchiveHeaders(Archive *A, bool verbose, bool print_offset) {<br class="">+  if (A->hasSymbolTable()) {<br class="">+    Archive::child_iterator S = A->getSymbolTableChild();<br class="">+    Archive::Child C = *S;<br class="">+    printArchiveChild(C, verbose, print_offset);<br class="">+  }<br class="">+  for (Archive::child_iterator I = A->child_begin(), E = A->child_end(); I != E;<br class="">+       ++I) {<br class="">+    Archive::Child C = *I;<br class="">+    printArchiveChild(C, verbose, print_offset);<br class="">+  }<br class="">+}<br class="">+<br class=""> // ParseInputMachO() parses the named Mach-O file in Filename and handles the<br class=""> // -arch flags selecting just those slices as specified by them and also parses<br class=""> // archive files.  Then for each individual Mach-O file ProcessMachO() is<br class="">@@ -542,6 +647,8 @@ void llvm::ParseInputMachO(StringRef Fil<br class=""><br class="">   if (Archive *A = dyn_cast<Archive>(&Bin)) {<br class="">     outs() << "Archive : " << Filename << "\n";<br class="">+    if (ArchiveHeaders)<br class="">+      printArchiveHeaders(A, true, false);<br class="">     for (Archive::child_iterator I = A->child_begin(), E = A->child_end();<br class="">          I != E; ++I) {<br class="">       ErrorOr<std::unique_ptr<Binary>> ChildOrErr = I->getAsBinary();<br class="">@@ -587,6 +694,8 @@ void llvm::ParseInputMachO(StringRef Fil<br class="">               if (!ArchitectureName.empty())<br class="">                 outs() << " (architecture " << ArchitectureName << ")";<br class="">               outs() << "\n";<br class="">+              if (ArchiveHeaders)<br class="">+                printArchiveHeaders(A.get(), true, false);<br class="">               for (Archive::child_iterator AI = A->child_begin(),<br class="">                                            AE = A->child_end();<br class="">                    AI != AE; ++AI) {<br class="">@@ -627,6 +736,8 @@ void llvm::ParseInputMachO(StringRef Fil<br class="">                          I->getAsArchive()) {<br class="">             std::unique_ptr<Archive> &A = *AOrErr;<br class="">             outs() << "Archive : " << Filename << "\n";<br class="">+            if (ArchiveHeaders)<br class="">+              printArchiveHeaders(A.get(), true, false);<br class="">             for (Archive::child_iterator AI = A->child_begin(),<br class="">                                          AE = A->child_end();<br class="">                  AI != AE; ++AI) {<br class="">@@ -662,6 +773,8 @@ void llvm::ParseInputMachO(StringRef Fil<br class="">         if (!ArchitectureName.empty())<br class="">           outs() << " (architecture " << ArchitectureName << ")";<br class="">         outs() << "\n";<br class="">+        if (ArchiveHeaders)<br class="">+          printArchiveHeaders(A.get(), true, false);<br class="">         for (Archive::child_iterator AI = A->child_begin(), AE = A->child_end();<br class="">              AI != AE; ++AI) {<br class="">           ErrorOr<std::unique_ptr<Binary>> ChildOrErr = AI->getAsBinary();<br class=""><br class="">Modified: llvm/trunk/tools/llvm-objdump/llvm-objdump.cpp<br class="">URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-objdump/llvm-objdump.cpp?rev=226228&r1=226227&r2=226228&view=diff<br class="">==============================================================================<br class="">--- llvm/trunk/tools/llvm-objdump/llvm-objdump.cpp (original)<br class="">+++ llvm/trunk/tools/llvm-objdump/llvm-objdump.cpp Thu Jan 15 17:19:11 2015<br class="">@@ -892,7 +892,8 @@ int main(int argc, char **argv) {<br class="">       && !Bind<br class="">       && !LazyBind<br class="">       && !WeakBind<br class="">-      && !(UniversalHeaders && MachOOpt)) {<br class="">+      && !(UniversalHeaders && MachOOpt)<br class="">+      && !(ArchiveHeaders && MachOOpt)) {<br class="">     cl::PrintHelpMessage();<br class="">     return 2;<br class="">   }<br class=""><br class="">Modified: llvm/trunk/tools/llvm-objdump/llvm-objdump.h<br class="">URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-objdump/llvm-objdump.h?rev=226228&r1=226227&r2=226228&view=diff<br class="">==============================================================================<br class="">--- llvm/trunk/tools/llvm-objdump/llvm-objdump.h (original)<br class="">+++ llvm/trunk/tools/llvm-objdump/llvm-objdump.h Thu Jan 15 17:19:11 2015<br class="">@@ -35,6 +35,7 @@ extern cl::opt<bool> Bind;<br class=""> extern cl::opt<bool> LazyBind;<br class=""> extern cl::opt<bool> WeakBind;<br class=""> extern cl::opt<bool> UniversalHeaders;<br class="">+extern cl::opt<bool> ArchiveHeaders;<br class=""><br class=""> // Various helper functions.<br class=""> bool error(std::error_code ec);<br class=""><br class=""><br class="">_______________________________________________<br class="">llvm-commits mailing list<br class="">llvm-commits@cs.uiuc.edu<br class="">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits<br class=""></blockquote></div></blockquote></div><br class=""></div></div></div></div></body></html>