* elf-m10300.c (_bfd_mn10300_elf_reloc_type_class): New.
authorAlexandre Oliva <aoliva@redhat.com>
Wed, 9 Jun 2004 08:31:28 +0000 (08:31 +0000)
committerAlexandre Oliva <aoliva@redhat.com>
Wed, 9 Jun 2004 08:31:28 +0000 (08:31 +0000)
(elf_backend_reloc_type_class): New.

bfd/ChangeLog
bfd/elf-m10300.c

index 8fda1ff07c2da2728ffc1312e71049bf9b1f58ef..4d2a84a9fd82ff1bc680207b2435b6df6dfbd559 100644 (file)
@@ -1,3 +1,8 @@
+2004-06-09  Alexandre Oliva  <aoliva@redhat.com>
+
+       * elf-m10300.c (_bfd_mn10300_elf_reloc_type_class): New.
+       (elf_backend_reloc_type_class): New.
+
 2004-06-08  Mark Kettenis  <kettenis@gnu.org>
 
        * configure.in (hppa*-*-netbsd*, hppa*-*-openbsd): Set COREFILE to
index d61df4635703063828bdcbb3c1e56456bd9e5ec5..9f5ab836a61e80a77b1fdaed71a8697c2741b937 100644 (file)
@@ -4866,6 +4866,25 @@ _bfd_mn10300_elf_finish_dynamic_sections (output_bfd, info)
   return TRUE;
 }
 
+/* Classify relocation types, such that combreloc can sort them
+   properly.  */
+
+static enum elf_reloc_type_class
+_bfd_mn10300_elf_reloc_type_class (const Elf_Internal_Rela *rela)
+{
+  switch ((int) ELF32_R_TYPE (rela->r_info))
+    {
+    case R_MN10300_RELATIVE:
+      return reloc_class_relative;
+    case R_MN10300_JMP_SLOT:
+      return reloc_class_plt;
+    case R_MN10300_COPY:
+      return reloc_class_copy;
+    default:
+      return reloc_class_normal;
+    }
+}
+
 #ifndef ELF_ARCH
 #define TARGET_LITTLE_SYM      bfd_elf32_mn10300_vec
 #define TARGET_LITTLE_NAME     "elf32-mn10300"
@@ -4914,6 +4933,9 @@ _bfd_mn10300_elf_finish_dynamic_sections (output_bfd, info)
 #define elf_backend_finish_dynamic_sections \
   _bfd_mn10300_elf_finish_dynamic_sections
 
+#define elf_backend_reloc_type_class \
+  _bfd_mn10300_elf_reloc_type_class
+
 #define elf_backend_want_got_plt       1
 #define elf_backend_plt_readonly       1
 #define elf_backend_want_plt_sym       0