Update the BFD linker so that it deprecates grouped short options.

* lexsup.c (parse_args): Generate an error or warning message when
	multiple short options are used together.
This commit is contained in:
Nick Clifton
2020-10-05 13:53:59 +01:00
parent cd096ec85f
commit 983d925db6
2 changed files with 19 additions and 0 deletions

View File

@@ -1,3 +1,8 @@
2020-10-05 Nick Clifton <nickc@redhat.com>
* lexsup.c (parse_args): Generate an error or warning message when
multiple short options are used together.
2020-10-01 H.J. Lu <hongjiu.lu@intel.com>
PR 26681

View File

@@ -735,6 +735,20 @@ parse_args (unsigned argc, char **argv)
optind = last_optind;
optc = getopt_long (argc, argv, "-", really_longopts, &longind);
}
/* Attempt to detect grouped short options, eg: "-non-start".
Accepting such options is error prone as it is not clear if the user
intended "-n -o n-start" or "--non-start". */
else if (longind == 0 /* This is a short option. */
&& optc > 32 /* It is a valid option. */
/* The character is not the second character of argv[last_optind]. */
&& optc != argv[last_optind][1])
{
if (optarg)
einfo (_("%F%P: Error: unable to disambiguate: %s (did you mean -%s ?)\n"),
argv[last_optind], argv[last_optind]);
else
einfo (_("%P: Warning: grouped short command line options are deprecated: %s\n"), argv[last_optind]);
}
if (ldemul_handle_option (optc))
continue;