+1999-06-10 Jakub Jelinek <jj@ultra.linux.cz>
+
+ * elf64_sparc.c (sparc64_elf_relocate_section): Use R_SPARC_max_std
+ instead of R_SPARC_max.
+ (sparc64_elf_info_to_howto): Likewise.
+ * elf32_sparc.c (elf32_sparc_relocate_section): Likewise.
+ (elf32_sparc_info_to_howto): Likewise; handle vtable relocations.
+
1999-06-07 Richard Henderson <rth@cygnus.com>
* section.c (_bfd_strip_section_from_output): Remove output
arelent *cache_ptr;
Elf_Internal_Rela *dst;
{
- BFD_ASSERT (ELF32_R_TYPE(dst->r_info) < (unsigned int) R_SPARC_max);
- cache_ptr->howto = &_bfd_sparc_elf_howto_table[ELF32_R_TYPE(dst->r_info)];
+ switch (ELF32_R_TYPE(dst->r_info))
+ {
+ case R_SPARC_GNU_VTINHERIT:
+ cache_ptr->howto = &elf32_sparc_vtinherit_howto;
+ break;
+
+ case R_SPARC_GNU_VTENTRY:
+ cache_ptr->howto = &elf32_sparc_vtentry_howto;
+ break;
+
+ default:
+ BFD_ASSERT (ELF32_R_TYPE(dst->r_info) < (unsigned int) R_SPARC_max_std);
+ cache_ptr->howto = &_bfd_sparc_elf_howto_table[ELF32_R_TYPE(dst->r_info)];
+ }
}
\f
/* For unsupported relocs. */
|| r_type == R_SPARC_GNU_VTENTRY)
continue;
- if (r_type < 0 || r_type >= (int) R_SPARC_max)
+ if (r_type < 0 || r_type >= (int) R_SPARC_max_std)
{
bfd_set_error (bfd_error_bad_value);
return false;
arelent *cache_ptr;
Elf64_Internal_Rela *dst;
{
- BFD_ASSERT (ELF64_R_TYPE (dst->r_info) < (unsigned int) R_SPARC_max);
+ BFD_ASSERT (ELF64_R_TYPE (dst->r_info) < (unsigned int) R_SPARC_max_std);
cache_ptr->howto = &sparc64_elf_howto_table[ELF64_R_TYPE (dst->r_info)];
}
\f
bfd_reloc_status_type r;
r_type = ELF64_R_TYPE (rel->r_info);
- if (r_type < 0 || r_type >= (int) R_SPARC_max)
+ if (r_type < 0 || r_type >= (int) R_SPARC_max_std)
{
bfd_set_error (bfd_error_bad_value);
return false;