From 5e46e937b2f9ea0144a26237f9cfbec909cba495 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Wed, 6 Dec 2006 07:25:29 +0000 Subject: [PATCH] * elf64-alpha.c (elf64_alpha_merge_symbol_attribute): New function. (elf_backend_merge_symbol_attribute): Define. --- bfd/ChangeLog | 5 +++++ bfd/elf64-alpha.c | 15 +++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 92cfcd6e2..8b1911c71 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2006-12-06 Alan Modra + + * elf64-alpha.c (elf64_alpha_merge_symbol_attribute): New function. + (elf_backend_merge_symbol_attribute): Define. + 2006-12-04 Jan Beulich * elflink.c (_bfd_elf_link_create_dynamic_sections): Don't create diff --git a/bfd/elf64-alpha.c b/bfd/elf64-alpha.c index 1f7e546d3..5732823be 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 \ -- 2.11.4.GIT