From: Mark Wielaard Date: Wed, 26 Aug 2020 19:46:04 +0000 (+0200) Subject: gas: Handle bad -gdwarf options, just like bad --gdwarf options. X-Git-Tag: binutils-2_35_1~15 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a2afee4a2ca4ff0ba15e4b16e7784f4be306f527;p=thirdparty%2Fbinutils-gdb.git gas: Handle bad -gdwarf options, just like bad --gdwarf options. parse_args uses getopt_long_only so it can handle long options both with double and single dash. But this means that some single dash options like -gdwarf-1 don't generate an error (unlike --gdwarf-1). This is especially confusing since there is also --gdwarf2, but no --gdwarf4 (it is --gdwarf-4). When giving -gdwarf4 the option is silently interpreted as -g (which set dwarf_version to 2). This causes some confusion for people who don't expect this and suddenly get DWARF2 instead of DWARF4 as they might expect. So make it so that the -gdwarf creates an error, just like --gdwarf would. --- diff --git a/gas/ChangeLog b/gas/ChangeLog index bc72700cb47..10286e66e13 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,10 @@ +2020-09-14 Mark Wielaard + + Backport from mainline: + 2020-08-26 Mark Wielaard + + * as.c (parse_args): Handle bad -gdwarf options. + 2020-08-26 David Faust * config/tc-bpf.c: Add option -mxbpf to select xbpf isa. diff --git a/gas/as.c b/gas/as.c index a04e615d35d..0801903126e 100644 --- a/gas/as.c +++ b/gas/as.c @@ -824,6 +824,13 @@ This program has absolutely no warranty.\n")); && md_parse_option (optc, optarg)) continue; + /* We end up here for any -gsomething-not-already-a-long-option. + give some useful feedback on not (yet) supported -gdwarfxxx + versions/sections/options. */ + if (strncmp (old_argv[optind - 1], "-gdwarf", + strlen ("-gdwarf")) == 0) + as_fatal (_("unknown DWARF option %s\n"), old_argv[optind - 1]); + if (md_debug_format_selector) debug_type = md_debug_format_selector (& use_gnu_debug_info_extensions); else if (IS_ELF)