* elf-bfd.h (struct elf_backend_data): New function pointer member
elf_backend_merge_symbol_attribute. * elflink.h (elf_link_add_object_symbols): Adjust call to elf_backend_merge_symbol_attribute if the backend defined it. * elfxx-target.h (elf_backend_merge_symbol_attribute): New macro. (elfNN_bed): Add that to the initializer.
This commit is contained in:
parent
b614a7028d
commit
9bf7216d00
4 changed files with 22 additions and 0 deletions
|
@ -1,3 +1,12 @@
|
|||
2003-10-14 Kaz Kojima <kkojima@rr.iij4u.or.jp>
|
||||
|
||||
* elf-bfd.h (struct elf_backend_data): New function pointer member
|
||||
elf_backend_merge_symbol_attribute.
|
||||
* elflink.h (elf_link_add_object_symbols): Adjust call to
|
||||
elf_backend_merge_symbol_attribute if the backend defined it.
|
||||
* elfxx-target.h (elf_backend_merge_symbol_attribute): New macro.
|
||||
(elfNN_bed): Add that to the initializer.
|
||||
|
||||
2003-10-14 Bob Wilson <bob.wilson@acm.org>
|
||||
|
||||
* elf32-xtensa.c (get_is_linkonce_section): Delete.
|
||||
|
|
|
@ -813,6 +813,11 @@ struct elf_backend_data
|
|||
void (*elf_backend_hide_symbol)
|
||||
(struct bfd_link_info *, struct elf_link_hash_entry *, bfd_boolean);
|
||||
|
||||
/* Merge the backend specific symbol attribute. */
|
||||
void (*elf_backend_merge_symbol_attribute)
|
||||
(struct elf_link_hash_entry *, const Elf_Internal_Sym *, bfd_boolean,
|
||||
bfd_boolean);
|
||||
|
||||
/* Emit relocations. Overrides default routine for emitting relocs,
|
||||
except during a relocatable link, or if all relocs are being emitted. */
|
||||
bfd_boolean (*elf_backend_emit_relocs)
|
||||
|
|
|
@ -1261,6 +1261,10 @@ elf_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info)
|
|||
/* If st_other has a processor-specific meaning, specific
|
||||
code might be needed here. We never merge the visibility
|
||||
attribute with the one from a dynamic object. */
|
||||
if (bed->elf_backend_merge_symbol_attribute)
|
||||
(*bed->elf_backend_merge_symbol_attribute) (h, isym, definition,
|
||||
dynamic);
|
||||
|
||||
if (isym->st_other != 0 && !dynamic)
|
||||
{
|
||||
unsigned char hvis, symvis, other, nvis;
|
||||
|
|
|
@ -361,6 +361,9 @@
|
|||
#ifndef elf_backend_hide_symbol
|
||||
#define elf_backend_hide_symbol _bfd_elf_link_hash_hide_symbol
|
||||
#endif
|
||||
#ifndef elf_backend_merge_symbol_attribute
|
||||
#define elf_backend_merge_symbol_attribute NULL
|
||||
#endif
|
||||
#ifndef elf_backend_emit_relocs
|
||||
#define elf_backend_emit_relocs NULL
|
||||
#endif
|
||||
|
@ -483,6 +486,7 @@ static const struct elf_backend_data elfNN_bed =
|
|||
elf_backend_output_arch_syms,
|
||||
elf_backend_copy_indirect_symbol,
|
||||
elf_backend_hide_symbol,
|
||||
elf_backend_merge_symbol_attribute,
|
||||
elf_backend_emit_relocs,
|
||||
elf_backend_count_relocs,
|
||||
elf_backend_grok_prstatus,
|
||||
|
|
Loading…
Reference in a new issue