When placing an orphan input section, check ELF section header only for
ELF output.
PR ld/21884
* emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Check
ELF section header only for ELF output.
* testsuite/ld-elf/pr21884.d: New test.
* testsuite/ld-elf/pr21884.t: Likewise.
* testsuite/ld-elf/pr21884a.s: Likewise.
* testsuite/ld-elf/pr21884b.s: Likewise.
+2017-08-02 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/21884
+ * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Check
+ ELF section header only for ELF output.
+ * testsuite/ld-elf/pr21884.d: New test.
+ * testsuite/ld-elf/pr21884.t: Likewise.
+ * testsuite/ld-elf/pr21884a.s: Likewise.
+ * testsuite/ld-elf/pr21884b.s: Likewise.
+
2017-08-02 H.J. Lu <hongjiu.lu@intel.com>
* emultempl/elf32.em (_place_orphan): Revert the last change.
}
/* Look through the script to see where to place this section. */
- if (constraint == 0)
+ if (constraint == 0
+ && link_info.output_bfd->xvec->flavour == bfd_target_elf_flavour)
for (os = lang_output_section_find (secname);
os != NULL;
os = next_matching_output_section_statement (os, 0))
--- /dev/null
+#source: pr21884a.s
+#source: pr21884b.s
+#ld: -T pr21884.t
+#objdump: -b binary -s
+#notarget: aarch64*-*-* arm*-*-* nds32*-*-*
+# Skip targets which can't change output format to binary.
+
+.*: file format binary
+
+Contents of section .data:
+#pass
--- /dev/null
+OUTPUT_FORMAT("binary")
+
+ENTRY(_main);
+SECTIONS {
+ . = 0;
+ .setup : { *(.setup) }
+}
--- /dev/null
+ .text
+ .globl _main
+ .type _main,%function
+_main:
+ .dc.a bar
--- /dev/null
+ .text
+ .globl bar
+ .type bar,%function
+bar:
+ .byte 0