struct elf32_avr_link_hash_table *htab;
bfd_size_type amt = sizeof (*htab);
- htab = bfd_malloc (amt);
+ htab = bfd_zmalloc (amt);
if (htab == NULL)
return NULL;
sizeof (struct elf32_avr_stub_hash_entry)))
return NULL;
- htab->stub_bfd = NULL;
- htab->stub_sec = NULL;
-
- /* Initialize the address mapping table. */
- htab->amt_stub_offsets = NULL;
- htab->amt_destination_addr = NULL;
- htab->amt_entry_cnt = 0;
- htab->amt_max_entry_cnt = 0;
-
return &htab->etab.root;
}
free (htab->amt_destination_addr);
bfd_hash_table_free (&htab->bstab);
- _bfd_generic_link_hash_table_free (btab);
+ _bfd_elf_link_hash_table_free (btab);
}
/* Calculates the effective distance of a pc relative jump/call. */
irel = elf_section_data (isec)->relocs;
/* PR 12161: Read in the relocs for this section if necessary. */
if (irel == NULL)
- irel = _bfd_elf_link_read_relocs (abfd, isec, NULL, NULL, FALSE);
+ irel = _bfd_elf_link_read_relocs (abfd, isec, NULL, NULL, TRUE);
for (irelend = irel + isec->reloc_count;
irel < irelend;
/* else...Reference symbol is extern. No need for adjusting
the addend. */
}
-
- if (elf_section_data (isec)->relocs == NULL)
- free (irelend - isec->reloc_count);
}
}
struct elf32_avr_link_hash_table *htab;
/* If 'shrinkable' is FALSE, do not shrink by deleting bytes while
- relaxing. Such shrinking can cause issues for the sections such
- as .vectors and .jumptables. Instead the unused bytes should be
+ relaxing. Such shrinking can cause issues for the sections such
+ as .vectors and .jumptables. Instead the unused bytes should be
filled with nop instructions. */
bfd_boolean shrinkable = TRUE;
distance_short_enough = 1;
/* If shrinkable, then we can check for a range of distance which
is two bytes farther on both the directions because the call
- or jump target will be closer by two bytes after the
+ or jump target will be closer by two bytes after the
relaxation. */
else if (shrinkable && ((int) gap >= -4094 && (int) gap <= 4097))
distance_short_enough = 1;
R_AVR_13_PCREL);
/* We should not modify the ordering if 'shrinkable' is
- FALSE. */
+ FALSE. */
if (!shrinkable)
{
/* Let's insert a nop. */