bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug binutils/29495] rewrite_elf_program_header looping


From: cvs-commit at gcc dot gnu.org
Subject: [Bug binutils/29495] rewrite_elf_program_header looping
Date: Tue, 16 Aug 2022 08:51:33 +0000

https://sourceware.org/bugzilla/show_bug.cgi?id=29495

--- Comment #1 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot 
gnu.org> ---
The master branch has been updated by Alan Modra <amodra@sourceware.org>:

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=45d92439aebd0386ef8af76e1796d08cfe457e1d

commit 45d92439aebd0386ef8af76e1796d08cfe457e1d
Author: Alan Modra <amodra@gmail.com>
Date:   Tue Aug 16 17:02:24 2022 +0930

    PR29495, rewrite_elf_program_header looping

    This patch, in order of significance:
    1) Replaces some macros with inline functions.
    2) Those inline functions catch and avoid arithmetic overflows when
       comparing addresses.
    3) When assigning sections to segments (IS_SECTION_IN_INPUT_SEGMENT)
       use bed->want_p_paddr_set_to_zero to decide whether lma vs p_paddr
       or vma vs p_vaddr should be tested.  When remapping, use the same
       test, and use is_note rather than the more restrictive
       IS_COREFILE_NOTE.

    It's important that the later tests not be more restrictive.  If they
    are it can lead to the situation triggered by the testcases, where a
    section seemingly didn't fit and thus needed a new mapping.  It didn't
    fit the new mapping either, and this repeated until memory exhausted.

            PR 29495
            * elf.c (SEGMENT_END, SECTION_SIZE, IS_CONTAINED_BY_VMA): Delete.
            (IS_CONTAINED_BY_LMA, IS_NOTE, IS_COREFILE_NOTE): Delete.
            (segment_size, segment_end, section_size): New inline function.
            (is_contained_by, is_note): Likewise.
            (rewrite_elf_program_header): Use new functions.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]