Alexandre Julliard : winegcc: Pass the same winebuild args to all winebuild invocations.
Alexandre Julliard
julliard at winehq.org
Fri Jan 22 15:59:15 CST 2021
Module: wine
Branch: master
Commit: 7c909489b4a0404d7a0f386bc11c7399ae59a84a
URL: https://source.winehq.org/git/wine.git/?a=commit;h=7c909489b4a0404d7a0f386bc11c7399ae59a84a
Author: Alexandre Julliard <julliard at winehq.org>
Date: Fri Jan 22 13:59:48 2021 +0100
winegcc: Pass the same winebuild args to all winebuild invocations.
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
tools/winegcc/winegcc.c | 28 +++++++++++++++-------------
1 file changed, 15 insertions(+), 13 deletions(-)
diff --git a/tools/winegcc/winegcc.c b/tools/winegcc/winegcc.c
index 0a45cb7a0d5..e72f234d94b 100644
--- a/tools/winegcc/winegcc.c
+++ b/tools/winegcc/winegcc.c
@@ -986,8 +986,7 @@ static strarray *get_winebuild_args(struct options *opts)
for (i = 0; i < opts->prefix->size; i++)
strarray_add( spec_args, strmake( "-B%s", opts->prefix->base[i] ));
}
- if (opts->use_msvcrt) strarray_add( spec_args, "-mno-cygwin" );
- if (opts->unix_lib) strarray_add( spec_args, "-munix" );
+ strarray_addall( spec_args, opts->winebuild_args );
if (opts->unwind_tables) strarray_add( spec_args, "-fasynchronous-unwind-tables" );
else strarray_add( spec_args, "-fno-asynchronous-unwind-tables" );
return spec_args;
@@ -1266,8 +1265,6 @@ static void build(struct options* opts)
spec_o_name = get_temp_file(output_name, ".spec.o");
if (opts->force_pointer_size)
strarray_add(spec_args, strmake("-m%u", 8 * opts->force_pointer_size ));
- if(opts->unicode_app)
- strarray_add(spec_args, "-municode");
strarray_add(spec_args, "-D_REENTRANT");
if (opts->pic && !is_pe) strarray_add(spec_args, "-fPIC");
strarray_add(spec_args, opts->shared ? "--dll" : "--exe");
@@ -1287,7 +1284,6 @@ static void build(struct options* opts)
strarray_add(spec_args, "-E");
strarray_add(spec_args, spec_file);
}
- if (opts->win16_app) strarray_add(spec_args, "-m16");
if (!opts->shared)
{
@@ -1315,9 +1311,6 @@ static void build(struct options* opts)
for ( j = 0; j < lib_dirs->size; j++ )
strarray_add(spec_args, strmake("-L%s", lib_dirs->base[j]));
- for ( j = 0 ; j < opts->winebuild_args->size ; j++ )
- strarray_add(spec_args, opts->winebuild_args->base[j]);
-
if (!is_pe)
{
for (j = 0; j < opts->delayimports->size; j++)
@@ -1485,7 +1478,6 @@ static void build(struct options* opts)
strarray_add(implib_args, opts->out_implib);
strarray_add(implib_args, "--export");
strarray_add(implib_args, spec_file);
- strarray_addall(implib_args, opts->winebuild_args);
spawn(opts->prefix, implib_args, 0);
strarray_free (implib_args);
@@ -1636,7 +1628,7 @@ static int is_option( struct options *opts, int i, const char *option, const cha
int main(int argc, char **argv)
{
int i, c, next_is_arg = 0, linking = 1;
- int raw_compiler_arg, raw_linker_arg;
+ int raw_compiler_arg, raw_linker_arg, raw_winebuild_arg;
const char* option_arg;
struct options opts;
char* lang = 0;
@@ -1782,6 +1774,7 @@ int main(int argc, char **argv)
/* determine what options go 'as is' to the linker & the compiler */
raw_linker_arg = is_linker_arg(opts.args->base[i]);
raw_compiler_arg = !raw_linker_arg;
+ raw_winebuild_arg = 0;
/* do a bit of semantic analysis */
switch (opts.args->base[i][1])
@@ -1840,7 +1833,7 @@ int main(int argc, char **argv)
{
opts.use_msvcrt = 1;
raw_compiler_arg = 0;
- strarray_add( opts.winebuild_args, opts.args->base[i] );
+ raw_winebuild_arg = 1;
}
else if (strcmp("-mwindows", opts.args->base[i]) == 0)
{
@@ -1856,6 +1849,7 @@ int main(int argc, char **argv)
{
opts.unicode_app = 1;
raw_compiler_arg = 0;
+ raw_winebuild_arg = 1;
}
else if (strcmp("-mthreads", opts.args->base[i]) == 0)
{
@@ -1865,11 +1859,13 @@ int main(int argc, char **argv)
{
opts.unix_lib = 1;
raw_compiler_arg = 0;
+ raw_winebuild_arg = 1;
}
else if (strcmp("-m16", opts.args->base[i]) == 0)
{
opts.win16_app = 1;
raw_compiler_arg = 0;
+ raw_winebuild_arg = 1;
}
else if (strcmp("-m32", opts.args->base[i]) == 0)
{
@@ -1891,14 +1887,14 @@ int main(int argc, char **argv)
}
else if (!strcmp("-marm", opts.args->base[i] ) || !strcmp("-mthumb", opts.args->base[i] ))
{
- strarray_add(opts.winebuild_args, opts.args->base[i]);
raw_linker_arg = 1;
+ raw_winebuild_arg = 1;
}
else if (!strncmp("-mcpu=", opts.args->base[i], 6) ||
!strncmp("-mfpu=", opts.args->base[i], 6) ||
!strncmp("-march=", opts.args->base[i], 7) ||
!strncmp("-mfloat-abi=", opts.args->base[i], 12))
- strarray_add(opts.winebuild_args, opts.args->base[i]);
+ raw_winebuild_arg = 1;
break;
case 'n':
if (strcmp("-nostdinc", opts.args->base[i]) == 0)
@@ -2073,6 +2069,12 @@ int main(int argc, char **argv)
if (next_is_arg && (i + 1 < opts.args->size))
strarray_add( opts.compiler_args, opts.args->base[i + 1] );
}
+ if (raw_winebuild_arg)
+ {
+ strarray_add( opts.winebuild_args, opts.args->base[i] );
+ if (next_is_arg && (i + 1 < opts.args->size))
+ strarray_add( opts.winebuild_args, opts.args->base[i + 1] );
+ }
/* skip the next token if it's an argument */
if (next_is_arg) i++;
More information about the wine-cvs
mailing list