mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-09 04:21:49 +08:00
bffebb6ba5
This fixes a problem seen on powerpc64le ELFv2 when creating a function symbol alias with ld --defsym. st_other needs to be copied from the source symbol to the alias in order to set up the local entry offset for the alias. I decided to make this change in the generic ELF code rather than in elf64-ppc.c since it looks like other targets that use st_other bits might benefit too. bfd/ * elflink.c (_bfd_elf_copy_link_hash_symbol_type): Copy st_other bits from source to dest. * linker.c (_bfd_generic_copy_link_hash_symbol_type): Update comment. * targets.c (struct bfd_target <_bfd_copy_link_hash_symbol_type>): Likewise. * bfd-in2.h: Regenerate. ld/testsuite/ * ld-powerpc/defsym.s, * ld-powerpc/defsym.d: New test. * ld-powerpc/powerpc.exp: Run it.
20 lines
212 B
ArmAsm
20 lines
212 B
ArmAsm
.text
|
|
.globl _start
|
|
_start:
|
|
bl foo
|
|
bl bar
|
|
nop
|
|
|
|
.globl foo
|
|
.type foo,@function
|
|
foo:
|
|
addis 2,12,.TOC.-foo@ha
|
|
addi 2,2,.TOC.-foo@l
|
|
.localentry foo,.-foo
|
|
blr
|
|
.size foo,.-foo
|
|
|
|
.data
|
|
.dc.a foo
|
|
.dc.a bar
|