[lld] r263664 - [ELF] SHF_MERGE section with 0 entsize is not fatal
Rafael EspĂndola via llvm-commits
llvm-commits at lists.llvm.org
Wed Mar 16 18:27:15 PDT 2016
BTW, how are these files being produced in freebsd?
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
More information about the llvm-commits
mailing list