* elfxx-mips.c (_bfd_mips_elf_modify_segment_map): Don't extend
	PT_DYNAMIC on GNU/Linux targets.
This commit is contained in:
Richard Sandiford 2006-10-20 07:59:44 +00:00
parent bcfdf036c8
commit f6f62d6fe6
2 changed files with 17 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2006-10-20 Richard Sandiford <richard@codesourcery.com>
* elfxx-mips.c (_bfd_mips_elf_modify_segment_map): Don't extend
PT_DYNAMIC on GNU/Linux targets.
2006-10-20 Richard Sandiford <richard@codesourcery.com>
* elfxx-mips.c (_bfd_mips_elf_finish_dynamic_sections): Make the

View File

@ -9329,8 +9329,18 @@ _bfd_mips_elf_modify_segment_map (bfd *abfd,
m->p_flags_valid = 1;
}
}
if (m != NULL
&& m->count == 1 && strcmp (m->sections[0]->name, ".dynamic") == 0)
/* GNU/Linux binaries do not need the extended PT_DYNAMIC section.
glibc's dynamic linker has traditionally derived the number of
tags from the p_filesz field, and sometimes allocates stack
arrays of that size. An overly-big PT_DYNAMIC segment can
be actively harmful in such cases. Making PT_DYNAMIC contain
other sections can also make life hard for the prelinker,
which might move one of the other sections to a different
PT_LOAD segment. */
if (SGI_COMPAT (abfd)
&& m != NULL
&& m->count == 1
&& strcmp (m->sections[0]->name, ".dynamic") == 0)
{
static const char *sec_names[] =
{