aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2012-02-13 02:29:51 +0000
committerAlan Modra <amodra@gmail.com>2012-02-13 02:29:51 +0000
commit5efbbc4340d2cb348265e44627b71d7a37d8246c (patch)
treec7e2a3b8f97bd114431bed424dd3d13d40a5e54b
parentd5ded7aab1b95fc27cc3a9f345c99624eeea5fd8 (diff)
downloadgdb-5efbbc4340d2cb348265e44627b71d7a37d8246c.zip
gdb-5efbbc4340d2cb348265e44627b71d7a37d8246c.tar.gz
gdb-5efbbc4340d2cb348265e44627b71d7a37d8246c.tar.bz2
* 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.
-rw-r--r--bfd/ChangeLog7
-rw-r--r--bfd/elf32-m68hc11.c3
-rw-r--r--bfd/elf32-m68hc12.c3
-rw-r--r--bfd/elf32-m68hc1x.c16
-rw-r--r--bfd/elf32-m68hc1x.h6
5 files changed, 31 insertions, 4 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index f2e40dd..490120b 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,10 @@
+2012-02-13 Alan Modra <amodra@gmail.com>
+
+ * 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 <jan.kratochvil@redhat.com>
Nick Clifton <nickc@redhat.com>
diff --git a/bfd/elf32-m68hc11.c b/bfd/elf32-m68hc11.c
index 63d0786..49a58fb 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 1788856..2b16641 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 961dce4..e1da8b2 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 317371f..34b788e 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*);