aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@suse.de>2013-12-11 16:47:43 +0100
committerAndreas Schwab <schwab@suse.de>2013-12-19 12:27:19 +0100
commitf6ec89e7bc631c0bd48cb6c4b960b29266e19550 (patch)
tree172118495a4c320f35087c3b11d387d61c512d70
parent8356f2d009e20e5ca567f5f9456a40f75e9560dc (diff)
downloadgdb-f6ec89e7bc631c0bd48cb6c4b960b29266e19550.zip
gdb-f6ec89e7bc631c0bd48cb6c4b960b29266e19550.tar.gz
gdb-f6ec89e7bc631c0bd48cb6c4b960b29266e19550.tar.bz2
Set proper OS ABI magic for ELF/m68k
* elf32-m68k.c (elf_m68k_add_symbol_hook): New function. (elf_backend_add_symbol_hook): Define.
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elf32-m68k.c21
2 files changed, 26 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 62fc765..28d852c 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2013-12-19 Andreas Schwab <schwab@suse.de>
+
+ * elf32-m68k.c (elf_m68k_add_symbol_hook): New function.
+ (elf_backend_add_symbol_hook): Define.
+
2013-12-18 Nick Clifton <nickc@redhat.com>
* peXXigen.c (rsrc_print_section): Use ptrdiff_t as the type for
diff --git a/bfd/elf32-m68k.c b/bfd/elf32-m68k.c
index d8e3be1..60e4d93 100644
--- a/bfd/elf32-m68k.c
+++ b/bfd/elf32-m68k.c
@@ -4831,6 +4831,26 @@ elf_m68k_grok_psinfo (bfd *abfd, Elf_Internal_Note *note)
return TRUE;
}
+/* Hook called by the linker routine which adds symbols from an object
+ file. */
+
+static bfd_boolean
+elf_m68k_add_symbol_hook (bfd *abfd,
+ struct bfd_link_info *info,
+ Elf_Internal_Sym *sym,
+ const char **namep ATTRIBUTE_UNUSED,
+ flagword *flagsp ATTRIBUTE_UNUSED,
+ asection **secp ATTRIBUTE_UNUSED,
+ bfd_vma *valp ATTRIBUTE_UNUSED)
+{
+ if ((abfd->flags & DYNAMIC) == 0
+ && (ELF_ST_TYPE (sym->st_info) == STT_GNU_IFUNC
+ || ELF_ST_BIND (sym->st_info) == STB_GNU_UNIQUE))
+ elf_tdata (info->output_bfd)->has_gnu_symbols = TRUE;
+
+ return TRUE;
+}
+
#define TARGET_BIG_SYM bfd_elf32_m68k_vec
#define TARGET_BIG_NAME "elf32-m68k"
#define ELF_MACHINE_CODE EM_68K
@@ -4872,6 +4892,7 @@ elf_m68k_grok_psinfo (bfd *abfd, Elf_Internal_Note *note)
#define elf_backend_object_p elf32_m68k_object_p
#define elf_backend_grok_prstatus elf_m68k_grok_prstatus
#define elf_backend_grok_psinfo elf_m68k_grok_psinfo
+#define elf_backend_add_symbol_hook elf_m68k_add_symbol_hook
#define elf_backend_can_gc_sections 1
#define elf_backend_can_refcount 1