d570a8
--- a/bfd/elf-bfd.h	2015-01-20 14:18:26.027084406 -0700
d570a8
+++ b/bfd/elf-bfd.h	2015-01-20 14:29:25.280023651 -0700
d570a8
@@ -1130,8 +1130,13 @@
d570a8
     (char *);
d570a8
 
d570a8
   /* This function returns class of a reloc type.  */
d570a8
+#if __PPC__
d570a8
   enum elf_reloc_type_class (*elf_backend_reloc_type_class)
d570a8
   (const struct bfd_link_info *, const asection *, const Elf_Internal_Rela *);
d570a8
+#else
d570a8
+  enum elf_reloc_type_class (*elf_backend_reloc_type_class)
d570a8
+  (const Elf_Internal_Rela *);
d570a8
+#endif
d570a8
 
d570a8
   /* This function, if defined, removes information about discarded functions
d570a8
      from other sections which mention them.  */
d570a8
@@ -1789,8 +1794,13 @@
d570a8
   (bfd *input_bfd, struct bfd_link_info *info, asection *eh_frame_section);
d570a8
 
d570a8
 extern enum elf_reloc_type_class _bfd_elf_reloc_type_class
d570a8
+#if __PPC__
d570a8
   (const struct bfd_link_info *, const asection *,
d570a8
    const Elf_Internal_Rela *);
d570a8
+#else
d570a8
+ (const Elf_Internal_Rela *);
d570a8
+#endif
d570a8
+
d570a8
 extern bfd_vma _bfd_elf_rela_local_sym
d570a8
   (bfd *, Elf_Internal_Sym *, asection **, Elf_Internal_Rela *);
d570a8
 extern bfd_vma _bfd_elf_rel_local_sym
d570a8
--- a/bfd/elflink.c	2015-01-20 14:18:26.053084125 -0700
d570a8
+++ b/bfd/elflink.c	2015-01-20 14:32:18.350170081 -0700
d570a8
@@ -8496,7 +8496,11 @@
d570a8
 	    struct elf_link_sort_rela *s = (struct elf_link_sort_rela *) p;
d570a8
 
d570a8
 	    (*swap_in) (abfd, erel, s->rela);
d570a8
+#if __PPC__
d570a8
 	    s->type = (*bed->elf_backend_reloc_type_class) (info, o, s->rela);
d570a8
+#else
d570a8
+            s->type = (*bed->elf_backend_reloc_type_class) (s->rela);
d570a8
+#endif
d570a8
 	    s->u.sym_mask = r_sym_mask;
d570a8
 	    p += sort_elt;
d570a8
 	    erel += ext_size;
d570a8
--- binutils-2.23.52.0.1/bfd/elf.c	2015-01-29 10:25:53.120250272 -0700
d570a8
+++ srcroot/bfd/elf.c	2015-01-29 15:53:56.300896880 -0700
d570a8
@@ -9876,10 +9876,14 @@
d570a8
   return num_phdrs;
d570a8
 }
d570a8
 
d570a8
-enum elf_reloc_type_class
d570a8
-_bfd_elf_reloc_type_class (const struct bfd_link_info *info ATTRIBUTE_UNUSED,
d570a8
-			   const asection *rel_sec ATTRIBUTE_UNUSED,
d570a8
-			   const Elf_Internal_Rela *rela ATTRIBUTE_UNUSED)
d570a8
+extern enum elf_reloc_type_class _bfd_elf_reloc_type_class
d570a8
+#if __PPC__
d570a8
+  (const struct bfd_link_info *info ATTRIBUTE_UNUSED,
d570a8
+   const asection *rel_sec ATTRIBUTE_UNUSED,
d570a8
+   const Elf_Internal_Rela *rela ATTRIBUTE_UNUSED)
d570a8
+#else
d570a8
+ (const Elf_Internal_Rela *rela ATTRIBUTE_UNUSED)
d570a8
+#endif
d570a8
 {
d570a8
   return reloc_class_normal;
d570a8
 }