[binutils-gdb] Update the BFD linker so that it deprecates grouped short options.

Nick Clifton nickc@sourceware.org
Mon Oct 5 12:54:27 GMT 2020


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=983d925db6a09ac90f6bed90be16eb69267b58e0

commit 983d925db6a09ac90f6bed90be16eb69267b58e0
Author: Nick Clifton <nickc@redhat.com>
Date:   Mon Oct 5 13:53:59 2020 +0100

    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.

Diff:
---
 ld/ChangeLog |  5 +++++
 ld/lexsup.c  | 14 ++++++++++++++
 2 files changed, 19 insertions(+)

diff --git a/ld/ChangeLog b/ld/ChangeLog
index a6beac08449..0d5953a11b7 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -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
diff --git a/ld/lexsup.c b/ld/lexsup.c
index b8f066745f3..68943994846 100644
--- a/ld/lexsup.c
+++ b/ld/lexsup.c
@@ -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;


More information about the Binutils-cvs mailing list