HomeFreeBSD

Fix lld warning "SHF_MERGE section size must be a multiple of sh_entsize"

Description

Fix lld warning "SHF_MERGE section size must be a multiple of sh_entsize"

Merge commit 56decd982dc0 from llvm git (by Fangrui Song):

[ELF] Allow invalid sh_size%sh_entsize!=0 for non-SHF_MERGE sections

Fixes https://bugs.llvm.org/show_bug.cgi?id=45370
Fixes https://github.com/Clozure/ccl/issues/273

.stab holds a table of 12-byte entries. GNU as before 2.35 incorrectly
sets sh_entsize(.stab) to 20 on 64-bit architectures:
https://sourceware.org/bugzilla/show_bug.cgi?id=25768

We should not emit the confusing error:
"SHF_MERGE section size (...) must be a multiple of sh_entsize (20)

Reviewed By: grimar, psmith

Differential Revision: https://reviews.llvm.org/D77368

Direct commit to stable/12, since newer branches have this fix already.

PR: 245179
Reported by: andrew@tao11.riddles.org.uk

Details

Provenance
dimAuthored on Nov 8 2021, 10:19 AM
Parents
rG2cd53619a1fc: strip/objcopy: handle empty file as unknown
Branches
Unknown
Tags
Unknown