From 77bf7b5317195e092a9f18fef993c412e2e05f53 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 1 Apr 2020 17:25:28 +0100 Subject: [PATCH] Extend the linker's error message for missing libraries if there is an almost match. PR ld/25747 * ldfile.c (ldfile_open_file): If a search for a library fails, but there is a file that would match if it had a "lib" prefix to its name, then tell the user. --- ld/ChangeLog | 7 +++++++ ld/ldfile.c | 16 ++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/ld/ChangeLog b/ld/ChangeLog index 16ffc303488..b1e9f530c16 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,10 @@ +2020-04-01 Nick Clifton + + PR ld/25747 + * ldfile.c (ldfile_open_file): If a search for a library fails, + but there is a file that would match if it had a "lib" prefix to + its name, then tell the user. + 2020-04-01 Tamar Christina PR ld/16017 diff --git a/ld/ldfile.c b/ld/ldfile.c index aa84906992b..3248a046078 100644 --- a/ld/ldfile.c +++ b/ld/ldfile.c @@ -445,6 +445,22 @@ ldfile_open_file (lang_input_statement_type *entry) entry->local_sym_name, ld_sysroot); else einfo (_("%P: cannot find %s\n"), entry->local_sym_name); + + /* PR 25747: Be kind to users who forgot to add the + "lib" prefix to their library when it was created. */ + for (arch = search_arch_head; arch != NULL; arch = arch->next) + { + if (ldfile_open_file_search (arch->name, entry, "", ".a")) + { + const char * base = lbasename (entry->filename); + + einfo (_("%P: note to link with %s use use -l:%s or rename it to lib%s\n"), + entry->filename, base, base); + bfd_close (entry->the_bfd); + entry->the_bfd = NULL; + break; + } + } entry->flags.missing_file = TRUE; input_flags.missing_file = TRUE; } -- 2.30.2