Fix some issues with winebuild

Dmitry Timoshkov dmitry at baikal.ru
Tue May 22 09:27:13 CDT 2001


Hello.

Changelog:
    Dmitry Timoshkov <dmitry at codeweavers.com>
    Fix some issues with winebuild.

diff -u cvs/hq/wine/tools/winebuild/build.h wine/tools/winebuild/build.h
--- cvs/hq/wine/tools/winebuild/build.h	Tue Feb 13 10:06:38 2001
+++ wine/tools/winebuild/build.h	Tue May 22 21:46:54 2001
@@ -137,7 +137,7 @@
 
 extern void add_import_dll( const char *name, int delay );
 extern void add_ignore_symbol( const char *name );
-extern int resolve_imports( FILE *outfile );
+extern int resolve_imports( void );
 extern int output_imports( FILE *outfile );
 extern void load_res32_file( const char *name );
 extern int output_resources( FILE *outfile );
diff -u cvs/hq/wine/tools/winebuild/import.c wine/tools/winebuild/import.c
--- cvs/hq/wine/tools/winebuild/import.c	Tue Feb 13 10:06:38 2001
+++ wine/tools/winebuild/import.c	Tue May 22 21:47:27 2001
@@ -317,7 +317,7 @@
 }
 
 /* resolve the imports for a Win32 module */
-int resolve_imports( FILE *outfile )
+int resolve_imports( void )
 {
     int i, j;
 
diff -u cvs/hq/wine/tools/winebuild/main.c wine/tools/winebuild/main.c
--- cvs/hq/wine/tools/winebuild/main.c	Mon Jan 22 10:17:30 2001
+++ wine/tools/winebuild/main.c	Tue May 22 21:48:43 2001
@@ -244,7 +244,10 @@
         do_usage();
         break;
     }
-    fclose( output_file );
-    output_file_name = NULL;
+    if (output_file_name)
+    {
+        fclose( output_file );
+        output_file_name = NULL;
+    }
     return 0;
 }
diff -u cvs/hq/wine/tools/winebuild/parser.c wine/tools/winebuild/parser.c
--- cvs/hq/wine/tools/winebuild/parser.c	Fri Feb 16 05:27:06 2001
+++ wine/tools/winebuild/parser.c	Tue May 22 21:54:31 2001
@@ -264,8 +264,6 @@
         fatal_error( "Too many arguments\n" );
 
     odp->u.func.arg_types[i] = '\0';
-    if ((odp->type == TYPE_STDCALL) && !i)
-        odp->type = TYPE_CDECL; /* stdcall is the same as cdecl for 0 args */
     if (odp->type == TYPE_VARARGS)
         odp->flags |= FLAG_NORELAY;  /* no relay debug possible for varags entry point */
     odp->link_name = xstrdup( GetToken(0) );
diff -u cvs/hq/wine/tools/winebuild/spec16.c wine/tools/winebuild/spec16.c
--- cvs/hq/wine/tools/winebuild/spec16.c	Thu Mar 29 20:34:56 2001
+++ wine/tools/winebuild/spec16.c	Tue May 22 21:50:58 2001
@@ -519,8 +519,8 @@
         fprintf( outfile, "    void *rec, *addr;\n" );
         fprintf( outfile, "    unsigned int params;\n" );
         fprintf( outfile, "    const void *info[15];\n" );
-        fprintf( outfile, "  } rec;\n" );
-        fprintf( outfile, "  extern void RtlRaiseException( struct exc_record * );\n\n" );
+        fprintf( outfile, "  } rec;\n\n" );
+        fprintf( outfile, "  extern void __stdcall RtlRaiseException( struct exc_record * );\n\n" );
         fprintf( outfile, "  rec.code    = 0x%08x;\n", EXCEPTION_WINE_STUB );
         fprintf( outfile, "  rec.flags   = %d;\n", EH_NONCONTINUABLE );
         fprintf( outfile, "  rec.rec     = 0;\n" );
@@ -582,6 +582,13 @@
     strupper( DLLName );
 
     fprintf( outfile, "static const char dllname[] = \"%s\";\n\n", DLLName );
+
+#ifdef __i386__
+    fprintf( outfile, "#define __stdcall __attribute__((__stdcall__))\n\n" );
+#else
+    fprintf( outfile, "#define __stdcall\n\n" );
+#endif
+
     output_stub_funcs( outfile );
 
     /* Build sorted list of all argument types, without duplicates */
diff -u cvs/hq/wine/tools/winebuild/spec32.c wine/tools/winebuild/spec32.c
--- cvs/hq/wine/tools/winebuild/spec32.c	Sat Mar 24 13:52:41 2001
+++ wine/tools/winebuild/spec32.c	Tue May 22 21:55:35 2001
@@ -441,7 +441,7 @@
     AssignOrdinals();
     nr_exports = Base <= Limit ? Limit - Base + 1 : 0;
 
-    resolve_imports( outfile );
+    resolve_imports();
 
     fprintf( outfile, "/* File generated automatically from %s; do not edit! */\n\n",
              input_file_name );
@@ -451,7 +451,7 @@
     fprintf( outfile, "extern char pe_header[];\n" );
     fprintf( outfile, "asm(\".section .text\\n\\t\"\n" );
     fprintf( outfile, "    \".align %d\\n\"\n", get_alignment(page_size) );
-    fprintf( outfile, "    \"pe_header:\\t.fill %ld,1,0\\n\\t\");\n", page_size );
+    fprintf( outfile, "    \"" PREFIX "pe_header:\\t.fill %ld,1,0\\n\\t\");\n", page_size );
 
     fprintf( outfile, "static const char dllname[] = \"%s\";\n\n", DLLName );
     fprintf( outfile, "extern int __wine_spec_exports[];\n\n" );






More information about the wine-patches mailing list