diff options
author | Alan Modra <amodra@gmail.com> | 2002-06-04 01:05:21 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2002-06-04 01:05:21 +0000 |
commit | b885599bed26fea1bd7f732b4152f92bf425bf85 (patch) | |
tree | 618dd9e670c3220c4b87b56db3241d85d0c0329f /bfd/section.c | |
parent | 90937f86aae6f5741008ccb551ac7cb3aad86ba3 (diff) | |
download | gdb-b885599bed26fea1bd7f732b4152f92bf425bf85.zip gdb-b885599bed26fea1bd7f732b4152f92bf425bf85.tar.gz gdb-b885599bed26fea1bd7f732b4152f92bf425bf85.tar.bz2 |
* elf.c (setup_group): Set SEC_LINK_ONCE on GRP_COMDAT groups.
(bfd_section_from_shdr): Likewise. Set section name of group
sections from signature.
(group_signature): Split out from setup_group. Ensure symbol table
is available.
(bfd_elf_discard_group): New function.
(_bfd_elf_make_section_from_shdr): Don't set SEC_LINK_ONCE on
.gnu.linkonce* sections if they are members of a group.
(set_group_contents): Set GRP_COMDAT flag.
* section.c (bfd_discard_group): New function.
* bfd-in.h (bfd_elf_discard_group): Declare.
* bfd-in2.h: Regenerate.
* elf-bfd.h (struct bfd_elf_section_data): Add linkonce_p field.
(elf_linkonce_p): Define.
Diffstat (limited to 'bfd/section.c')
-rw-r--r-- | bfd/section.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/bfd/section.c b/bfd/section.c index 358f5c4..70c7f27 100644 --- a/bfd/section.c +++ b/bfd/section.c @@ -1375,3 +1375,24 @@ _bfd_strip_section_from_output (info, s) s->flags |= SEC_EXCLUDE; } + +/* +FUNCTION + bfd_discard_group + +SYNOPSIS + void bfd_discard_group (bfd *abfd, asection *group); + +DESCRIPTION + Remove all members of @var{group} from the output. +*/ + +void +bfd_discard_group (abfd, group) + bfd *abfd; + asection *group; +{ + if ((group->flags & SEC_GROUP) != 0 + && abfd->xvec->flavour == bfd_target_elf_flavour) + bfd_elf_discard_group (abfd, group); +} |