From d3cc5bd625c76b09b995c0f1f313fc1f83064d07 Mon Sep 17 00:00:00 2001 From: Jeff Law Date: Thu, 16 Sep 1999 20:53:09 +0000 Subject: [PATCH] * emultempl/elf32.em (gld${EMULATION_NAME}_open_dynamic_archive): Use the same filename extension for the bfd_elf_dt_needed_name call as we did for finding the library. --- ld/ChangeLog | 4 ++++ ld/emultempl/elf32.em | 16 +++++++++++----- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/ld/ChangeLog b/ld/ChangeLog index c46803e023b..2538c44dbce 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,5 +1,9 @@ Thu Sep 16 10:59:56 1999 Jeffrey A Law (law@cygnus.com) + * emultempl/elf32.em (gld${EMULATION_NAME}_open_dynamic_archive): + Use the same filename extension for the bfd_elf_dt_needed_name call + as we did for finding the library. + * emulparms/elf64hppa.sh (DATA_START_SYMBOLS): Define. (OTHER_READWRITE_SECTIONS): No longer define __hp_load_map. diff --git a/ld/emultempl/elf32.em b/ld/emultempl/elf32.em index e590c71506e..1dfe8f4ca4b 100644 --- a/ld/emultempl/elf32.em +++ b/ld/emultempl/elf32.em @@ -133,13 +133,19 @@ gld${EMULATION_NAME}_open_dynamic_archive (arch, search, entry) if (bfd_check_format (entry->the_bfd, bfd_object) && (entry->the_bfd->flags & DYNAMIC) != 0) { - char *needed_name; + char *filname, *needed_name; ASSERT (entry->is_archive && entry->search_dirs_flag); - needed_name = (char *) xmalloc (strlen (filename) - + strlen (arch) - + sizeof "lib.so"); - sprintf (needed_name, "lib%s%s.so", filename, arch); + + /* Rather than duplicating the logic above. Just use the + filename we recorded earlier.o + + First strip off everything before the last '/'. */ + filename = strrchr (entry->filename, '/'); + filename++; + + needed_name = (char *) xmalloc (strlen (filename)) + 1; + strcpy (needed_name, filename); bfd_elf_set_dt_needed_name (entry->the_bfd, needed_name); } -- 2.30.2