bug-binutils
[Top][All Lists]
Advanced

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

[Bug ld/20815] throw errors for invalid load segment


From: cvs-commit at gcc dot gnu.org
Subject: [Bug ld/20815] throw errors for invalid load segment
Date: Wed, 23 Nov 2016 11:12:59 +0000

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

--- Comment #19 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot 
gnu.org> ---
The master branch has been updated by Nick Clifton <address@hidden>:

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

commit 1a9ccd70f9a75dc6b48d340059f28ef3550c107b
Author: Nick Clifton <address@hidden>
Date:   Wed Nov 23 11:10:39 2016 +0000

    Fix the linker so that it will not silently generate ELF binaries with
invalid program headers.  Fix readelf to report such invalid binaries.

        PR ld/20815
    bfd * elf.c (elf_modify_segment_map): Allow empty LOAD segments if
        they contain the program headers.
        (_bfd_elf_map_sections_to_segments): If the linker created the
        PHDR segment then always attempt to include it in a LOAD segment.
        (assign_file_positions_for_non_load_sections): Allow LOAD segments
        to overlap PHDR segments.
        (phdr_sorter): New function.  Sorts program headers.
        (assign_file_positions_except_relocs): Sort the program headers
        before writing them out.  Issue an error if the PHDR segment is
        not covered by a LOAD segment, unless the backend allows it.
        * elf-bfd.h (struct elf_backend_data): Add
        elf_backend_allow_non_load_phdr.
        * elfxx-target.h (elf_backend_allow_non_load_phdr): Provide
        default definition that returns FALSE.
        (elfNN_bed): Initialise the elf_backend_allow_non_load_phdr
        field.
        * elf64-hppa.c (elf64_hppa_allow_non_load_phdr): New function.
        Returns TRUE.
        (elf_backend_allow_non_load_phdr): Define.
        * elf-m10300.c (_bfd_mn10300_elf_size_dynamic_sections): Do not
        place the interpreter string into the .interp section if the
        nointerp flag is set in the link info structure.
        * elf32-arc.c (elf_arc_size_dynamic_sections): Likewise.
        * elf32-score7.c (score_elf_final_link_relocate): Allow for the
        _gp symbol not being part of the output.

    binutils* readelf.c (process_program_headers): Check PT_LOAD and PT_PHDR
        segments for validity.

    ld  * ld.texinfo: Note that PT_TLS can be used as a segment type.
        * testsuite/ld-discard/discard.ld: Add space for program headers.
        * testsuite/ld-elf/flags1.ld: Likewise.
        * testsuite/ld-elf/maxpage3.t: Likewise.
        * testsuite/ld-elf/noload-1.t: Likewise.
        * testsuite/ld-elf/orphan.ld: Likewise.
        * testsuite/ld-elf/overlay.t: Likewise.
        * testsuite/ld-elf/pr14052.t: Likewise.
        * testsuite/ld-elf/pr19539.t: Likewise.
        * testsuite/ld-elf/provide-hidden-1.ld: Likewise.
        * testsuite/ld-elf/provide-hidden-s.ld: Likewise.
        * testsuite/ld-elf/weak-dyn-1.ld: Likewise.
        * testsuite/ld-i386/pr19539.t: Likewise.
        * testsuite/ld-scripts/defined.t: Likewise.
        * testsuite/ld-scripts/defined6.t: Likewise.
        * testsuite/ld-scripts/dynamic-sections.t: Likewise.
        * testsuite/ld-scripts/empty-aligned.t: Likewise.
        * testsuite/ld-scripts/provide-2.t: Likewise.
        * testsuite/ld-scripts/provide-4.t: Likewise.
        * testsuite/ld-vax-elf/plt-local.ld: Likewise.
        * testsuite/ld-x86-64/pr19539.t: Likewise.
        * testsuite/ld-elf/ehdr_start-missing.d: Do not initialise the
        dynamic linker.
        * testsuite/ld-elf/ehdr_start-weak.d: Likewise.
        * testsuite/ld-elf/elf.exp (pr14170, pr17068): Likewise.
        * testsuite/ld-elf/loadaddr1.d: Update expected readelf output.
        * testsuite/ld-elf/noload-2.d: Likewise.
        * testsuite/ld-powerpc/vxworks2.sd: Likewise.
        * testsuite/ld-scripts/phdrs3a.d: Likewise.
        * testsuite/ld-scripts/size-2.d: Likewise.
        * testsuite/ld-elf/group.ld: Add program headers.
        * testsuite/ld-elf/overlay.d: Skip for SPU.
        * testsuite/ld-elf/flags1.d: Skip for RX.
        * testsuite/ld-elf/pr19162.d: Skip for HPPA64.
        * testsuite/ld-elf/pr19539.d: Skip for ALPHA.
        * testsuite/ld-scripts/empty-orphan.t: Update program headers.
        * testsuite/ld-scripts/size-2.t: Likewise.

-- 
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]