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