Alexandre Julliard : winebuild: Add support for -marm and -mthumb target flags.

Alexandre Julliard julliard at winehq.org
Wed Feb 12 13:44:39 CST 2014


Module: wine
Branch: master
Commit: 6c807b74721831c06ae6ce76f833c42cf15ab64a
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=6c807b74721831c06ae6ce76f833c42cf15ab64a

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Wed Feb 12 12:57:27 2014 +0100

winebuild: Add support for -marm and -mthumb target flags.

---

 tools/winebuild/build.h          |    1 +
 tools/winebuild/main.c           |   10 +++++++++-
 tools/winebuild/winebuild.man.in |    3 +++
 3 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/tools/winebuild/build.h b/tools/winebuild/build.h
index fa92764..41cec91 100644
--- a/tools/winebuild/build.h
+++ b/tools/winebuild/build.h
@@ -362,5 +362,6 @@ extern struct strarray *cc_command;
 extern struct strarray *ld_command;
 extern struct strarray *nm_command;
 extern char *cpu_option;
+extern int thumb_mode;
 
 #endif  /* __WINE_BUILD_H */
diff --git a/tools/winebuild/main.c b/tools/winebuild/main.c
index a848a0c..807cf61 100644
--- a/tools/winebuild/main.c
+++ b/tools/winebuild/main.c
@@ -90,6 +90,12 @@ struct strarray *ld_command = NULL;
 struct strarray *nm_command = NULL;
 char *cpu_option = NULL;
 
+#ifdef __thumb__
+int thumb_mode = 1;
+#else
+int thumb_mode = 0;
+#endif
+
 static int nb_res_files;
 static char **res_files;
 
@@ -396,8 +402,10 @@ static char **parse_options( int argc, char **argv, DLLSPEC *spec )
             if (!strcmp( optarg, "16" )) spec->type = SPEC_WIN16;
             else if (!strcmp( optarg, "32" )) force_pointer_size = 4;
             else if (!strcmp( optarg, "64" )) force_pointer_size = 8;
+            else if (!strcmp( optarg, "arm" )) thumb_mode = 0;
+            else if (!strcmp( optarg, "thumb" )) thumb_mode = 1;
             else if (!strncmp( optarg, "cpu=", 4 )) cpu_option = xstrdup( optarg + 4 );
-            else fatal_error( "Invalid -m option '%s', expected -m16, -m32, -m64 or -mcpu\n", optarg );
+            else fatal_error( "Unknown -m option '%s'\n", optarg );
             break;
         case 'M':
             spec->main_module = xstrdup( optarg );
diff --git a/tools/winebuild/winebuild.man.in b/tools/winebuild/winebuild.man.in
index b0b2784..df91cb8 100644
--- a/tools/winebuild/winebuild.man.in
+++ b/tools/winebuild/winebuild.man.in
@@ -156,6 +156,9 @@ option.
 .B \-m16, -m32, -m64
 Generate respectively 16-bit, 32-bit or 64-bit code.
 .TP
+.BI \-marm,\ \-mthumb,\ \-mcpu= option
+Set code generation options for the assembler.
+.TP
 .BI \-M,\ --main-module= module
 When building a 16-bit dll, set the name of its 32-bit counterpart to
 \fImodule\fR. This is used to enforce that the load order for the




More information about the wine-cvs mailing list