[PATCH] x86: reject architecture settings that are invalid to be set from the command line
H.J. Lu
hjl.tools@gmail.com
Wed Jun 9 16:02:00 GMT 2010
On Wed, Jun 9, 2010 at 8:36 AM, Jan Beulich <JBeulich@novell.com> wrote:
> So far, options like -march=i8086 were accepted despite the assembler
> subsequently choking on other consistency checks, leading to reasonably
> cryptic error messages. This patch makes it so that impossible
> architecure settings are neither accepted nor displayed (i.e. it is now
> made sure that those settings can only be used via directives).
>
> gas/
> 2010-06-09 Jan Beulich <jbeulich@novell.com>
>
> * config/tc-i386.c (md_parse_option): Ignore impossible processor
> types.
> (show_arch): New parameter 'check'.
> (md_show_usage): Adjust calls to show_arch().
>
> --- 2010-06-09/gas/config/tc-i386.c 2010-06-09 17:04:12.000000000 +0200
> +++ 2010-06-09/gas/config/tc-i386.c 2010-06-09 17:24:59.000000000 +0200
> @@ -8166,6 +8166,11 @@ md_parse_option (int c, char *arg)
> if (strcmp (arch, cpu_arch [j].name) == 0)
> {
> /* Processor. */
> + if (! (strcmp (default_arch, "i386")
> + ? cpu_arch[j].flags.bitfield.cpulm
> + : cpu_arch[j].flags.bitfield.cpui386))
> + continue;
> +
> cpu_arch_name = cpu_arch[j].name;
> cpu_sub_arch_name = NULL;
> cpu_arch_flags = cpu_arch[j].flags;
> @@ -8297,7 +8302,7 @@ md_parse_option (int c, char *arg)
> " "
>
> static void
> -show_arch (FILE *stream, int ext)
> +show_arch (FILE *stream, int ext, int check)
> {
> static char message[] = MESSAGE_TEMPLATE;
> char *start = message + 27;
> @@ -8334,6 +8339,13 @@ show_arch (FILE *stream, int ext)
> /* It is an processor. Skip if we show only extension. */
> continue;
> }
> + else if (check && ! (strcmp (default_arch, "i386")
> + ? cpu_arch[j].flags.bitfield.cpulm
> + : cpu_arch[j].flags.bitfield.cpui386))
> + {
> + /* It is an impossible processor - skip. */
> + continue;
> + }
>
>
Do we need to check cpu_arch[j].flags.bitfield.cpulm? Can we
just check cpu_arch[j].flags.bitfield.cpui386 like
if (check && !cpu_arch[j].flags.bitfield.cpui386)
continue?
--
H.J.
More information about the Binutils
mailing list