+2019-07-18 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/24819
+ * emultempl/elf32.em (elf_orphan_compatible): Return FALSE for
+ member of output section group when doing a relocatable link.
+ * testsuite/ld-elf/pr24819.d: New file.
+ * testsuite/ld-elf/pr24819.s: Likewise.
+
2019-07-13 Alan Modra <amodra@gmail.com>
* testsuite/ld-powerpc/tlsso.r: Update.
if (elf_section_data (out)->this_hdr.sh_info
!= elf_section_data (in)->this_hdr.sh_info)
return FALSE;
- /* We can't merge two sections with differing SHF_EXCLUDE when doing
- a relocatable link. */
+ /* We can't merge with member of output section group nor merge two
+ sections with differing SHF_EXCLUDE when doing a relocatable link.
+ */
if (bfd_link_relocatable (&link_info)
- && ((elf_section_flags (out) ^ elf_section_flags (in)) & SHF_EXCLUDE) != 0)
+ && (elf_next_in_group (out) != NULL
+ || ((elf_section_flags (out) ^ elf_section_flags (in))
+ & SHF_EXCLUDE) != 0))
return FALSE;
return _bfd_elf_match_sections_by_type (link_info.output_bfd, out,
in->owner, in);
--- /dev/null
+#ld: -r
+#readelf: -S --wide
+
+#...
+ \[[ 0-9]+\] \.data\.foo[ \t]+PROGBITS[ \t0-9a-f]+WAG .*
+#...
+ \[[ 0-9]+\] \.data\.foo[ \t]+PROGBITS[ \t0-9a-f]+WA .*
+#pass
--- /dev/null
+ .section .data.foo,"awG",%progbits,.group1,comdat
+ .byte 0
+ .section .data.foo,"aw",%progbits
+ .byte 0