bug-binutils
[Top][All Lists]
Advanced

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

[Bug binutils/27746] or1k bfd overflow in plt reloc argument


From: cvs-commit at gcc dot gnu.org
Subject: [Bug binutils/27746] or1k bfd overflow in plt reloc argument
Date: Thu, 06 May 2021 11:53:10 +0000

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

--- Comment #1 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot 
gnu.org> ---
The or1k-large-fixes branch has been updated by Stafford Horne
<shorne@sourceware.org>:

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

commit 284a1309021a0ef4c29f198470d95652f02b13f0
Author: Stafford Horne <shorne@gmail.com>
Date:   Thu May 6 20:51:25 2021 +0900

    or1k: Support large plt_relocs when generating plt entries

    The current PLT generation code will generate invalid code when the PLT
    relocation offset exceeds 64k.  This fixes the issue by detecting large
    plt_reloc offsets and generare code sequences to create larger plt
    relocations.

    The "large" plt code needs 2 extra instructions to create 32-bit offsets.

    bfd/ChangeLog:

            PR 27746
            * elf32-or1k.c (PLT_ENTRY_SIZE_LARGE, PLT_MAX_INSN_COUNT,
            OR1K_ADD, OR1K_ORI): New macros to help with plt creation.
            (elf_or1k_link_hash_table): New field plt_count.
            (elf_or1k_link_hash_entry): New field plt_index.
            (elf_or1k_plt_entry_size): New function.
            (or1k_write_plt_entry): Update to support variable size PLTs.
            (or1k_elf_finish_dynamic_sections): Use new or1k_write_plt_entry
            API.
            (or1k_elf_finish_dynamic_symbol): Update to write large PLTs
            when needed.
            (allocate_dynrelocs): Use elf_or1k_plt_entry_size to account for
            PLT size.

    ld/ChangeLog:

            PR 27746
            testsuite/ld-or1k/or1k.exp (or1kplttests): Add tests for linking
            along with gotha() relocations.
            testsuite/ld-or1k/gotha1.dd: New file.
            testsuite/ld-or1k/gotha1.s: New file.
            testsuite/ld-or1k/gotha2.dd: New file.
            testsuite/ld-or1k/gotha2.s: New file
            testsuite/ld-or1k/pltlib.s (x): Define size to avoid link
            failure.

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