]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
bfd/ELF: slightly "better" file alignment for object files
authorJan Beulich <jbeulich@suse.com>
Mon, 13 Jan 2025 12:32:19 +0000 (13:32 +0100)
committerJan Beulich <jbeulich@suse.com>
Mon, 13 Jan 2025 12:32:19 +0000 (13:32 +0100)
PR gas/32435

Commit 1f1b5e506bf0 ("bfd/ELF: restrict file alignment for object
files") caused an issue in the Linux kernels modpost utility, which was
building upon .rodata sections to be 4-byte aligned in the file when
they have 4-byte alignment. While we don't want to revert back to
original behavior, apply the same alignment "capping" as done originally
in two other places also for "ordinary" sections.

bfd/elf.c

index 218d58df8bea9d731a6c2d0c7cb97fa414a953ad..41668475ea1bcc4e7cb38b1fed32cdb9eb15764e 100644 (file)
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -6805,8 +6805,12 @@ assign_file_positions_except_relocs (bfd *abfd,
              hdr->sh_offset = -1;
            }
          else
+           /* There shouldn't be a need to effect "capped" file alignment here,
+              yet at least the Linux kernel's modpost utility was found to be
+              unhappy without.  While the issue was addressed there, let's be
+              kind for at least the foreseeable future ...  */
            off = _bfd_elf_assign_file_position_for_section (hdr, off, false,
-                                                            0);
+                                                            bed->s->log_file_align);
        }
 
       elf_next_file_pos (abfd) = off;