From 6c807b74721831c06ae6ce76f833c42cf15ab64a Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Wed, 12 Feb 2014 12:57:27 +0100 Subject: [PATCH] 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 fa9276402b..41cec919e8 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 a848a0cada..807cf61a76 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 b0b2784c59..df91cb8837 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