]> code.ossystems Code Review - openembedded-core.git/commit
elf: Discard input .note.gnu.build-id sections
authorValerii Chernous <vchernou@cisco.com>
Fri, 10 Dec 2021 17:53:37 +0000 (19:53 +0200)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Sun, 12 Dec 2021 11:27:20 +0000 (11:27 +0000)
commit68bbff44a481a036dc7d39e5d5745a01ccffdb95
tree95dcaff800c58653483349cc233196a01d11abe5
parent28adfbbcf42d15eabdd7fe3a5dea486bd5049f09
elf: Discard input .note.gnu.build-id sections

Originally issue:
building of glibc 2.32 or 2.34 with option "-Wl,--build-id"
produce libc.so.6 with section ".note.gnu.build-id" that have
invalid(double, 0x48) section size. It happens because glibc
use sublibraries for linking libc.so.6
ld produce this sublibraries with build-id section and on last
linking stage loads this sections as input for linking.
ld should create new(valid) ".note.gnu.build-id" into function
ldelf_setup_build_id on last linking stage but it skip creating because
build-id section already exists.
As result libc.so.6 contain ".note.gnu.build-id" with build-ids from
sublibraries and without valid build-id

Howto solved:
1. Discard input .note.gnu.build-id sections.
2. Clear the build ID field before writing.
3. Use bfd_make_section_anyway_with_flags to create the output
   .note.gnu.build-id section.

Upstream-Status: Backport

Reference to upstream patch:
[https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=1f1d0f8888a6c944e612b416a2a6e11abcf5199f]

Signed-off-by: Valerii Chernous <vchernou@cisco.com>
Signed-off-by: Valery Chernous <valery.chernous@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-devtools/binutils/binutils-2.37.inc
meta/recipes-devtools/binutils/binutils/0001-elf-Discard-input-.note.gnu.build-id-sections.patch [new file with mode: 0644]