diff options
Diffstat (limited to 'ld/ldelfgen.c')
-rw-r--r-- | ld/ldelfgen.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/ld/ldelfgen.c b/ld/ldelfgen.c index 21739b1..c0568f1 100644 --- a/ld/ldelfgen.c +++ b/ld/ldelfgen.c @@ -73,6 +73,19 @@ ldelf_map_segments (bfd_boolean need_layout) if (tries == 0) einfo (_("%F%P: looping in map_segments")); + + if (link_info.output_bfd->xvec->flavour == bfd_target_elf_flavour + && lang_phdr_list == NULL) + { + /* If we don't have user supplied phdrs, strip zero-sized dynamic + sections and regenerate program headers. */ + const struct elf_backend_data *bed + = get_elf_backend_data (link_info.output_bfd); + if (bed->elf_backend_strip_zero_sized_dynamic_sections + && !bed->elf_backend_strip_zero_sized_dynamic_sections + (&link_info)) + einfo (_("%F%P: failed to strip zero-sized dynamic sections")); + } } /* We want to emit CTF early if and only if we are not targetting ELF with this |