From: Peter Johnson Date: Fri, 16 Aug 2002 02:45:10 +0000 (-0000) Subject: Re-add a hackish fix to set initial bits setting from objfmt for x86 arch. X-Git-Tag: v0.2.0~154 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5f02a6f59658e4a486f44c5eb345fa5510243638;p=yasm Re-add a hackish fix to set initial bits setting from objfmt for x86 arch. svn path=/trunk/yasm/; revision=698 --- diff --git a/frontends/yasm/yasm.c b/frontends/yasm/yasm.c index a8c7c33d..0a91dd4c 100644 --- a/frontends/yasm/yasm.c +++ b/frontends/yasm/yasm.c @@ -44,6 +44,9 @@ #include "arch.h" +/* FIXME: figure out a better way to handle this */ +extern unsigned char x86_mode_bits; + /* Extra path to search for our modules. */ #ifndef YASM_MODULE_PATH_ENV # define YASM_MODULE_PATH_ENV "YASM_MODULE_PATH" @@ -288,8 +291,9 @@ main(int argc, char *argv[]) } } - /* Get initial BITS setting from object format */ - /*x86_mode_bits = cur_objfmt->default_mode_bits;*/ + /* Get initial x86 BITS setting from object format */ + if (cur_arch == &x86_arch) + x86_mode_bits = cur_objfmt->default_x86_mode_bits; /* Parse! */ sections = cur_parser->do_parse(cur_parser, in, in_filename); diff --git a/libyasm/objfmt.h b/libyasm/objfmt.h index 527b3a8f..ef2de4c3 100644 --- a/libyasm/objfmt.h +++ b/libyasm/objfmt.h @@ -38,8 +38,8 @@ struct objfmt { /* default (starting) section name */ const char *default_section_name; - /* default (starting) BITS setting */ - const unsigned char default_mode_bits; + /* default (starting) x86 BITS setting */ + const unsigned char default_x86_mode_bits; /* NULL-terminated list of debugging formats that are valid to use with * this object format. diff --git a/src/main.c b/src/main.c index a8c7c33d..0a91dd4c 100644 --- a/src/main.c +++ b/src/main.c @@ -44,6 +44,9 @@ #include "arch.h" +/* FIXME: figure out a better way to handle this */ +extern unsigned char x86_mode_bits; + /* Extra path to search for our modules. */ #ifndef YASM_MODULE_PATH_ENV # define YASM_MODULE_PATH_ENV "YASM_MODULE_PATH" @@ -288,8 +291,9 @@ main(int argc, char *argv[]) } } - /* Get initial BITS setting from object format */ - /*x86_mode_bits = cur_objfmt->default_mode_bits;*/ + /* Get initial x86 BITS setting from object format */ + if (cur_arch == &x86_arch) + x86_mode_bits = cur_objfmt->default_x86_mode_bits; /* Parse! */ sections = cur_parser->do_parse(cur_parser, in, in_filename); diff --git a/src/objfmt.h b/src/objfmt.h index 527b3a8f..ef2de4c3 100644 --- a/src/objfmt.h +++ b/src/objfmt.h @@ -38,8 +38,8 @@ struct objfmt { /* default (starting) section name */ const char *default_section_name; - /* default (starting) BITS setting */ - const unsigned char default_mode_bits; + /* default (starting) x86 BITS setting */ + const unsigned char default_x86_mode_bits; /* NULL-terminated list of debugging formats that are valid to use with * this object format.