diff options
Diffstat (limited to 'ld/emultempl/elf32.em')
-rw-r--r-- | ld/emultempl/elf32.em | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/ld/emultempl/elf32.em b/ld/emultempl/elf32.em index 7a9c882..3cdb856 100644 --- a/ld/emultempl/elf32.em +++ b/ld/emultempl/elf32.em @@ -532,6 +532,18 @@ cat >>e${EMULATION_NAME}.c <<EOF DT_NEEDED entry for this file. */ bfd_elf_set_dt_needed_name (abfd, ""); + /* First strip off everything before the last '/'. */ + name = strrchr (abfd->filename, '/'); + if (name) + name++; + else + name = abfd->filename; + + /* Tell the ELF backend that the output file needs a DT_NEEDED + entry for this file if it is used to resolve the reference in + a regular object. */ + bfd_elf_set_dt_needed_soname (abfd, name); + /* Add this file into the symbol table. */ if (! bfd_link_add_symbols (abfd, &link_info)) einfo ("%F%B: could not read symbols: %E\n", abfd); |