summaryrefslogtreecommitdiff
path: root/bfd/tekhex.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2015-10-28 17:18:13 +1030
committerAlan Modra <amodra@gmail.com>2015-10-28 17:51:10 +1030
commit199af1503922ce2134d774a78be0d9e2ae055ab1 (patch)
treedd1fcec6689ca3acbd5ef488fc0f5db79581fb1e /bfd/tekhex.c
parent26656b1dc6c00f2eea0d329cc2637aebf3da1458 (diff)
Orphan output section with multiple input sections
If given input sections with differing flags, we'd like to place the section according to the final output section flags. bfd/ PR ld/19162 * elflink.c (_bfd_elf_gc_mark_reloc): Move code iterating over linker input bfds.. * section.c (bfd_get_next_section_by_name): ..to here. Add ibfd param. (bfd_get_linker_section): Adjust bfd_get_next_section_by_name call. * tekhex.c (first_phase): Likewise. * elflink.c (bfd_elf_gc_sections): Likewise. * bfd-in2.h: Regenerate. ld/ PR ld/19162 * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Check flags before calling _bfd_elf_match_sections_by_type. Merge flags for any other input sections that might match a new output section to decide placement.
Diffstat (limited to 'bfd/tekhex.c')
-rw-r--r--bfd/tekhex.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/bfd/tekhex.c b/bfd/tekhex.c
index ccc68f92d3..951c327e70 100644
--- a/bfd/tekhex.c
+++ b/bfd/tekhex.c
@@ -459,7 +459,8 @@ first_phase (bfd *abfd, int type, char *src, char * src_end)
else
{
if (alt_section == NULL)
- alt_section = bfd_get_next_section_by_name (section);
+ alt_section
+ = bfd_get_next_section_by_name (NULL, section);
if (alt_section == NULL)
alt_section = bfd_make_section_anyway_with_flags
(abfd, section->name,
@@ -476,7 +477,8 @@ first_phase (bfd *abfd, int type, char *src, char * src_end)
else
{
if (alt_section == NULL)
- alt_section = bfd_get_next_section_by_name (section);
+ alt_section
+ = bfd_get_next_section_by_name (NULL, section);
if (alt_section == NULL)
alt_section = bfd_make_section_anyway_with_flags
(abfd, section->name,