* 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>.
This commit is contained in:
Ian Lance Taylor 1996-01-12 19:00:18 +00:00
parent 4fe13b2bdd
commit 3c38b3df0c
2 changed files with 20 additions and 15 deletions

View file

@ -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

View file

@ -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;
{
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;
/* 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)