<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>