bfd/
authorMaciej W. Rozycki <macro@linux-mips.org>
Tue, 16 Jun 2009 02:16:54 +0000 (02:16 +0000)
committerMaciej W. Rozycki <macro@linux-mips.org>
Tue, 16 Jun 2009 02:16:54 +0000 (02:16 +0000)
* elf32-vax.c (elf_vax_reloc_type_class): New function.
(elf_backend_reloc_type_class): Define.

bfd/ChangeLog
bfd/elf32-vax.c

index 211e0a5..1bc2789 100644 (file)
@@ -1,5 +1,10 @@
 2009-06-16  Maciej W. Rozycki  <macro@linux-mips.org>
 
+       * elf32-vax.c (elf_vax_reloc_type_class): New function.
+       (elf_backend_reloc_type_class): Define.
+
+2009-06-16  Maciej W. Rozycki  <macro@linux-mips.org>
+
        * elf32-vax.c (elf_vax_relocate_section): For symbol references
        from an executable to a shared library treat R_VAX_PC32
        relocations as R_VAX_PLT32 ones.
index 80c5046..f0ab1ef 100644 (file)
@@ -2075,6 +2075,22 @@ elf_vax_finish_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info)
   return TRUE;
 }
 
+static enum elf_reloc_type_class
+elf_vax_reloc_type_class (const Elf_Internal_Rela *rela)
+{
+  switch ((int) ELF32_R_TYPE (rela->r_info))
+    {
+    case R_VAX_RELATIVE:
+      return reloc_class_relative;
+    case R_VAX_JMP_SLOT:
+      return reloc_class_plt;
+    case R_VAX_COPY:
+      return reloc_class_copy;
+    default:
+      return reloc_class_normal;
+    }
+}
+
 #define TARGET_LITTLE_SYM              bfd_elf32_vax_vec
 #define TARGET_LITTLE_NAME             "elf32-vax"
 #define ELF_MACHINE_CODE               EM_VAX
@@ -2097,6 +2113,7 @@ elf_vax_finish_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info)
                                        elf_vax_finish_dynamic_symbol
 #define elf_backend_finish_dynamic_sections \
                                        elf_vax_finish_dynamic_sections
+#define elf_backend_reloc_type_class   elf_vax_reloc_type_class
 #define elf_backend_gc_mark_hook       elf_vax_gc_mark_hook
 #define elf_backend_gc_sweep_hook      elf_vax_gc_sweep_hook
 #define bfd_elf32_bfd_merge_private_bfd_data \