Wine on Sparc

Eric Frias efrias at syncad.com
Wed May 25 15:59:39 CDT 2005


Chuck Hall wrote:
> On Wed, 25 May 2005, Eric Frias wrote:
>>I'll be trying to get the current wine running this afternoon; I'll post 
>>something when it's working.
> 
> I look forward to hearing how this turns out.

It actually went more smoothly than I expected.  I've attached a patch 
with the minimal changes I needed to get 'notepad' running.  As you can 
see, I disabled winedbg, oleaut32, and dbghelp because they are missing 
some assembly bits, and they aren't strictly necessary for most winelib 
applications.  I haven't tried compiling or running anything big with 
this, so it may be missing a few patches... but it's a start.

Eric
-------------- next part --------------
Index: programs/Makefile.in
===================================================================
--- programs/Makefile.in	(revision 30735)
+++ programs/Makefile.in	(working copy)
@@ -27,7 +27,6 @@
 	winebrowser \
 	winecfg \
 	wineconsole \
-	winedbg \
 	winefile \
 	winemenubuilder \
 	winemine \
@@ -58,7 +57,6 @@
 	winebrowser \
 	winecfg \
 	wineconsole \
-	winedbg \
 	winefile \
 	winemenubuilder \
 	winemine \
@@ -81,7 +79,6 @@
 	winebrowser \
 	winecfg \
 	wineconsole \
-	winedbg \
 	winefile \
 	winemine \
 	winepath \
@@ -112,7 +109,6 @@
 	winebrowser.exe$(DLLEXT) \
 	winecfg.exe$(DLLEXT) \
 	wineconsole.exe$(DLLEXT) \
-	winedbg.exe$(DLLEXT) \
 	winefile.exe$(DLLEXT) \
 	winemenubuilder.exe$(DLLEXT) \
 	winemine.exe$(DLLEXT) \
Index: programs/winetest/Makefile.in
===================================================================
--- programs/winetest/Makefile.in	(revision 30735)
+++ programs/winetest/Makefile.in	(working copy)
@@ -39,7 +39,6 @@
 	netapi32_test.exe$(DLLEXT) \
 	ntdll_test.exe$(DLLEXT) \
 	ole32_test.exe$(DLLEXT) \
-	oleaut32_test.exe$(DLLEXT) \
 	psapi_test.exe$(DLLEXT) \
 	quartz_test.exe$(DLLEXT) \
 	rpcrt4_test.exe$(DLLEXT) \
Index: dlls/ntdll/signal_sparc.c
===================================================================
--- dlls/ntdll/signal_sparc.c	(revision 30735)
+++ dlls/ntdll/signal_sparc.c	(working copy)
@@ -388,7 +388,7 @@
 
     /* wait with 0 timeout, will only return once the thread is no longer suspended */
     timeout.QuadPart = 0;
-    NTDLL_wait_for_multiple_objects( 0, NULL, 0, &timeout );
+    NTDLL_wait_for_multiple_objects( 0, NULL, 0, &timeout, 0 );
 }
 
 
Index: dlls/ole32/storage32.c
===================================================================
--- dlls/ole32/storage32.c	(revision 30735)
+++ dlls/ole32/storage32.c	(working copy)
@@ -4130,8 +4130,8 @@
     ULARGE_INTEGER tmp;
 
     memcpy(&tmp, buffer + offset, sizeof(ULARGE_INTEGER));
-    value->LowPart = htole32(tmp.HighPart);
-    value->HighPart = htole32(tmp.LowPart);
+    value->u.LowPart = htole32(tmp.u.HighPart);
+    value->u.HighPart = htole32(tmp.u.LowPart);
 #else
     memcpy(value, buffer + offset, sizeof(ULARGE_INTEGER));
 #endif
@@ -4143,8 +4143,8 @@
 #ifdef WORDS_BIGENDIAN
     ULARGE_INTEGER tmp;
 
-    tmp.LowPart = htole32(value->HighPart);
-    tmp.HighPart = htole32(value->LowPart);
+    tmp.u.LowPart = htole32(value->u.HighPart);
+    tmp.u.HighPart = htole32(value->u.LowPart);
     memcpy(buffer + offset, &tmp, sizeof(ULARGE_INTEGER));
 #else
     memcpy(buffer + offset, value, sizeof(ULARGE_INTEGER));
Index: dlls/Makefile.in
===================================================================
--- dlls/Makefile.in	(revision 30735)
+++ dlls/Makefile.in	(working copy)
@@ -36,7 +36,6 @@
 	d3dim \
 	d3drm \
 	d3dxof \
-	dbghelp \
 	dciman32 \
 	devenum \
 	dinput \
@@ -100,7 +99,6 @@
 	odbccp32 \
 	ole32 \
 	oleacc \
-	oleaut32 \
 	olecli \
 	oledlg \
 	olepro32 \
@@ -270,7 +268,6 @@
 	d3dim.dll.so \
 	d3drm.dll.so \
 	d3dxof.dll.so \
-	dbghelp.dll.so \
 	dciman32.dll.so \
 	devenum.dll.so \
 	dinput.dll.so \
@@ -346,7 +343,6 @@
 	odbccp32.dll.so \
 	ole32.dll.so \
 	oleacc.dll.so \
-	oleaut32.dll.so \
 	olecli32.dll.so \
 	oledlg.dll.so \
 	olepro32.dll.so \
Index: tools/winebuild/import.c
===================================================================
--- tools/winebuild/import.c	(revision 30735)
+++ tools/winebuild/import.c	(working copy)
@@ -753,7 +753,11 @@
     fprintf( outfile, "#ifndef __GNUC__\nstatic void __asm__dummy_import(void) {\n#endif\n\n" );
     pos = (sizeof(void *) + 2*sizeof(unsigned int) + sizeof(const char *) + sizeof(void *)) *
             (nb_imm + 1);  /* offset of imports.data from start of imports */
+#if defined(__sun) && defined(__sparc)
+    fprintf( outfile, "asm(\".section\\t\\\".data.rel.local\\\"\\n\\t.align %d\\n\"\n", get_alignment(8) );
+#else
     fprintf( outfile, "asm(\".text\\n\\t.align %d\\n\"\n", get_alignment(8) );
+#endif
     fprintf( outfile, "    \"" __ASM_NAME("%s") ":\\n\"\n", import_thunks);
 
     for (i = 0; i < nb_imports; i++)
@@ -1057,7 +1061,11 @@
     }
     output_function_size( outfile, delayed_import_loaders );
 
+#if defined(__sun) && defined(__sparc)
+    fprintf( outfile, "\n    \".section\\t\\\".data.rel\\\"\\n\\t.align %d\\n\"\n", get_alignment(8) );
+#else
     fprintf( outfile, "\n    \".align %d\\n\"\n", get_alignment(8) );
+#endif
     fprintf( outfile, "    \"" __ASM_NAME("%s") ":\\n\"\n", delayed_import_thunks);
     pos = nb_delayed * 32;
     for (i = 0; i < nb_imports; i++)


More information about the wine-devel mailing list