[llvm-commits] [llvm] r170105 - in /llvm/trunk: include/llvm/Object/MachO.h lib/Object/MachOObjectFile.cpp tools/llvm-objdump/MachODump.cpp tools/llvm-objdump/llvm-objdump.cpp

Eric Christopher echristo at gmail.com
Mon Dec 17 13:34:03 PST 2012


I honestly have no idea. I was just more around a computer than Nadav was
at the time. Once the bots clear up you're more than welcome to add it back
in to see what's failing.

-eric


On Mon, Dec 17, 2012 at 1:29 PM, Rafael EspĂ­ndola <
rafael.espindola at gmail.com> wrote:

> I am really sorry I missed this the first time. Do you guys have the
> log of how this was failing? DW_AT_byte_size.ll doesn't seem to do any
> checks with the section or segment name...
>
> On 13 December 2012 01:36, Eric Christopher <echristo at gmail.com> wrote:
> > Author: echristo
> > Date: Thu Dec 13 00:36:18 2012
> > New Revision: 170105
> >
> > URL: http://llvm.org/viewvc/llvm-project?rev=170105&view=rev
> > Log:
> > Revert "Add a funciton to get the segment name of a section."
> >
> > This reverts commit r170095 since it appears to be breaking the bots.
> >
> > Modified:
> >     llvm/trunk/include/llvm/Object/MachO.h
> >     llvm/trunk/lib/Object/MachOObjectFile.cpp
> >     llvm/trunk/tools/llvm-objdump/MachODump.cpp
> >     llvm/trunk/tools/llvm-objdump/llvm-objdump.cpp
> >
> > Modified: llvm/trunk/include/llvm/Object/MachO.h
> > URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Object/MachO.h?rev=170105&r1=170104&r2=170105&view=diff
> >
> ==============================================================================
> > --- llvm/trunk/include/llvm/Object/MachO.h (original)
> > +++ llvm/trunk/include/llvm/Object/MachO.h Thu Dec 13 00:36:18 2012
> > @@ -44,11 +44,6 @@
> >    virtual unsigned getArch() const;
> >    virtual StringRef getLoadName() const;
> >
> > -  // In a MachO file, sections have a segment name. This is used in the
> .o
> > -  // files. They have a single segment, but this field specifies which
> segment
> > -  // a section should be put in in the final object.
> > -  error_code getSectionFinalSegmentName(DataRefImpl Sec, StringRef
> &Res) const;
> > -
> >    MachOObject *getObject() { return MachOObj.get(); }
> >
> >    static inline bool classof(const Binary *v) {
> >
> > Modified: llvm/trunk/lib/Object/MachOObjectFile.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Object/MachOObjectFile.cpp?rev=170105&r1=170104&r2=170105&view=diff
> >
> ==============================================================================
> > --- llvm/trunk/lib/Object/MachOObjectFile.cpp (original)
> > +++ llvm/trunk/lib/Object/MachOObjectFile.cpp Thu Dec 13 00:36:18 2012
> > @@ -473,43 +473,28 @@
> >    return false;
> >  }
> >
> > -static StringRef parseSegmentOrSectionName(const char *P) {
> > -  if (P[15] == 0)
> > -    // Null terminated.
> > -    return P;
> > -  // Not null terminated, so this is a 16 char string.
> > -  return StringRef(P, 16);
> > -}
> > -
> >  error_code MachOObjectFile::getSectionName(DataRefImpl DRI,
> >                                             StringRef &Result) const {
> > +  // FIXME: thread safety.
> > +  static char result[34];
> >    if (is64BitLoadCommand(MachOObj.get(), DRI)) {
> >      LoadCommandInfo LCI = MachOObj->getLoadCommandInfo(DRI.d.a);
> >      InMemoryStruct<macho::Section64> Sect;
> >      MachOObj->ReadSection64(LCI, DRI.d.b, Sect);
> > -    Result = parseSegmentOrSectionName(Sect->Name);
> > +
> > +    strcpy(result, Sect->SegmentName);
> > +    strcat(result, ",");
> > +    strcat(result, Sect->Name);
> >    } else {
> >      LoadCommandInfo LCI = MachOObj->getLoadCommandInfo(DRI.d.a);
> >      InMemoryStruct<macho::Section> Sect;
> >      MachOObj->ReadSection(LCI, DRI.d.b, Sect);
> > -    Result = parseSegmentOrSectionName(Sect->Name);
> > -  }
> > -  return object_error::success;
> > -}
> >
> > -error_code MachOObjectFile::getSectionFinalSegmentName(DataRefImpl Sec,
> > -                                                       StringRef &Res)
> const {
> > -  if (is64BitLoadCommand(MachOObj.get(), Sec)) {
> > -    LoadCommandInfo LCI = MachOObj->getLoadCommandInfo(Sec.d.a);
> > -    InMemoryStruct<macho::Section64> Sect;
> > -    MachOObj->ReadSection64(LCI, Sec.d.b, Sect);
> > -    Res = parseSegmentOrSectionName(Sect->SegmentName);
> > -  } else {
> > -    LoadCommandInfo LCI = MachOObj->getLoadCommandInfo(Sec.d.a);
> > -    InMemoryStruct<macho::Section> Sect;
> > -    MachOObj->ReadSection(LCI, Sec.d.b, Sect);
> > -    Res = parseSegmentOrSectionName(Sect->SegmentName);
> > +    strcpy(result, Sect->SegmentName);
> > +    strcat(result, ",");
> > +    strcat(result, Sect->Name);
> >    }
> > +  Result = StringRef(result);
> >    return object_error::success;
> >  }
> >
> >
> > Modified: llvm/trunk/tools/llvm-objdump/MachODump.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-objdump/MachODump.cpp?rev=170105&r1=170104&r2=170105&view=diff
> >
> ==============================================================================
> > --- llvm/trunk/tools/llvm-objdump/MachODump.cpp (original)
> > +++ llvm/trunk/tools/llvm-objdump/MachODump.cpp Thu Dec 13 00:36:18 2012
> > @@ -334,15 +334,9 @@
> >    for (unsigned SectIdx = 0; SectIdx != Sections.size(); SectIdx++) {
> >      StringRef SectName;
> >      if (Sections[SectIdx].getName(SectName) ||
> > -        SectName != "__text")
> > +        SectName.compare("__TEXT,__text"))
> >        continue; // Skip non-text sections
> >
> > -    StringRef SegmentName;
> > -    DataRefImpl DR = Sections[SectIdx].getRawDataRefImpl();
> > -    if (MachOOF->getSectionFinalSegmentName(DR, SegmentName) ||
> > -        SegmentName != "__TEXT")
> > -      continue;
> > -
> >      // Insert the functions from the function starts segment into our
> map.
> >      uint64_t VMAddr;
> >      Sections[SectIdx].getAddress(VMAddr);
> >
> > Modified: llvm/trunk/tools/llvm-objdump/llvm-objdump.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-objdump/llvm-objdump.cpp?rev=170105&r1=170104&r2=170105&view=diff
> >
> ==============================================================================
> > --- llvm/trunk/tools/llvm-objdump/llvm-objdump.cpp (original)
> > +++ llvm/trunk/tools/llvm-objdump/llvm-objdump.cpp Thu Dec 13 00:36:18
> 2012
> > @@ -28,7 +28,6 @@
> >  #include "llvm/MC/MCSubtargetInfo.h"
> >  #include "llvm/Object/Archive.h"
> >  #include "llvm/Object/COFF.h"
> > -#include "llvm/Object/MachO.h"
> >  #include "llvm/Object/ObjectFile.h"
> >  #include "llvm/Support/Casting.h"
> >  #include "llvm/Support/CommandLine.h"
> > @@ -73,9 +72,9 @@
> >  SymbolTable("t", cl::desc("Display the symbol table"));
> >
> >  static cl::opt<bool>
> > -MachOOpt("macho", cl::desc("Use MachO specific object file parser"));
> > +MachO("macho", cl::desc("Use MachO specific object file parser"));
> >  static cl::alias
> > -MachOm("m", cl::desc("Alias for --macho"), cl::aliasopt(MachOOpt));
> > +MachOm("m", cl::desc("Alias for --macho"), cl::aliasopt(MachO));
> >
> >  cl::opt<std::string>
> >  llvm::TripleName("triple", cl::desc("Target triple to disassemble for, "
> > @@ -568,13 +567,6 @@
> >        else if (Section == o->end_sections())
> >          outs() << "*UND*";
> >        else {
> > -        if (const MachOObjectFile *MachO = dyn_cast<const
> MachOObjectFile>(o)) {
> > -          StringRef SegmentName;
> > -          DataRefImpl DR = Section->getRawDataRefImpl();
> > -          if (error(MachO->getSectionFinalSegmentName(DR, SegmentName)))
> > -            SegmentName = "";
> > -          outs() << SegmentName << ",";
> > -        }
> >          StringRef SectionName;
> >          if (error(Section->getName(SectionName)))
> >            SectionName = "";
> > @@ -648,7 +640,7 @@
> >      return;
> >    }
> >
> > -  if (MachOOpt && Disassemble) {
> > +  if (MachO && Disassemble) {
> >      DisassembleInputMachO(file);
> >      return;
> >    }
> >
> >
> > _______________________________________________
> > llvm-commits mailing list
> > llvm-commits at cs.uiuc.edu
> > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20121217/39e1ada2/attachment.html>


More information about the llvm-commits mailing list