Blob Blame History Raw
diff --git a/ld/lexsup.c b/ld/lexsup.c
index a8c57d2..52b4fdb 100644
--- a/ld/lexsup.c
+++ b/ld/lexsup.c
@@ -1107,7 +1107,11 @@ parse_args (unsigned argc, char **argv)
 	  break;
 	case 'h':		/* Used on Solaris.  */
 	case OPTION_SONAME:
-	  command_line.soname = optarg;
+	  if (optarg[0] == '\0' && command_line.soname
+	      && command_line.soname[0])
+	    einfo (_("%P: SONAME must not be empty string; keeping previous one\n"));
+	  else
+	    command_line.soname = optarg;
 	  break;
 	case OPTION_SORT_COMMON:
 	  if (optarg == NULL
@@ -1443,6 +1447,12 @@ parse_args (unsigned argc, char **argv)
 	}
     }
 
+  if (command_line.soname && command_line.soname[0] == '\0')
+    {
+      einfo (_("%P: SONAME must not be empty string; ignored\n"));
+      command_line.soname = NULL;
+    }
+
   while (ingroup)
     {
       lang_leave_group ();
-- 
1.7.1