diff options
Diffstat (limited to 'bfd/elfxx-mips.c')
-rw-r--r-- | bfd/elfxx-mips.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c index 18be1fa..b0e8a62 100644 --- a/bfd/elfxx-mips.c +++ b/bfd/elfxx-mips.c @@ -9330,7 +9330,7 @@ _bfd_mips_elf_additional_program_headers (bfd *abfd, bfd_boolean _bfd_mips_elf_modify_segment_map (bfd *abfd, - struct bfd_link_info *info ATTRIBUTE_UNUSED) + struct bfd_link_info *info) { asection *s; struct elf_segment_map *m, **pm; @@ -9555,8 +9555,12 @@ _bfd_mips_elf_modify_segment_map (bfd *abfd, header instead, and avoid the need to move any sections. There is a long tradition of allocating spare dynamic tags, so allocating a spare program header seems like a natural - extension. */ - if (!SGI_COMPAT (abfd) + extension. + + If INFO is NULL, we may be copying an already prelinked binary + with objcopy or strip, so do not add this header. */ + if (info != NULL + && !SGI_COMPAT (abfd) && bfd_get_section_by_name (abfd, ".dynamic")) { for (pm = &elf_tdata (abfd)->segment_map; *pm != NULL; pm = &(*pm)->next) |