This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
mn10300 reloc sorting
- From: Alexandre Oliva <aoliva at redhat dot com>
- To: binutils at sources dot redhat dot com
- Date: 09 Jun 2004 05:31:06 -0300
- Subject: mn10300 reloc sorting
- Organization: Red Hat Global Engineering Services Compiler Team
This patch arranges for dynamic relocations to be sorted as expected.
I'm checking it in.
Index: bfd/ChangeLog
from Alexandre Oliva <aoliva@redhat.com>
* elf-m10300.c (_bfd_mn10300_elf_reloc_type_class): New.
(elf_backend_reloc_type_class): New.
Index: bfd/elf-m10300.c
===================================================================
RCS file: /cvs/src/src/bfd/elf-m10300.c,v
retrieving revision 1.52
diff -u -p -r1.52 elf-m10300.c
--- bfd/elf-m10300.c 28 May 2004 21:33:35 -0000 1.52
+++ bfd/elf-m10300.c 9 Jun 2004 08:29:02 -0000
@@ -4866,6 +4866,25 @@ _bfd_mn10300_elf_finish_dynamic_sections
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
#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
--
Alexandre Oliva http://www.ic.unicamp.br/~oliva/
Red Hat Compiler Engineer aoliva@{redhat.com, gcc.gnu.org}
Free Software Evangelist oliva@{lsd.ic.unicamp.br, gnu.org}