[lld] r263664 - [ELF] SHF_MERGE section with 0 entsize is not fatal

Sean Silva via llvm-commits llvm-commits at lists.llvm.org
Wed Mar 16 18:41:40 PDT 2016


On Wed, Mar 16, 2016 at 6:27 PM, Rafael EspĂ­ndola <
llvm-commits at lists.llvm.org> wrote:

> BTW, how are these files being produced in freebsd?
>

+1

In r259831 I made sure to give a very clear explanation of where the
"bogus" files were coming from. It would be nice if we keep up this
practice when adding workarounds for files that we previously considered
invalid.

-- Sean Silva



>
> Cheers,
> Rafael
>
>
> On 16 March 2016 at 14:12, Ed Maste via llvm-commits
> <llvm-commits at lists.llvm.org> wrote:
> > Author: emaste
> > Date: Wed Mar 16 16:12:53 2016
> > New Revision: 263664
> >
> > URL: http://llvm.org/viewvc/llvm-project?rev=263664&view=rev
> > Log:
> > [ELF] SHF_MERGE section with 0 entsize is not fatal
> >
> > For now just treat such sections as non-mergeable.
> >
> > Resubmit r263660 with test fix.
> >
> > Differential Revision:     http://reviews.llvm.org/D18225
> >
> > Added:
> >     lld/trunk/test/ELF/Inputs/merge-shentsize-zero.elf
> >       - copied unchanged from r263660,
> lld/trunk/test/ELF/Inputs/invalid-shentsize-zero.elf
> >     lld/trunk/test/ELF/merge-zero-size.test
> > Removed:
> >     lld/trunk/test/ELF/Inputs/invalid-shentsize-zero.elf
> > Modified:
> >     lld/trunk/ELF/InputFiles.cpp
> >     lld/trunk/test/ELF/invalid-elf.test
> >
> > Modified: lld/trunk/ELF/InputFiles.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/InputFiles.cpp?rev=263664&r1=263663&r2=263664&view=diff
> >
> ==============================================================================
> > --- lld/trunk/ELF/InputFiles.cpp (original)
> > +++ lld/trunk/ELF/InputFiles.cpp Wed Mar 16 16:12:53 2016
> > @@ -148,7 +148,9 @@ template <class ELFT> static bool should
> >    if (Flags & SHF_WRITE)
> >      fatal("writable SHF_MERGE sections are not supported");
> >    uintX_t EntSize = Sec.sh_entsize;
> > -  if (!EntSize || Sec.sh_size % EntSize)
> > +  if (!EntSize)
> > +    return false;
> > +  if (Sec.sh_size % EntSize)
> >      fatal("SHF_MERGE section size must be a multiple of sh_entsize");
> >
> >    // Don't try to merge if the aligment is larger than the sh_entsize
> and this
> >
> > Removed: lld/trunk/test/ELF/Inputs/invalid-shentsize-zero.elf
> > URL:
> http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/Inputs/invalid-shentsize-zero.elf?rev=263663&view=auto
> >
> ==============================================================================
> > Binary file - no diff available.
> >
> > Modified: lld/trunk/test/ELF/invalid-elf.test
> > URL:
> http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/invalid-elf.test?rev=263664&r1=263663&r2=263664&view=diff
> >
> ==============================================================================
> > --- lld/trunk/test/ELF/invalid-elf.test (original)
> > +++ lld/trunk/test/ELF/invalid-elf.test Wed Mar 16 16:12:53 2016
> > @@ -24,10 +24,6 @@
> >  # RUN:   FileCheck --check-prefix=INVALID-SECTION-INDEX %s
> >  # INVALID-SECTION-INDEX: Invalid section index
> >
> > -# RUN: not ld.lld %p/Inputs/invalid-shentsize-zero.elf -o %t2 2>&1 | \
> > -# RUN:   FileCheck --check-prefix=INVALID-SHENTSIZE-ZERO %s
> > -# INVALID-SHENTSIZE-ZERO: SHF_MERGE section size must be a multiple of
> sh_entsize
> > -
> >  # RUN: not ld.lld %p/Inputs/invalid-multiple-eh-relocs.elf -o %t2 2>&1
> | \
> >  # RUN:   FileCheck --check-prefix=INVALID-EH-RELOCS %s
> >  # INVALID-EH-RELOCS: multiple relocation sections to .eh_frame are not
> supported
> >
> > Added: lld/trunk/test/ELF/merge-zero-size.test
> > URL:
> http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/merge-zero-size.test?rev=263664&view=auto
> >
> ==============================================================================
> > --- lld/trunk/test/ELF/merge-zero-size.test (added)
> > +++ lld/trunk/test/ELF/merge-zero-size.test Wed Mar 16 16:12:53 2016
> > @@ -0,0 +1,4 @@
> > +# RUN: ld.lld %p/Inputs/merge-shentsize-zero.elf -o %t2 2>&1 | \
> > +# RUN:   FileCheck -allow-empty %s
> > +# CHECK-NOT: SHF_MERGE section size must be a multiple of sh_entsize
> > +
> >
> >
> > _______________________________________________
> > llvm-commits mailing list
> > llvm-commits at lists.llvm.org
> > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160316/947cafe4/attachment.html>


More information about the llvm-commits mailing list