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

--- Comment #10 from Sourceware Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by H.J. Lu <[email protected]>:

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

commit 53902b30c66ad5edc95db93e8d5c1cb3c29d684d
Author: H.J. Lu <[email protected]>
Date:   Fri Jul 24 07:01:35 2026 +0800

    x86: Generate PLT32 relocation for ".long foo@PLT - .L4"

    LLVM assembler supports directives like ".long foo@PLT - .L4" for i386
    and x86-64.  Implement the same feature to generate PLT32 relocation
    for directives like ".long foo@PLT - .L4" so that PLT entries are used
    to resolve the PC32 relocation against function symbols.

    bfd/

            PR gas/34423
            * elf32-i386.c (elf_i386_reloc_type_lookup): Handle
            BFD_RELOC_386_PC32_TO_PLT32.
            * elf64-x86-64.c (x86_64_reloc_map): Add
            BFD_RELOC_X86_64_PC32_TO_PLT32.
            * reloc.c (bfd_reloc_code_real): Add BFD_RELOC_386_PC32_TO_PLT32
            and BFD_RELOC_X86_64_PC32_TO_PLT32.
            * bfd-in2.h: Regenerated.
            * libbfd.h: Likewise.

    gas/

            PR gas/34423
            * config/tc-i386.c (x86_cons): Return
            BFD_RELOC_X86_64_PC32_TO_PLT32 or BFD_RELOC_386_PC32_TO_PLT32
            for directives like ".long foo@PLT - .L4".
            (md_apply_fix): Compute addend for BFD_RELOC_386_PC32_TO_PLT32.
            (tc_gen_reloc): Handle BFD_RELOC_X86_64_PC32_TO_PLT32 and
            BFD_RELOC_386_PC32_TO_PLT32.  Compute addend like
            BFD_RELOC_32_PCREL for BFD_RELOC_X86_64_PC32_TO_PLT32.
            * testsuite/gas/i386/i386.exp: Run plt test.
            * testsuite/gas/i386/ilp32/reloc64.l: Updated.
            * testsuite/gas/i386/ilp32/reloc64.s: Replace ".long xtrn@plt - ."
            with ".long xtrn@plt - _start".
            * testsuite/gas/i386/ilp32/x86-64-jump-table.d: New file.
            * testsuite/gas/i386/plt.d: Likewise.
            * testsuite/gas/i386/plt.s: Likewise.
            * testsuite/gas/i386/reloc32.l: Updated.
            * testsuite/gas/i386/reloc32.s: Replace ".long xtrn@plt - ."
            with ".long xtrn@plt - _start".
            * testsuite/gas/i386/reloc64.l: Updated.
            * testsuite/gas/i386/reloc64.s: Replace ".long xtrn@plt - ." with
            ".long xtrn@plt - ptr".
            * testsuite/gas/i386/x86-64-jump-table.d: New file.
            * testsuite/gas/i386/x86-64-jump-table.d: Likewise.
            * testsuite/gas/i386/x86-64-jump-table.s: Likewise.
            * testsuite/gas/i386/x86-64.exp: Run x86-64-jump-table.

    ld/

            PR gas/34423
            * testsuite/ld-x86-64/pr34423.c: New file.
            * testsuite/ld-x86-64/x86-64-jump-table.s: Likewise.
            * testsuite/ld-x86-64/x86-64.exp: Run gas/34423 tests.

    Signed-off-by: H.J. Lu <[email protected]>

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

Reply via email to