[llvm-commits] [lld] r171711 - in /lld/trunk: lib/ReaderWriter/ELF/WriterELF.cpp test/elf/Inputs/constdata.x86-64 test/elf/rodata.test

Rafael EspĂ­ndola rafael.espindola at gmail.com
Thu Jan 10 13:17:17 PST 2013


Awesome!
On Jan 7, 2013 3:02 AM, "Michael J. Spencer" <bigcheesegs at gmail.com> wrote:

> Author: mspencer
> Date: Mon Jan  7 02:00:42 2013
> New Revision: 171711
>
> URL: http://llvm.org/viewvc/llvm-project?rev=171711&view=rev
> Log:
> [ELF] Properly handle constant data.
>
> With this hello world works with dietlibc on x86-64 Linux.
>
> Added:
>     lld/trunk/test/elf/Inputs/constdata.x86-64
>     lld/trunk/test/elf/rodata.test
> Modified:
>     lld/trunk/lib/ReaderWriter/ELF/WriterELF.cpp
>
> Modified: lld/trunk/lib/ReaderWriter/ELF/WriterELF.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/WriterELF.cpp?rev=171711&r1=171710&r2=171711&view=diff
>
> ==============================================================================
> --- lld/trunk/lib/ReaderWriter/ELF/WriterELF.cpp (original)
> +++ lld/trunk/lib/ReaderWriter/ELF/WriterELF.cpp Mon Jan  7 02:00:42 2013
> @@ -273,6 +273,7 @@
>        switch(definedAtom->contentType()) {
>        case  DefinedAtom::typeCode:
>        case  DefinedAtom::typeData:
> +      case  DefinedAtom::typeConstant:
>          _atoms.push_back(std::make_pair(atom, std::make_pair(fOffset,
> 0)));
>          this->_fsize = fOffset + definedAtom->size();
>          this->_msize = mOffset + definedAtom->size();
> @@ -456,6 +457,8 @@
>      uint8_t *chunkBuffer = buffer->getBufferStart();
>      for (auto &ai : _atoms) {
>        const DefinedAtom *definedAtom =
> llvm::dyn_cast<DefinedAtom>(ai.first);
> +      if (definedAtom->contentType() == DefinedAtom::typeZeroFill)
> +        continue;
>        // Copy raw content of atom to file buffer.
>        ArrayRef<uint8_t> content = definedAtom->rawContent();
>        uint64_t contentSize = content.size();
> @@ -1067,6 +1070,7 @@
>          type = ELF::STT_FUNC;
>          break;
>        case  DefinedAtom::typeData:
> +      case  DefinedAtom::typeConstant:
>          symbol->st_value = addr;
>          type = ELF::STT_OBJECT;
>          break;
>
> Added: lld/trunk/test/elf/Inputs/constdata.x86-64
> URL:
> http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/Inputs/constdata.x86-64?rev=171711&view=auto
>
> ==============================================================================
> Binary files lld/trunk/test/elf/Inputs/constdata.x86-64 (added) and
> lld/trunk/test/elf/Inputs/constdata.x86-64 Mon Jan  7 02:00:42 2013 differ
>
> Added: lld/trunk/test/elf/rodata.test
> URL:
> http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/rodata.test?rev=171711&view=auto
>
> ==============================================================================
> --- lld/trunk/test/elf/rodata.test (added)
> +++ lld/trunk/test/elf/rodata.test Mon Jan  7 02:00:42 2013
> @@ -0,0 +1,4 @@
> +RUN: lld -flavor ld -target x86_64-linux -o %t %p/Inputs/constdata.x86-64
> +RUN: llvm-objdump -s %t | FileCheck %s
> +
> +CHECK: Hellooooooooo
>
>
> _______________________________________________
> 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/20130110/afaf1f5b/attachment.html>


More information about the llvm-commits mailing list