[Top][All Lists]

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

[Bug ld/20995] Read-only data in ELF libraries may be remapped writable

From: cvs-commit at gcc dot gnu.org
Subject: [Bug ld/20995] Read-only data in ELF libraries may be remapped writable at runtime
Date: Tue, 28 Feb 2017 20:53:50 +0000


--- Comment #31 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot 
gnu.org> ---
The binutils-2_28-branch branch has been updated by Alan Modra


commit cc6b110b92572318bd32acf914b0fce9c4bb0a6f
Author: Alan Modra <address@hidden>
Date:   Tue Feb 28 10:38:51 2017 +1030

    Nios2 dynobj handling fixes

    A number of places in elf32-nios.c created dynamic sections but didn't
    set the hash table dynobj.  That meant we could have duplicate dynamic
    sections connected to a number of bfds, so size_dynamic_sections
    didn't properly discard or allocate contents.

    Also, the entire set of dynamic sections was created in check_relocs
    on seeing GOT relocs, when only .got related sections are needed,
    probably done to hide segfaults later in finish_dynamic_sections.

    The patch fixes these issues and makes the assembler emit errors when
    nios2 lacks the necessary pc-relative relocs for subtraction
    expressions, rather than silently generating bad code.
    eg. ld-elf/merge.  I've also tidied uses of elf32_nios2_hash_table and

        PR 20995
        * elf32-nios2.c (nios2_elf32_relocate_section): Use htab
        rather than elf32_nios2_hash_table or elf_hash_table.
        (create_got_section): Likewise.
        (nios2_elf32_finish_dynamic_symbol): Likewise.
        (nios2_elf32_adjust_dynamic_symbol): Likewise.
        (nios2_elf32_size_dynamic_sections): Likewise.
        (nios2_elf32_check_relocs): Delete dynobj, sgot, and srelgot
        vars.  Use htab equivalents directly instead.  Don't create
        all dynamic sections on needing just the GOT.  Use a goto
        rather than a fall-through with reloc test.  Ensure
        htab->dynobj is set when making dynamic sreloc section.
        (nios2_elf32_finish_dynamic_sections): Delete dynobj, use htab
        equivalent directly instead.  Don't segfault on looking for
        .dynamic when dynamic sections have not been created.  Don't
        segfault on .got.plt being discarded.
        (nios2_elf32_size_dynamic_sections): Delete plt and got vars.
        Don't set "relocs" on .rela.plt.  Do handle .sbss.  Delete
        fixme and another not so relevant comment.
        (nios2_elf_add_symbol_hook): Delete dynobj var.  If not
        already set, set hash table dynobj on creating .sbss.
        * config/tc-nios2.h (TC_FORCE_RELOCATION_SUB_LOCAL): Define.
        * testsuite/ld-elf/merge.d: xfail for nios.

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]