2005-04-17 H.J. Lu <hongjiu.lu@intel.com>
authorH.J. Lu <hjl.tools@gmail.com>
Mon, 18 Apr 2005 03:13:49 +0000 (03:13 +0000)
committerH.J. Lu <hjl.tools@gmail.com>
Mon, 18 Apr 2005 03:13:49 +0000 (03:13 +0000)
PR 855
* elf.c (_bfd_elf_copy_private_section_data): Don't copy linker
created group data.

bfd/ChangeLog
bfd/elf.c

index a44e8f24c1ded6173ceae972149775c041517d9d..9b20c92fa171220959465f06a0880155091cd27d 100644 (file)
@@ -1,3 +1,9 @@
+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
index 5f681129e55067a458e425dbd098a99defacc821..1434678ce7c4f0ac600ca357abe037ca625140ac 100644 (file)
--- 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;