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
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++)