From 504925a8f70c1e99e7c4637826f8ced15649ff80 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Andr=C3=A9=20Hentschel?= Date: Sun, 21 Apr 2013 16:58:53 +0200 Subject: [PATCH] winegcc: Set target based on forced pointer size. --- tools/winegcc/winegcc.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/tools/winegcc/winegcc.c b/tools/winegcc/winegcc.c index 06aa200a7c..1469b8a8e8 100644 --- a/tools/winegcc/winegcc.c +++ b/tools/winegcc/winegcc.c @@ -343,11 +343,9 @@ static int check_platform( struct options *opts, const char *file ) if (!memcmp( header, "\177ELF", 4 )) { if (header[4] == 2) /* 64-bit */ - ret = (opts->force_pointer_size == 8 || - (!opts->force_pointer_size && (opts->target_cpu == CPU_x86_64 || opts->target_cpu == CPU_ARM64))); + ret = (opts->target_cpu == CPU_x86_64 || opts->target_cpu == CPU_ARM64); else - ret = (opts->force_pointer_size == 4 || - (!opts->force_pointer_size && opts->target_cpu != CPU_x86_64 && opts->target_cpu != CPU_ARM64)); + ret = (opts->target_cpu != CPU_x86_64 && opts->target_cpu != CPU_ARM64); } } close( fd ); @@ -370,13 +368,13 @@ static char *get_lib_dir( struct options *opts ) strcpy( p, libwine ); if (check_platform( opts, buffer )) goto found; if (p > buffer + 2 && (!memcmp( p - 2, "32", 2 ) || !memcmp( p - 2, "64", 2 ))) p -= 2; - if (opts->force_pointer_size == 4 || (!opts->force_pointer_size && opts->target_cpu != CPU_x86_64 && opts->target_cpu != CPU_ARM64)) + if (opts->target_cpu != CPU_x86_64 && opts->target_cpu != CPU_ARM64) { strcpy( p, "32" ); strcat( p, libwine ); if (check_platform( opts, buffer )) goto found; } - if (opts->force_pointer_size == 8 || (!opts->force_pointer_size && (opts->target_cpu == CPU_x86_64 || opts->target_cpu == CPU_ARM64))) + if (opts->target_cpu == CPU_x86_64 || opts->target_cpu == CPU_ARM64) { strcpy( p, "64" ); strcat( p, libwine ); @@ -1406,6 +1404,10 @@ int main(int argc, char **argv) } else if (strcmp("-m64", argv[i]) == 0) { + if (opts.target_cpu == CPU_x86) + opts.target_cpu = CPU_x86_64; + else if (opts.target_cpu == CPU_ARM) + opts.target_cpu = CPU_ARM64; opts.force_pointer_size = 8; raw_linker_arg = 1; } -- 2.32.0.93.g670b81a890