aboutsummaryrefslogtreecommitdiff
path: root/bfd/bfd-in2.h
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2014-07-08 15:24:06 +0930
committerAlan Modra <amodra@gmail.com>2014-07-08 19:42:03 +0930
commitbffebb6ba5b4ddbca7353626d682f9f974584dbf (patch)
tree093877e73fca460e1b1f378024e210b46ddc1f00 /bfd/bfd-in2.h
parent161ac41e03a819bc34e8c70a3fd1bc26f43858a2 (diff)
downloadgdb-bffebb6ba5b4ddbca7353626d682f9f974584dbf.zip
gdb-bffebb6ba5b4ddbca7353626d682f9f974584dbf.tar.gz
gdb-bffebb6ba5b4ddbca7353626d682f9f974584dbf.tar.bz2
Copy st_other for linker script symbol assignments
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.
Diffstat (limited to 'bfd/bfd-in2.h')
-rw-r--r--bfd/bfd-in2.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index ec19492..3886adc 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -7084,7 +7084,8 @@ typedef struct bfd_target
/* Indicate that we are only retrieving symbol values from this section. */
void (*_bfd_link_just_syms) (asection *, struct bfd_link_info *);
- /* Copy the symbol type of a linker hash table entry. */
+ /* Copy the symbol type and other attributes for a linker script
+ assignment of one symbol to another. */
#define bfd_copy_link_hash_symbol_type(b, t, f) \
BFD_SEND (b, _bfd_copy_link_hash_symbol_type, (b, t, f))
void (*_bfd_copy_link_hash_symbol_type)