summaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2001-02-20 21:07:24 +0000
committerH.J. Lu <hjl.tools@gmail.com>2001-02-20 21:07:24 +0000
commit78f85fd7987835445807c27a617989df01341871 (patch)
tree5614359d142a5bed0ab5fd7cb4eca3b991ce8ff7 /ld
parent60cf7a8541c6728bfbc94456e5934ef01f18cac0 (diff)
downloadbinutils-gdb-78f85fd7987835445807c27a617989df01341871.tar.gz
2001-02-20 H.J. Lu <hjl@gnu.org>
* ldfile.c (ldfile_open_file): Set entry->search_dirs_flag to false if we found the file.
Diffstat (limited to 'ld')
-rw-r--r--ld/ChangeLog5
-rw-r--r--ld/ldfile.c23
2 files changed, 21 insertions, 7 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 2fe147aa405..70c20da4c5a 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,8 @@
+2001-02-20 H.J. Lu <hjl@gnu.org>
+
+ * ldfile.c (ldfile_open_file): Set entry->search_dirs_flag to
+ false if we found the file.
+
001-02-18 David O'Brien <obrien@FreeBSD.org>
* configure.tgt: Add FreeBSD/Alpha, FreeBSD/x86-64, FreeBSD/ia64,
diff --git a/ld/ldfile.c b/ld/ldfile.c
index fbb46851de3..1456e3d10a2 100644
--- a/ld/ldfile.c
+++ b/ld/ldfile.c
@@ -231,23 +231,32 @@ ldfile_open_file (entry)
else
{
search_arch_type *arch;
+ boolean found = false;
/* Try to open <filename><suffix> or lib<filename><suffix>.a */
for (arch = search_arch_head;
arch != (search_arch_type *) NULL;
arch = arch->next)
{
- if (ldfile_open_file_search (arch->name, entry, "lib", ".a"))
- return;
+ found = ldfile_open_file_search (arch->name, entry, "lib", ".a");
+ if (found)
+ break;
#ifdef VMS
- if (ldfile_open_file_search (arch->name, entry, ":lib", ".a"))
- return;
+ found = ldfile_open_file_search (arch->name, entry, ":lib", ".a");
+ if (found)
+ break;
#endif
- if (ldemul_find_potential_libraries (arch->name, entry))
- return;
+ found = ldemul_find_potential_libraries (arch->name, entry);
+ if (found)
+ break;
}
- einfo (_("%F%P: cannot find %s\n"), entry->local_sym_name);
+ /* If we have found the file, we don't need to search directories
+ again. */
+ if (found)
+ entry->search_dirs_flag = false;
+ else
+ einfo (_("%F%P: cannot find %s\n"), entry->local_sym_name);
}
}