Commit: PR 25747: Tell users about a missing "lib" prefix to library names

Nick Clifton nickc@redhat.com
Wed Apr 1 16:24:49 GMT 2020


Hi Guys

  I am applying the patch below to extend the linker's error message
  when it fails to find a library, but there is a file present in the
  search path which matches if the "lib" prefix were to be ignored.

Cheers
  Nick

ld/ChangeLog
2020-04-01  Nick Clifton  <nickc@redhat.com>

	PR ;d/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.

diff --git a/ld/ldfile.c b/ld/ldfile.c
index aa84906992..3248a04607 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;
 	}




More information about the Binutils mailing list