From 5efbbc4340d2cb348265e44627b71d7a37d8246c Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Mon, 13 Feb 2012 02:29:51 +0000 Subject: [PATCH] * elf32-m68hc1x.c (elf32_m68hc11_merge_symbol_attribute): New function. * elf32-m68hc1x.h (elf32_m68hc11_merge_symbol_attribute): Declare. * elf32-m68hc11.c (elf_backend_merge_symbol_attribute): Define. * elf32-m68hc12.c (elf_backend_merge_symbol_attribute): Define. --- bfd/ChangeLog | 7 +++++++ bfd/elf32-m68hc11.c | 3 ++- bfd/elf32-m68hc12.c | 3 ++- bfd/elf32-m68hc1x.c | 16 +++++++++++++++- bfd/elf32-m68hc1x.h | 6 +++++- 5 files changed, 31 insertions(+), 4 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index f2e40dda0f1..490120baa54 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,10 @@ +2012-02-13 Alan Modra + + * elf32-m68hc1x.c (elf32_m68hc11_merge_symbol_attribute): New function. + * elf32-m68hc1x.h (elf32_m68hc11_merge_symbol_attribute): Declare. + * elf32-m68hc11.c (elf_backend_merge_symbol_attribute): Define. + * elf32-m68hc12.c (elf_backend_merge_symbol_attribute): Define. + 2012-02-11 Jan Kratochvil Nick Clifton diff --git a/bfd/elf32-m68hc11.c b/bfd/elf32-m68hc11.c index 63d0786bb60..49a58fb0c5c 100644 --- a/bfd/elf32-m68hc11.c +++ b/bfd/elf32-m68hc11.c @@ -1,5 +1,5 @@ /* Motorola 68HC11-specific support for 32-bit ELF - Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2010 + Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2010, 2012 Free Software Foundation, Inc. Contributed by Stephane Carrez (stcarrez@nerim.fr) (Heavily copied from the D10V port by Martin Hunt (hunt@cygnus.com)) @@ -1302,6 +1302,7 @@ static const struct bfd_elf_special_section elf32_m68hc11_special_sections[] = #define elf_backend_final_write_processing 0 #define elf_backend_can_gc_sections 1 #define elf_backend_special_sections elf32_m68hc11_special_sections +#define elf_backend_merge_symbol_attribute elf32_m68hc11_merge_symbol_attribute #define bfd_elf32_bfd_link_hash_table_create \ m68hc11_elf_bfd_link_hash_table_create diff --git a/bfd/elf32-m68hc12.c b/bfd/elf32-m68hc12.c index 1788856f8f5..2b166410087 100644 --- a/bfd/elf32-m68hc12.c +++ b/bfd/elf32-m68hc12.c @@ -1,5 +1,5 @@ /* Motorola 68HC12-specific support for 32-bit ELF - Copyright 1999, 2000, 2002, 2003, 2004, 2005, 2006, 2007 + Copyright 1999, 2000, 2002, 2003, 2004, 2005, 2006, 2007, 2010, 2012 Free Software Foundation, Inc. Contributed by Stephane Carrez (stcarrez@nerim.fr) (Heavily copied from the D10V port by Martin Hunt (hunt@cygnus.com)) @@ -581,6 +581,7 @@ static const struct bfd_elf_special_section elf32_m68hc12_special_sections[] = #define elf_backend_special_sections elf32_m68hc12_special_sections #define elf_backend_post_process_headers elf32_m68hc11_post_process_headers #define elf_backend_add_symbol_hook elf32_m68hc11_add_symbol_hook +#define elf_backend_merge_symbol_attribute elf32_m68hc11_merge_symbol_attribute #define bfd_elf32_bfd_link_hash_table_create \ m68hc12_elf_bfd_link_hash_table_create diff --git a/bfd/elf32-m68hc1x.c b/bfd/elf32-m68hc1x.c index 961dce482e6..e1da8b286cd 100644 --- a/bfd/elf32-m68hc1x.c +++ b/bfd/elf32-m68hc1x.c @@ -1,6 +1,6 @@ /* Motorola 68HC11/HC12-specific support for 32-bit ELF Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, - 2009, 2010, 2011 Free Software Foundation, Inc. + 2009, 2010, 2011, 2012 Free Software Foundation, Inc. Contributed by Stephane Carrez (stcarrez@nerim.fr) This file is part of BFD, the Binary File Descriptor library. @@ -214,6 +214,20 @@ elf32_m68hc11_add_symbol_hook (bfd *abfd, struct bfd_link_info *info, return TRUE; } +/* Merge non-visibility st_other attributes, STO_M68HC12_FAR and + STO_M68HC12_INTERRUPT. */ + +void +elf32_m68hc11_merge_symbol_attribute (struct elf_link_hash_entry *h, + const Elf_Internal_Sym *isym, + bfd_boolean definition, + bfd_boolean dynamic ATTRIBUTE_UNUSED) +{ + if (definition) + h->other = ((isym->st_other & ~ELF_ST_VISIBILITY (-1)) + | ELF_ST_VISIBILITY (h->other)); +} + /* External entry points for sizing and building linker stubs. */ /* Set up various things so that we can make a list of input sections diff --git a/bfd/elf32-m68hc1x.h b/bfd/elf32-m68hc1x.h index 317371f6f35..34b788e7641 100644 --- a/bfd/elf32-m68hc1x.h +++ b/bfd/elf32-m68hc1x.h @@ -1,5 +1,5 @@ /* Motorola 68HC11/68HC12-specific support for 32-bit ELF - Copyright 2003, 2004, 2005, 2006, 2007, 2009, 2010 + Copyright 2003, 2004, 2005, 2006, 2007, 2009, 2010, 2012 Free Software Foundation, Inc. Contributed by Stephane Carrez (stcarrez@nerim.fr) @@ -176,6 +176,10 @@ bfd_boolean elf32_m68hc11_add_symbol_hook flagword *flagsp, asection **secp, bfd_vma *valp); +void elf32_m68hc11_merge_symbol_attribute + (struct elf_link_hash_entry *, const Elf_Internal_Sym *, + bfd_boolean, bfd_boolean); + /* Tweak the OSABI field of the elf header. */ extern void elf32_m68hc11_post_process_headers (bfd*, struct bfd_link_info*); -- 2.30.2