]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
mips: section .note.gnu.build-id can't be allocated in segment
authorAlan Modra <amodra@gmail.com>
Sun, 24 May 2026 04:54:36 +0000 (14:24 +0930)
committerAlan Modra <amodra@gmail.com>
Sun, 24 May 2026 04:54:36 +0000 (14:24 +0930)
After modifying test_build_id_debuglink, mips-linux fails
objcopy --only-keep-debug tmpdir/testprog tmpdir/testprog.debug
with the above error.  This is due to .MIPS.abiflags and .reginfo
being made SHT_NOBITS but the .note.gnu.build-id which follows is
SHT_PROGBITS.  That tickles a bug in file offset tracking.

* elf.c (assign_file_positions_for_load_sections): When
resetting "off_adjust" for sections with contents following
sections without contents, put back "off" too.

bfd/elf.c

index dcf8f61e0436b53ebc17304b566fe54d305f3cb8..1c88c379ea0159371a9cd6f736eb4101e80698ba 100644 (file)
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -6335,6 +6335,7 @@ assign_file_positions_for_load_sections (bfd *abfd,
                {
                  if (this_hdr->sh_type != SHT_NOBITS)
                    {
+                     off -= off_adjust;
                      off_adjust = 0;
                      if (p->p_filesz + adjust < p->p_memsz)
                        {