[LV] [PATCH] VAX/ELF: Provide correct relocation classes

Maciej W. Rozycki macro at linux-mips.org
Fri Jun 5 02:15:52 CEST 2009


Hello,

 Class annotation for VAX relocations is missing.  Here's an obvious fix.

 Regression-tested successfully with the vax-linux target.

2009-06-04  Maciej W. Rozycki  <macro at linux-mips.org>

	* elf32-vax.c (elf_vax_reloc_type_class): New function.
	(elf_backend_reloc_type_class): Define.

 OK to apply?

  Maciej

binutils-2.19.1-vax-reloc-class.patch
diff -up --recursive --new-file binutils-2.19.1.macro/bfd/elf32-vax.c binutils-2.19.1/bfd/elf32-vax.c
--- binutils-2.19.1.macro/bfd/elf32-vax.c	2008-01-11 09:07:03.000000000 +0000
+++ binutils-2.19.1/bfd/elf32-vax.c	2009-05-05 05:35:06.000000000 +0000
@@ -2068,6 +2068,22 @@ elf_vax_finish_dynamic_sections (bfd *ou
   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
@@ -2090,6 +2106,7 @@ elf_vax_finish_dynamic_sections (bfd *ou
 					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 \


_______________________________________________
Linux-Vax mailing list
Linux-Vax at mail.pergamentum.com
http://mail.pergamentum.com/mailman/listinfo/linux-vax




More information about the Vax-linux mailing list