aboutsummaryrefslogtreecommitdiff
path: root/bfd/elf32-hppa.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2001-10-31 15:32:09 +0000
committerAlan Modra <amodra@gmail.com>2001-10-31 15:32:09 +0000
commit4e12ff7fc26ce362d9dab3ff402843b555cf1593 (patch)
treed56e5608834bc60b37b61ed64f14daf4013c24c2 /bfd/elf32-hppa.c
parent4578e0a7264676834da6af67f45d622e0d5b8b6d (diff)
downloadfsf-binutils-gdb-4e12ff7fc26ce362d9dab3ff402843b555cf1593.zip
fsf-binutils-gdb-4e12ff7fc26ce362d9dab3ff402843b555cf1593.tar.gz
fsf-binutils-gdb-4e12ff7fc26ce362d9dab3ff402843b555cf1593.tar.bz2
Revert previous delta, instead do this.
* elf32-hppa.c (elf32_hppa_finish_dynamic_sections): Don't count .plt relocs in DT_RELASZ.
Diffstat (limited to 'bfd/elf32-hppa.c')
-rw-r--r--bfd/elf32-hppa.c19
1 files changed, 17 insertions, 2 deletions
diff --git a/bfd/elf32-hppa.c b/bfd/elf32-hppa.c
index 7d65a14..61c3e6f 100644
--- a/bfd/elf32-hppa.c
+++ b/bfd/elf32-hppa.c
@@ -2368,8 +2368,10 @@ elf32_hppa_size_dynamic_sections (output_bfd, info)
{
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. */
@@ -4274,6 +4276,19 @@ elf32_hppa_finish_dynamic_sections (output_bfd, info)
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);