From: H.J. Lu Date: Thu, 10 Jun 2010 16:38:17 +0000 (+0000) Subject: Stop if -march=XXX is invalid. X-Git-Tag: gdb_7_2-2010-07-07-branchpoint~276 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=78f12dd3eb06021e88367087844a64d7aee6beab;p=platform%2Fupstream%2Fbinutils.git Stop if -march=XXX is invalid. 2010-06-10 H.J. Lu * config/tc-i386.c (update_code_flag): New. (set_code_flag): Use it. (i386_target_format): Replace set_code_flag with update_code_flag. --- diff --git a/gas/ChangeLog b/gas/ChangeLog index 92baff2..4b2a357 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +2010-06-10 H.J. Lu + + * config/tc-i386.c (update_code_flag): New. + (set_code_flag): Use it. + (i386_target_format): Replace set_code_flag with update_code_flag. + 2010-06-10 Tristan Gingold * config/obj-som.h: Includes som/reloc.h diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index 0f329a6..d62c3a1 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -135,6 +135,7 @@ typedef struct } arch_entry; +static void update_code_flag (int, int); static void set_code_flag (int); static void set_16bit_gcc_code_flag (int); static void set_intel_syntax (int); @@ -1922,8 +1923,10 @@ add_prefix (unsigned int prefix) } static void -set_code_flag (int value) +update_code_flag (int value, int check) { + PRINTF_LIKE ((*as_error)); + flag_code = (enum flag_code) value; if (flag_code == CODE_64BIT) { @@ -1937,16 +1940,32 @@ set_code_flag (int value) } if (value == CODE_64BIT && !cpu_arch_flags.bitfield.cpulm ) { - as_bad (_("64bit mode not supported on this CPU.")); + if (check) + as_error = as_fatal; + else + as_error = as_bad; + (*as_error) (_("64bit mode not supported on `%s'."), + cpu_arch_name ? cpu_arch_name : default_arch); } if (value == CODE_32BIT && !cpu_arch_flags.bitfield.cpui386) { - as_bad (_("32bit mode not supported on this CPU.")); + if (check) + as_error = as_fatal; + else + as_error = as_bad; + (*as_error) (_("32bit mode not supported on `%s'."), + cpu_arch_name ? cpu_arch_name : default_arch); } stackop_size = '\0'; } static void +set_code_flag (int value) +{ + update_code_flag (value, 0); +} + +static void set_16bit_gcc_code_flag (int new_code_flag) { flag_code = (enum flag_code) new_code_flag; @@ -8437,9 +8456,9 @@ const char * i386_target_format (void) { if (!strcmp (default_arch, "x86_64")) - set_code_flag (CODE_64BIT); + update_code_flag (CODE_64BIT, 1); else if (!strcmp (default_arch, "i386")) - set_code_flag (CODE_32BIT); + update_code_flag (CODE_32BIT, 1); else as_fatal (_("Unknown architecture"));