[PATCH] [lld][ELF] Fix non SHF_ALLOC sections.

Michael Spencer bigcheesegs at gmail.com
Wed Sep 18 15:42:29 PDT 2013



================
Comment at: lib/ReaderWriter/ELF/Atoms.h:309-312
@@ -305,2 +308,6 @@
     case llvm::ELF::SHT_PROGBITS:
+      if (!(flags & llvm::ELF::SHF_ALLOC)) {
+        ret = typeNoAlloc;
+        break;
+      }
       flags &= ~llvm::ELF::SHF_ALLOC;
----------------
Shankar Kalpathi Easwaran wrote:
> isnt this already handled lines (288-290) ?
Ah, it should have all moved here.

================
Comment at: lib/ReaderWriter/ELF/DefaultLayout.h:832
@@ +831,3 @@
+      if (auto as = dyn_cast<AtomSection<ELFT>>(section)) {
+        uint64_t addr = -fileoffset;
+        section->assignVirtualAddress(addr);
----------------
Shankar Kalpathi Easwaran wrote:
> Why is addr set to -fileoffset ?
Because assignVirtualAddress starts at fileoffset, so we need to cancel it out.


http://llvm-reviews.chandlerc.com/D1680



More information about the llvm-commits mailing list