]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit
x86: Report expected register for elf_x86_tls_error_indirect_call
authorH.J. Lu <hjl.tools@gmail.com>
Wed, 28 Aug 2024 12:03:04 +0000 (05:03 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Wed, 28 Aug 2024 12:56:25 +0000 (05:56 -0700)
commitc9652a062fe1a44ed1dd7eae53e847a85b8911e5
tree9fef328d9d69c58d8ffe62a760a57180c1c41878
parenta2776c438c644e50454b0e4ec91d142d7748589b
x86: Report expected register for elf_x86_tls_error_indirect_call

Since R_386_TLS_DESC_CALL can only be used with

call *variable@TLSCALL(%eax)

and R_X86_64_TLSDESC_CALL can only be used with

call *variable@TLSCALL(%rax)

update TLS transition error report to display the expected register in
indirect CALL.

bfd/

PR ld/32017
* elfxx-x86.c (_bfd_x86_elf_link_hash_table_create): Initialize
the ax_register field.
(_bfd_x86_elf_link_report_tls_transition_error): Report the
expected register in elf_x86_tls_error_indirect_call error.
* elfxx-x86.h (elf_x86_link_hash_table): Add ax_register.

ld/

PR ld/32017
* testsuite/ld-i386/tlsgdesc2.d: Updated.
* testsuite/ld-i386/tlsgdesc2.s: Change jmp to call via ECX.
* testsuite/ld-x86-64/tlsdesc4.d: Updated.
* testsuite/ld-x86-64/tlsdesc4.s: Change jmp to call via RCX.

Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
bfd/elfxx-x86.c
bfd/elfxx-x86.h
ld/testsuite/ld-i386/tlsgdesc2.d
ld/testsuite/ld-i386/tlsgdesc2.s
ld/testsuite/ld-x86-64/tlsdesc4.d
ld/testsuite/ld-x86-64/tlsdesc4.s