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.
