diff options
author | Alan Modra <amodra@bigpond.net.au> | 2002-02-05 00:00:23 +0000 |
---|---|---|
committer | Alan Modra <amodra@bigpond.net.au> | 2002-02-05 00:00:23 +0000 |
commit | b6d834eeb2ffb6cd1844ef8e201bc04d6ae8c797 (patch) | |
tree | 5c9c54694703da03d9c71541a91f7e62f046e380 /bfd/elf32-i386.c | |
parent | 6d3b2a94f021654a0cf12a8165e0e00659eb1704 (diff) | |
download | binutils-redhat-b6d834eeb2ffb6cd1844ef8e201bc04d6ae8c797.tar.gz |
* elf64-ppc.c (ppc64_elf_size_dynamic_sections): Check for relocs
against section syms in readonly sections. Don't do the global
sym check if we find one.
* elf64-s390.c (elf_s390_size_dynamic_sections): Likewise.
* elf32-hppa.c (elf32_hppa_size_dynamic_sections): Likewise.
* elf32-s390.c (elf_s390_size_dynamic_sections): Likewise.
(elf_s390_grok_prstatus): Add missing prototype.
Diffstat (limited to 'bfd/elf32-i386.c')
-rw-r--r-- | bfd/elf32-i386.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/bfd/elf32-i386.c b/bfd/elf32-i386.c index 6e79199e09..a1a7b5ca5d 100644 --- a/bfd/elf32-i386.c +++ b/bfd/elf32-i386.c @@ -1500,10 +1500,12 @@ elf_i386_size_dynamic_sections (output_bfd, info) linker script /DISCARD/, so we'll be discarding the relocs too. */ } - else + else if (p->count != 0) { srel = elf_section_data (p->sec)->sreloc; srel->_raw_size += p->count * sizeof (Elf32_External_Rel); + if ((p->sec->output_section->flags & SEC_READONLY) != 0) + info->flags |= DF_TEXTREL; } } } @@ -1625,7 +1627,9 @@ elf_i386_size_dynamic_sections (output_bfd, info) /* If any dynamic relocs apply to a read-only section, then we need a DT_TEXTREL entry. */ - elf_link_hash_traverse (&htab->elf, readonly_dynrelocs, (PTR) info); + if ((info->flags & DF_TEXTREL) == 0) + elf_link_hash_traverse (&htab->elf, readonly_dynrelocs, + (PTR) info); if ((info->flags & DF_TEXTREL) != 0) { |