summaryrefslogtreecommitdiff
path: root/bfd/elf64-alpha.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@bigpond.net.au>2006-12-06 07:25:29 +0000
committerAlan Modra <amodra@bigpond.net.au>2006-12-06 07:25:29 +0000
commit5e46e937b2f9ea0144a26237f9cfbec909cba495 (patch)
tree927d943b5f441a92ba40c8a2ef90c2509fa56f4e /bfd/elf64-alpha.c
parent13155c7a39ce334095fa274b26e377eb80590994 (diff)
downloadbinutils-redhat-5e46e937b2f9ea0144a26237f9cfbec909cba495.tar.gz
* elf64-alpha.c (elf64_alpha_merge_symbol_attribute): New function.
(elf_backend_merge_symbol_attribute): Define.
Diffstat (limited to 'bfd/elf64-alpha.c')
-rw-r--r--bfd/elf64-alpha.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/bfd/elf64-alpha.c b/bfd/elf64-alpha.c
index 1f7e546d33..5732823be6 100644
--- a/bfd/elf64-alpha.c
+++ b/bfd/elf64-alpha.c
@@ -2035,6 +2035,19 @@ elf64_alpha_adjust_dynamic_symbol (struct bfd_link_info *info,
return TRUE;
}
+/* Record STO_ALPHA_NOPV and STO_ALPHA_STD_GPLOAD. */
+
+static void
+elf64_alpha_merge_symbol_attribute (struct elf_link_hash_entry *h,
+ const Elf_Internal_Sym *isym,
+ bfd_boolean definition,
+ bfd_boolean dynamic)
+{
+ if (!dynamic && definition)
+ h->other = ((h->other & ELF_ST_VISIBILITY (-1))
+ | (isym->st_other & ~ELF_ST_VISIBILITY (-1)));
+}
+
/* Symbol versioning can create new symbols, and make our old symbols
indirect to the new ones. Consolidate the got and reloc information
in these situations. */
@@ -5271,6 +5284,8 @@ static const struct elf_size_info alpha_elf_size_info =
elf64_alpha_create_dynamic_sections
#define elf_backend_adjust_dynamic_symbol \
elf64_alpha_adjust_dynamic_symbol
+#define elf_backend_merge_symbol_attribute \
+ elf64_alpha_merge_symbol_attribute
#define elf_backend_always_size_sections \
elf64_alpha_always_size_sections
#define elf_backend_size_dynamic_sections \