http://bugs.gentoo.org/260726

diff --git a/tools/winebuild/main.c b/tools/winebuild/main.c
index 16b4165..5c77267 100644
--- a/tools/winebuild/main.c
+++ b/tools/winebuild/main.c
@@ -48,10 +48,13 @@ int link_ext_symbols = 0;
 int force_pointer_size = 0;
 int unwind_tables = 0;
 
+#undef FORCE_POINTER_SIZE
 #ifdef __i386__
 enum target_cpu target_cpu = CPU_x86;
+#define FORCE_POINTER_SIZE
 #elif defined(__x86_64__)
 enum target_cpu target_cpu = CPU_x86_64;
+#define FORCE_POINTER_SIZE
 #elif defined(__powerpc__)
 enum target_cpu target_cpu = CPU_POWERPC;
 #elif defined(__arm__)
@@ -611,6 +614,10 @@ int main(int argc, char **argv)
     signal( SIGTERM, exit_on_signal );
     signal( SIGINT, exit_on_signal );
 
+#ifdef FORCE_POINTER_SIZE
+    force_pointer_size = sizeof(size_t);
+#endif
+
     output_file = stdout;
     argv = parse_options( argc, argv, spec );
 
diff --git a/tools/winegcc/winegcc.c b/tools/winegcc/winegcc.c
index 06aa200..c44d2e3 100644
--- a/tools/winegcc/winegcc.c
+++ b/tools/winegcc/winegcc.c
@@ -213,10 +213,13 @@ struct options
     strarray* files;
 };
 
+#undef FORCE_POINTER_SIZE
 #ifdef __i386__
 static const enum target_cpu build_cpu = CPU_x86;
+#define FORCE_POINTER_SIZE
 #elif defined(__x86_64__)
 static const enum target_cpu build_cpu = CPU_x86_64;
+#define FORCE_POINTER_SIZE
 #elif defined(__powerpc__)
 static const enum target_cpu build_cpu = CPU_POWERPC;
 #elif defined(__arm__)
@@ -1258,6 +1261,9 @@ int main(int argc, char **argv)
     opts.linker_args = strarray_alloc();
     opts.compiler_args = strarray_alloc();
     opts.winebuild_args = strarray_alloc();
+#ifdef FORCE_POINTER_SIZE
+    opts.force_pointer_size = sizeof(size_t);
+#endif
 
     /* determine the processor type */
     if (strendswith(argv[0], "winecpp")) opts.processor = proc_cpp;
