diff options
author | Ian Lance Taylor <ian@airs.com> | 1996-01-12 19:00:18 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 1996-01-12 19:00:18 +0000 |
commit | 3c38b3df0cc9a8bf6569306867022c8d1b200363 (patch) | |
tree | ef69af0620b2b31f0ed3efc82b57ef2efabb64f1 | |
parent | 4fe13b2bdd64d72478b0f10e3da45ff77bb825f5 (diff) | |
download | gdb-3c38b3df0cc9a8bf6569306867022c8d1b200363.zip gdb-3c38b3df0cc9a8bf6569306867022c8d1b200363.tar.gz gdb-3c38b3df0cc9a8bf6569306867022c8d1b200363.tar.bz2 |
* elf32-i386.c (elf_i386_size_dynamic_sections): Don't create a
DT_TEXTREL entry because of .rel.plt. From Martin Pirker
<pirker@eiunix.tuwien.ac.at>.
-rw-r--r-- | bfd/ChangeLog | 6 | ||||
-rw-r--r-- | bfd/elf32-i386.c | 31 |
2 files changed, 21 insertions, 16 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 4f11b95..25b9559 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +Fri Jan 12 13:59:16 1996 Ian Lance Taylor <ian@cygnus.com> + + * elf32-i386.c (elf_i386_size_dynamic_sections): Don't create a + DT_TEXTREL entry because of .rel.plt. From Martin Pirker + <pirker@eiunix.tuwien.ac.at>. + Thu Jan 11 17:06:14 1996 Michael Meissner <meissner@tiktok.cygnus.com> * section.c (SEC_{EXCLUDE,SORT_ENTRIES}): New section flags for diff --git a/bfd/elf32-i386.c b/bfd/elf32-i386.c index 3dc2970..82f0ccd 100644 --- a/bfd/elf32-i386.c +++ b/bfd/elf32-i386.c @@ -363,10 +363,7 @@ elf_i386_check_relocs (abfd, info, sec, relocs) size = symtab_hdr->sh_info * sizeof (bfd_vma); local_got_offsets = (bfd_vma *) bfd_alloc (abfd, size); if (local_got_offsets == NULL) - { - bfd_set_error (bfd_error_no_memory); - return false; - } + return false; elf_local_got_offsets (abfd) = local_got_offsets; for (i = 0; i < symtab_hdr->sh_info; i++) local_got_offsets[i] = (bfd_vma) -1; @@ -725,14 +722,19 @@ elf_i386_size_dynamic_sections (output_bfd, info) /* Remember whether there are any reloc sections other than .rel.plt. */ if (strcmp (name, ".rel.plt") != 0) - relocs = true; - - /* If this relocation section applies to a read only - section, then we probably need a DT_TEXTREL entry. */ - target = bfd_get_section_by_name (output_bfd, name + 4); - if (target != NULL - && (target->flags & SEC_READONLY) != 0) - reltext = true; + { + relocs = true; + + /* If this relocation section applies to a read only + section, then we probably need a DT_TEXTREL + entry. The entries in the .rel.plt section + really apply to the .got section, which we + created ourselves and so know is not readonly. */ + target = bfd_get_section_by_name (output_bfd, name + 4); + if (target != NULL + && (target->flags & SEC_READONLY) != 0) + reltext = true; + } /* We use the reloc_count field as a counter if we need to copy relocs into the output file. */ @@ -762,10 +764,7 @@ elf_i386_size_dynamic_sections (output_bfd, info) /* Allocate memory for the section contents. */ s->contents = (bfd_byte *) bfd_alloc (dynobj, s->_raw_size); if (s->contents == NULL && s->_raw_size != 0) - { - bfd_set_error (bfd_error_no_memory); - return false; - } + return false; } if (elf_hash_table (info)->dynamic_sections_created) |