[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