aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/ChangeLog6
-rw-r--r--bfd/elf.c11
2 files changed, 14 insertions, 3 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index a44e8f2..9b20c92 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,6 +1,12 @@
2005-04-17 H.J. Lu <hongjiu.lu@intel.com>
PR 855
+ * elf.c (_bfd_elf_copy_private_section_data): Don't copy linker
+ created group data.
+
+2005-04-17 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR 855
* elf.c (setup_group): Properly handle zero group count.
2005-04-17 Mark Kettenis <kettenis@gnu.org>
diff --git a/bfd/elf.c b/bfd/elf.c
index 5f68112..1434678 100644
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -5519,9 +5519,14 @@ _bfd_elf_copy_private_section_data (bfd *ibfd,
/* Set things up for objcopy. The output SHT_GROUP section will
have its elf_next_in_group pointing back to the input group
- members. */
- elf_next_in_group (osec) = elf_next_in_group (isec);
- elf_group_name (osec) = elf_group_name (isec);
+ members. Ignore linker created group section. See
+ elfNN_ia64_object_p in elfxx-ia64.c. */
+ if (elf_sec_group (isec) == NULL
+ || (elf_sec_group (isec)->flags & SEC_LINKER_CREATED) == 0)
+ {
+ elf_next_in_group (osec) = elf_next_in_group (isec);
+ elf_group_name (osec) = elf_group_name (isec);
+ }
osec->use_rela_p = isec->use_rela_p;