PR binutils/3166

* objcopy.c (is_strip_section): Revert 2006-09-05.
	(setup_section): Make SHT_GROUP section nobits.
This commit is contained in:
Alan Modra 2010-06-29 08:47:40 +00:00
parent a480d2f6c8
commit 6c67a030ce
2 changed files with 11 additions and 11 deletions

View File

@ -1,3 +1,9 @@
2010-06-29 Alan Modra <amodra@gmail.com>
PR binutils/3166
* objcopy.c (is_strip_section): Revert 2006-09-05.
(setup_section): Make SHT_GROUP section nobits.
2010-06-29 Alan Modra <amodra@gmail.com>
* configure: Regenerate.

View File

@ -942,12 +942,6 @@ is_strip_section (bfd *abfd ATTRIBUTE_UNUSED, asection *sec)
asymbol *gsym;
const char *gname;
/* PR binutils/3166
Group sections look like debugging sections but they are not.
(They have a non-zero size but they are not ALLOCated). */
if (strip_symbols == STRIP_NONDEBUG)
return TRUE;
/* PR binutils/3181
If we are going to strip the group signature symbol, then
strip the group section too. */
@ -2419,11 +2413,11 @@ setup_section (bfd *ibfd, sec_ptr isection, void *obfdarg)
if (p != NULL && p->set_flags)
flags = p->flags | (flags & (SEC_HAS_CONTENTS | SEC_RELOC));
else if (strip_symbols == STRIP_NONDEBUG
&& (flags & SEC_ALLOC) != 0
&& (ibfd->xvec->flavour != bfd_target_elf_flavour
|| elf_section_type (isection) != SHT_NOTE))
&& (flags & (SEC_ALLOC | SEC_GROUP)) != 0
&& !(ibfd->xvec->flavour == bfd_target_elf_flavour
&& elf_section_type (isection) == SHT_NOTE))
{
flags &= ~(SEC_HAS_CONTENTS | SEC_LOAD);
flags &= ~(SEC_HAS_CONTENTS | SEC_LOAD | SEC_GROUP);
if (obfd->xvec->flavour == bfd_target_elf_flavour)
{
make_nobits = TRUE;
@ -2432,7 +2426,7 @@ setup_section (bfd *ibfd, sec_ptr isection, void *obfdarg)
elf.c:copy_private_bfd_data that section flags have not
changed between input and output sections. This hack
prevents wholesale rewriting of the program headers. */
isection->flags &= ~(SEC_HAS_CONTENTS | SEC_LOAD);
isection->flags &= ~(SEC_HAS_CONTENTS | SEC_LOAD | SEC_GROUP);
}
}