bug-binutils
[Top][All Lists]
Advanced

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

[Bug ld/22115] ld: read-only segment has dynamic relocations.


From: cvs-commit at gcc dot gnu.org
Subject: [Bug ld/22115] ld: read-only segment has dynamic relocations.
Date: Sat, 09 Sep 2017 12:06:26 +0000

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

--- Comment #1 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot 
gnu.org> ---
The master branch has been updated by H.J. Lu <address@hidden>:

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

commit 0a27fed72d4190cc70025c671b5133e6c58d9c09
Author: H.J. Lu <address@hidden>
Date:   Sat Sep 9 05:05:16 2017 -0700

    x86: Properly handle __ehdr_start

    After _bfd_i386_elf_convert_load and _bfd_x86_64_elf_convert_load are
    removed, elf_i386_convert_load_reloc and elf_x86_64_convert_load_reloc
    see __ehdr_start as an undefined symbol when they are called from
    check_relocs to convert GOT relocations against local symbols.  But
    __ehdr_start will be defined as a hidden symbol by linker at the later
    stage if it is referenced.  This patch marks __ehdr_start as a defined
    local symbol at the start of check_relocs if it is referenced and not
    defined.

    bfd/

        PR ld/22115
        * elf32-i386.c (elf_i386_convert_load_reloc): Check linker_def.
        Don't use UNDEFINED_WEAK_RESOLVED_TO_ZERO.
        * elf64-x86-64.c (elf_x86_64_convert_load_reloc): Check
        linker_def.  Don't use UNDEFINED_WEAK_RESOLVED_TO_ZERO.
        * elfxx-x86.c (_bfd_x86_elf_link_check_relocs): Set local_ref
        and linker_def on __ehdr_start if it is referenced and not
        defined.
        (_bfd_x86_elf_link_symbol_references_local): Also set local_ref
        and return TRUE when building executable, if a symbol has
        non-GOT/non-PLT relocations in text section or there is no
        dynamic linker.
        * elfxx-x86.h (elf_x86_link_hash_entry): Add linker_def.

    ld/

        PR ld/22115
        * ld-i386/i386.exp: Run PR ld/22115 tests,
        * ld/testsuite/ld-x86-64/x86-64.exp: Likewise.
        * testsuite/ld-i386/pr22115-1.s: New file.
        * testsuite/ld-i386/pr22115-1a.d: Likewise.
        * testsuite/ld-i386/pr22115-1b.d: Likewise.
        * testsuite/ld-i386/pr22115-1c.d: Likewise.
        * testsuite/ld-i386/pr22115-1d.d: Likewise.
        * testsuite/ld-x86-64/pr22115-1.s: Likewise.
        * testsuite/ld-x86-64/pr22115-1a-x32.d: Likewise.
        * testsuite/ld-x86-64/pr22115-1a.d: Likewise.
        * testsuite/ld-x86-64/pr22115-1b-x32.d: Likewise.
        * testsuite/ld-x86-64/pr22115-1b.d: Likewise.
        * testsuite/ld-x86-64/pr22115-1c-x32.d: Likewise.
        * testsuite/ld-x86-64/pr22115-1c.d: Likewise.
        * testsuite/ld-x86-64/pr22115-1d-x32.d: Likewise.
        * testsuite/ld-x86-64/pr22115-1d.d: 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]