2001-11-01 Alan Modra <amodra@bigpond.net.au>
- * elf32-hppa.c (elf32_hppa_size_dynamic_sections): Set DT_RELASZ
- whenever DT_PLTRELSZ.
+ * elf32-hppa.c (elf32_hppa_finish_dynamic_sections): Don't count
+ .plt relocs in DT_RELASZ.
2001-10-29 NIIBE Yutaka <gniibe@m17n.org>
{
if (s->_raw_size != 0)
{
- /* Remember whether there are any reloc sections. */
- relocs = true;
+ /* Remember whether there are any reloc sections other
+ than .rela.plt. */
+ if (s != htab->srelplt)
+ relocs = true;
/* We use the reloc_count field as a counter if we need
to copy relocs into the output file. */
else
dyn.d_un.d_val = s->_raw_size;
break;
+
+ case DT_RELASZ:
+ /* Don't count procedure linkage table relocs in the
+ overall reloc count. */
+ if (htab->srelplt != NULL)
+ {
+ s = htab->srelplt->output_section;
+ if (s->_cooked_size != 0)
+ dyn.d_un.d_val -= s->_cooked_size;
+ else
+ dyn.d_un.d_val -= s->_raw_size;
+ }
+ break;
}
bfd_elf32_swap_dyn_out (output_bfd, &dyn, dyncon);