]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit
ld: entry size and merge/strings attributes propagation
authorJan Beulich <jbeulich@suse.com>
Tue, 26 Aug 2025 08:42:03 +0000 (10:42 +0200)
committerJan Beulich <jbeulich@suse.com>
Tue, 26 Aug 2025 08:42:03 +0000 (10:42 +0200)
commit74f045d47ab9060bc4e8b82e62bdf2d0ef730cb5
tree423637cc79b9ca83357b9006399c5a16b4b7768f
parent5319c8dec64aa5e37c56da2b0cfe77a1886231ca
ld: entry size and merge/strings attributes propagation

While commit 9c0adb10c7fc ("elf: Clear entsize when clearing
SEC_MERGE|SEC_STRINGS") addressed the particular issue reported in
PR ld/33291, it didn't go quite far enough to deal with related aspects
as well:

As indicated in other recent commits, the three properties can be
largely independent (ELF generally being the target here): Entry size
doesn't require either of merge/strings, and strings also doesn't
require merge. Commit 98e6d3f5bd4e ("gas/ELF: allow specifying entity
size for arbitrary sections") uncovered issues with ld's handling.

Zap entry size when it doesn't match between input sections. In that
case SEC_MERGE and SEC_STRINGS also need to be removed, as their
underlying granularity is lost. Then deal with SEC_MERGE and
SEC_STRINGS separately.

Otoh record entry size from the first input independent of SEC_MERGE.
ld/ldlang.c