return;
}
+ if (ptr->howto == NULL)
+ {
+ *failedp = TRUE;
+ return;
+ }
+
src_rela.r_offset = ptr->address + addr_offset;
src_rela.r_info = ELF_R_INFO (n, ptr->howto->type);
src_rela.r_addend = ptr->addend;
{
_bfd_error_handler
/* xgettext:c-format */
- (_("%B: version count (%ld) does not match symbol count (%ld)"),
+ (_("%B: version count (%Ld) does not match symbol count (%ld)"),
abfd,
- (long) (verhdr->sh_size / sizeof (Elf_External_Versym)),
+ verhdr->sh_size / sizeof (Elf_External_Versym),
symcount);
/* Slurp in the symbols without the version information,
relent->address = rela.r_offset - asect->vma;
if (ELF_R_SYM (rela.r_info) == STN_UNDEF)
+ /* FIXME: This and the error case below mean that we have a
+ symbol on relocs that is not elf_symbol_type. */
relent->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr;
else if (ELF_R_SYM (rela.r_info) > symcount)
{
_bfd_error_handler
/* xgettext:c-format */
(_("%B(%A): relocation %d has invalid symbol index %ld"),
- abfd, asect, i, ELF_R_SYM (rela.r_info));
+ abfd, asect, i, (long) ELF_R_SYM (rela.r_info));
relent->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr;
}
else