[PATCH] D23713: [ELF] - Fix for PR26968 - i386 lld produces incorrect fatal error "SHF_MERGE section size must be a multiple of sh_entsize"

Ed Maste via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 22 12:24:11 PDT 2016


emaste added a comment.

> So issue just no longer exist for FreeBSD. I assumed it is still a problem for BSD because it is not very clear from PR page,


Sorry for any confusion. To be clear, this is currently **not** an issue in FreeBSD.

Here's what happened:

- I made these sections non-mergeable https://reviews.llvm.org/rL263660/https://reviews.llvm.org/rL263664
- The bug in `lld -r` was fixed
- My change was reverted in https://reviews.llvm.org/rL263944
- Rui closed the PR with the comment "handling them as non-mergeable sections is a reasonable behavior, so let's close this bug as expected"

so I re-opened the PR, because lld right now does not handle them as non-mergeable sections.

> and so if it is not anymore, do we really need to do something ? Probably there are no such objects in real world ?


I believe we should restore https://reviews.llvm.org/rL263664:

- Such objects may be rare/unlikely, but it is valid to have a mergeable section with `sh_entsize == 0`
- Handling them as non-mergeable is explicitly valid behaviour (not merging a mergeable section is just a missed optimization)
- The cost of https://reviews.llvm.org/rL263664 in terms of code complexity, size or run time, is trivial

That said, I don't care much either way and it's fine with me if we just close the PR. We should make an explicit decision though, not have the PR closed based on a misunderstanding.


https://reviews.llvm.org/D23713





More information about the llvm-commits mailing list