[PATCH] Set proper OS ABI magic for ELF/m68k

Andreas Schwab schwab@suse.de
Thu Dec 12 17:32:00 GMT 2013


This follows what other architectures are doing.  Tested on
m68k-suse-linux.

Andreas.

	* elf32-m68k.c (elf_m68k_add_symbol_hook): New function.
	(elf_backend_add_symbol_hook): Define.
	(elf_backend_post_process_headers): Define.
---
 bfd/elf32-m68k.c | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/bfd/elf32-m68k.c b/bfd/elf32-m68k.c
index 4e033ca..822ba20 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 ATTRIBUTE_UNUSED,
+			  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
@@ -4874,6 +4894,9 @@ 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_post_process_headers \
+  					_bfd_elf_set_osabi
 
 #define elf_backend_can_gc_sections 1
 #define elf_backend_can_refcount 1
-- 
1.8.5.1


-- 
Andreas Schwab, SUSE Labs, schwab@suse.de
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE  1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."



More information about the Binutils mailing list