diff options
Diffstat (limited to 'bfd/elflink.c')
-rw-r--r-- | bfd/elflink.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/bfd/elflink.c b/bfd/elflink.c index 6985786e21..d336730e07 100644 --- a/bfd/elflink.c +++ b/bfd/elflink.c @@ -5730,19 +5730,16 @@ bfd_elf_size_dynamic_sections (bfd *output_bfd, if (rpath != NULL) { bfd_size_type indx; + bfd_vma tag; indx = _bfd_elf_strtab_add (elf_hash_table (info)->dynstr, rpath, TRUE); - if (indx == (bfd_size_type) -1 - || !_bfd_elf_add_dynamic_entry (info, DT_RPATH, indx)) + if (indx == (bfd_size_type) -1) return FALSE; - if (info->new_dtags) - { - _bfd_elf_strtab_addref (elf_hash_table (info)->dynstr, indx); - if (!_bfd_elf_add_dynamic_entry (info, DT_RUNPATH, indx)) - return FALSE; - } + tag = info->new_dtags ? DT_RUNPATH : DT_RPATH; + if (!_bfd_elf_add_dynamic_entry (info, tag, indx)) + return FALSE; } if (filter_shlib != NULL) |