Re: Could not run Digital Mars C/C++ Compiler under Wine
On Sat, 25 Mar 2006, Eric Pouech wrote: Igor Sysoev wrote: On Thu, 23 Mar 2006, Eric Pouech wrote: Igor Sysoev wrote: When I try to run any program from Digital Mars C/C++ Compiler http://www.digitalmars.com/download/freecompiler.html under Wine 0.9.10 on FreeBSD 6.1, I always see the error: this works fine here (on Linux)... may be a freebsd issue ? Well, is the way to try to debug the problem ? Some debug log ? from what I see from your first post, a few remarks: - file_set_error: Bad address => likely a read/write operation that fails with an incorrect buffer - stack overflow sent as a signal to the debugger it may well sound like that the running thread doesn't have all the required memory another strange item: fs is set to 1007 which is a rather high value (maybe that's what you get on FreeBSD) I'd start by looking at the stack allocation for the threads it also seems that you cannot get to the debug information (as dbghelp cannot initiate), but this sounds like another issue I can run "WINEDEBUG=+all wine dmc.exe" and send a log. Igor Sysoev http://sysoev.ru/en/
Re: ilink32 hungs under Wine 0.9.10
On Thu, 23 Mar 2006, Igor Sysoev wrote: When I try to link with ilink32.exe from C++ Builder Compiler and Command Line Tools ( http://appdb.winehq.org/appview.php?versionId=1423 ) ilink32 hangs. I saw comment on http://appdb.winehq.org/appview.php?versionId=1423 about changing ADDRESS_SPACE_LIMIT. Could be applied to 0.9.10 ? I've tested changing ADDRESS_SPACE_LIMIT to 0x8000 (patch attached) and ilink32.exe runs successfully. There is another patch http://www.winehq.com/hypermail/wine-devel/2004/03/att-0082/01-0012-wine-fix-bcc55.patch that marks the page at 0x8000 as reserved. As I know Windows has a compatibility code to emulate old bugs and undocumented for some applications depending on program name. Why not to add similar functionality to Wine ? Igor Sysoev http://sysoev.ru/en/--- dlls/ntdll/virtual.cSat Mar 25 13:36:11 2006 +++ dlls/ntdll/virtual.cSat Mar 25 13:49:41 2006 @@ -120,7 +120,7 @@ static RTL_CRITICAL_SECTION csVirtual = # define page_shift 12 # define page_size 0x1000 /* Note: these are Windows limits, you cannot change them. */ -# define ADDRESS_SPACE_LIMIT ((void *)0xc000) /* top of the total available address space */ +# define ADDRESS_SPACE_LIMIT ((void *)0x8000) /* top of the total available address space */ # define USER_SPACE_LIMIT ((void *)0x7fff) /* top of the user address space */ #else static UINT page_shift;
Re: GetExitCodeProcess always returns 1
On Thu, 23 Mar 2006, Igor Sysoev wrote: 3 years ago I reported that on FreeBSD Wine-20030508's GetExitCodeProcess() always returns 1: http://www.winehq.org/hypermail/wine-devel/2003/06/0100.html This report included a small test case. It was fixed by patch: http://www.winehq.org/hypermail/wine-devel/2003/06/0381.html and I used the patched Wine-20030508 to run MSVC, OpenWatcom C, and Borland C in a command line. Recenty I build Wine-0.9.10 from ports on FreeBSD 6.1, but GetExitCodeProcess() still always returns 1. The attached patch is the same patch but for Wine-0.9.10. I've tested it on FreeBSD 6.1. Igor Sysoev http://sysoev.ru/en/--- server/process.cWed Mar 15 17:50:50 2006 +++ server/process.cFri Mar 24 21:44:28 2006 @@ -660,7 +660,7 @@ void kill_process( struct process *proce { struct thread *thread = LIST_ENTRY( ptr, struct thread, proc_entry ); -thread->exit_code = exit_code; +if (exit_code) thread->exit_code = exit_code; if (thread != skip) kill_thread( thread, 1 ); } } --- server/request.cWed Mar 15 17:50:50 2006 +++ server/request.cFri Mar 24 21:45:38 2006 @@ -397,7 +397,7 @@ int receive_fd( struct process *process if (ret > 0) fprintf( stderr, "Protocol error: process %p: partial recvmsg %d for fd\n", process, ret ); -kill_process( process, NULL, 1 ); +kill_process( process, NULL, (ret > 0) ); } else {
Re: Could not run Digital Mars C/C++ Compiler under Wine
On Thu, 23 Mar 2006, Eric Pouech wrote: Igor Sysoev wrote: When I try to run any program from Digital Mars C/C++ Compiler http://www.digitalmars.com/download/freecompiler.html under Wine 0.9.10 on FreeBSD 6.1, I always see the error: this works fine here (on Linux)... may be a freebsd issue ? Well, is the way to try to debug the problem ? Some debug log ? Igor Sysoev http://sysoev.ru/en/
Re: GetExitCodeProcess always returns 1
On Thu, 23 Mar 2006, Mike McCormack wrote: Igor Sysoev wrote: It seems the tests try to use my old .wine for Wine-20030508. I have renamed it and now I can run tests. Here are some failed tests (I run make -i test to ignore failures): ../../../tools/runtest -q -P wine -M kernel32.dll -T ../../.. -p kernel32_test.e xe.so change.c && touch change.ok fixme:file:NtNotifyChangeDirectoryFile parameters ignored 0x0 0x0 1 change.c:287: Test failed: should be ready Maybe Alexandre would accept patches to add a todo_wine_freebsd {} to the test suite where there's things that are hard to fix? It seems that I am the first person who ever run the Wine regression tests on FreeBSD :) Actually the test results did not bother me too much. The wrong exit code simply means that I could not use the "make" under Wine on FreeBSD: "make" stops after the first command. Igor Sysoev http://sysoev.ru/en/
Re: GetExitCodeProcess always returns 1
On Thu, 23 Mar 2006, Mike McCormack wrote: Igor Sysoev wrote: Should Wine be already installed before run these tests ? I've tried: make test ../../../tools/runtest -q -P wine -M kernel32.dll -T ../../.. -p kernel32_test.exe.so alloc.c && touch alloc.ok Warning: the specified Windows directory L"c:\\windows" is not accessible. Warning: the specified System directory L"c:\\windows\\system32" is not accessible. Warning: could not find DOS drive for current working directory '/usr/ports/emulators/wine/work/wine-0.9.10/dlls/kernel/tests', starting in the Windows directory. wine: could not load L"c:\\windows\\system32\\kernel32_test.exe.so": Module not found *** Error code 126 No, it should work without Wine installed, and without a ~/.wine Perhaps try running wine/tools/wineprefixcreate first? bash-3.00$ rm -rf ~/.wine bash-3.00$ cd dlls/kernel bash-3.00$ make test make[1]: Entering directory `/home/mike/wine/dlls/kernel/tests' ../../../tools/runtest -q -P wine -M kernel32.dll -T ../../.. -p kernel32_test.exe.so alloc.c && touch alloc.ok wine: creating configuration directory '/home/mike/.wine'... wine: '/home/mike/.wine' created successfully. ../../../tools/runtest -q -P wine -M kernel32.dll -T ../../.. -p kernel32_test.exe.so atom.c && touch atom.ok ... It seems the tests try to use my old .wine for Wine-20030508. I have renamed it and now I can run tests. Here are some failed tests (I run make -i test to ignore failures): ../../../tools/runtest -q -P wine -M kernel32.dll -T ../../.. -p kernel32_test.e xe.so change.c && touch change.ok fixme:file:NtNotifyChangeDirectoryFile parameters ignored 0x0 0x0 1 change.c:287: Test failed: should be ready change.c:290: Test failed: should be ready change.c:302: Test failed: should be ready change.c:305: Test failed: should be ready fixme:file:NtNotifyChangeDirectoryFile parameters ignored 0x0 0x0 1 [ Here Wine-0.9.10 hangs and I have killed the process ] ../../../tools/runtest -q -P wine -M kernel32.dll -T ../../.. -p kernel32_test.e xe.so file.c && touch file.ok file.c:246: Test failed: shouldn't be able to delete a readonly file file.c:248: Test failed: couldn't change attributes on file file.c:250: Test failed: now it should be possible to delete the file! file.c:1271: Test failed: mapping should fail file.c:1275: Test failed: mapping should fail file.c:1281: Test failed: DeleteFile failed after map file.c:1288: Test failed: open testfile.xxx failed file.c:1290: Test failed: expected type disk got 0 *** Error code 8 (ignored) ../../../tools/runtest -q -P wine -M kernel32.dll -T ../../.. -p kernel32_test.e xe.so mailslot.c && touch mailslot.ok mailslot.c:195: Test failed: dwNext incorrect mailslot.c:206: Test failed: dwNext incorrect mailslot.c:218: Test failed: dwNext incorrect mailslot.c:238: Test failed: dwNext incorrect mailslot.c:255: Test succeeded inside todo block: dwMsgCount incorrect mailslot.c:260: Test succeeded inside todo block: 3rd slot read failed *** Error code 6 (ignored) ../../../tools/runtest -q -P wine -M kernel32.dll -T ../../.. -p kernel32_test.e xe.so pipe.c && touch pipe.ok pipe.c:134: Test succeeded inside todo block: peek3 got 21 bytes pipe.c:146: Test succeeded inside todo block: pipe content 3b check pipe.c:166: Test succeeded inside todo block: peek4 got 21 bytes pipe.c:178: Test succeeded inside todo block: pipe content 4b check pipe.c:138: Test failed: peek3 got 21 bytes pipe.c:170: Test failed: peek4 got 21 bytes pipe.c:215: Test failed: peek5 got 21 bytes pipe.c:246: Test failed: peek6 got 21 bytes *** Error code 8 (ignored) ../../../tools/runtest -q -P wine -M kernel32.dll -T ../../.. -p kernel32_test.e xe.so process.c && touch process.ok err:wineconsole:WCUSER_SetFont wrong font process.c:1246: Test failed: ExitCode:value expected 1, but got 123 *** Error code 1 (ignored) The last message is strange: process.c:1246: Test failed: ExitCode:value expected 1, but got 123 The child should return 123 and this value should be expected. Igor Sysoev http://sysoev.ru/en/
Re: GetExitCodeProcess always returns 1
On Thu, 23 Mar 2006, Mike McCormack wrote: Igor Sysoev wrote: Well, but then I could not build Wine port under FreeBSD: as I understand the port runs something like ./configure && make depend && make && make install But I have built and installed Wine successfully. Sorry, misunderstood you. The tests don't run on every build, you have to run them explicitly. Try running "make test", or "cd dlls/kernel; make test" Should Wine be already installed before run these tests ? I've tried: make test ../../../tools/runtest -q -P wine -M kernel32.dll -T ../../.. -p kernel32_test.exe.so alloc.c && touch alloc.ok Warning: the specified Windows directory L"c:\\windows" is not accessible. Warning: the specified System directory L"c:\\windows\\system32" is not accessible. Warning: could not find DOS drive for current working directory '/usr/ports/emulators/wine/work/wine-0.9.10/dlls/kernel/tests', starting in the Windows directory. wine: could not load L"c:\\windows\\system32\\kernel32_test.exe.so": Module not found *** Error code 126 Igor Sysoev http://sysoev.ru/en/
Re: GetExitCodeProcess always returns 1
On Thu, 23 Mar 2006, Mike McCormack wrote: Igor Sysoev wrote: It seems that dlls/kernel/tests/process.c already has such test: test_ExitCode(). Does it run while usual build ? Yes, it is run after commits, so it's likely that it's only broken on FreeBSD. Well, but then I could not build Wine port under FreeBSD: as I understand the port runs something like ./configure && make depend && make && make install But I have built and installed Wine successfully. Igor Sysoev http://sysoev.ru/en/
Re: GetExitCodeProcess always returns 1
On Thu, 23 Mar 2006, Mike McCormack wrote: Igor Sysoev wrote: 3 years ago I reported that on FreeBSD Wine-20030508's GetExitCodeProcess() always returns 1: http://www.winehq.org/hypermail/wine-devel/2003/06/0100.html This report included a small test case. It was fixed by patch: http://www.winehq.org/hypermail/wine-devel/2003/06/0381.html and I used the patched Wine-20030508 to run MSVC, OpenWatcom C, and Borland C in a command line. Recenty I build Wine-0.9.10 from ports on FreeBSD 6.1, but GetExitCodeProcess() still always returns 1. If you turn your test case into a Wine regression test, and add it to dlls/kernel/tests/process.c, then it won't be broken on Linux, and therefore there's a better chance it won't break on FreeBSD. It's also up to FreeBSD users to make sure Wine doesn't break on FreeBSD by making the test cases pass and testing them regularly to find regressions. It seems that dlls/kernel/tests/process.c already has such test: test_ExitCode(). Does it run while usual build ? Igor Sysoev http://sysoev.ru/en/
ilink32 hungs under Wine 0.9.10
When I try to link with ilink32.exe from C++ Builder Compiler and Command Line Tools ( http://appdb.winehq.org/appview.php?versionId=1423 ) ilink32 hangs. I saw comment on http://appdb.winehq.org/appview.php?versionId=1423 about changing ADDRESS_SPACE_LIMIT. Could be applied to 0.9.10 ? Igor Sysoev http://sysoev.ru/en/
Could not run Digital Mars C/C++ Compiler under Wine
When I try to run any program from Digital Mars C/C++ Compiler http://www.digitalmars.com/download/freecompiler.html under Wine 0.9.10 on FreeBSD 6.1, I always see the error: C:\dmc\bin>dmc wine: Unhandled stack overflow at address 0x405620 (thread 0017), starting debugger... WineDbg starting on pid 0x16 Couldn't initiate DbgHelp Unhandled exception: stack overflow in 32-bit code (0x00405620). file_set_error: Bad address file_set_error: Bad address Register dump: CS:0033 SS:003b DS:003b ES:003b FS:1007 GS:001b EIP:00405620 ESP:0035ff6c EBP:0035ffe8 EFLAGS:00010216( - 00 -RIAP1) EAX: EBX:9c297064 ECX:0035ff1c EDX: ESI:9c099460 EDI:00405620 Stack dump: 0x0035ff6c: 9c20b210 9c099460 0x0035ff7c: 9c1d1ff8 9c1e47ec 0x0035ff8c: 9c20b1a8 9c297064 0035ff6c 0035ffe8 0x0035ff9c: 0011 1000 127f 0x0035ffac: 0001 0x0035ffbc: 0200: sel=1007 base=0011 limit=1fff 32-bit rw- Backtrace: =>1 0x00405620 (0x00405620) file_set_error: Bad address 0x00405620: -- no code accessible -- Modules: Module Address Debug info Name (0 modules) Threads: process tid prio (all id:s are in hex) 0016 (D) C:\dmc\bin\dmc.exe 00170 <== 0008 00090 Igor Sysoev http://sysoev.ru/en/
GetExitCodeProcess always returns 1
3 years ago I reported that on FreeBSD Wine-20030508's GetExitCodeProcess() always returns 1: http://www.winehq.org/hypermail/wine-devel/2003/06/0100.html This report included a small test case. It was fixed by patch: http://www.winehq.org/hypermail/wine-devel/2003/06/0381.html and I used the patched Wine-20030508 to run MSVC, OpenWatcom C, and Borland C in a command line. Recenty I build Wine-0.9.10 from ports on FreeBSD 6.1, but GetExitCodeProcess() still always returns 1. Igor Sysoev http://sysoev.ru/en/
GetExitCodeProcess always returns 1
2 years ago I reported that on FreeBSD Wine-20030508's GetExitCodeProcess() always returns 1: http://www.winehq.org/hypermail/wine-devel/2003/06/0100.html It was fixed by patch: http://www.winehq.org/hypermail/wine-devel/2003/06/0381.html and I used the patched Wine-20030508 all the time to run MSVC, OpenWatcom C, and Borland C in a command line. However, when I try to run dmc.exe, sc.exe, or make.exe from Digital Mars C/C++ Compiler, I always see the message: wine: Unhandled exception (thread 0009), starting debugger... I build Wine-20050310, but it has the same two problems: 1) GetExitCodeProcess() always returns 1 on FreeBSD 5.3, 2) and wine could not run Digital Mars C/C++ Compiler. Digital Mars C/C++ Compiler is could be downloaded here: http://www.digitalmars.com/download/freecompiler.html Igor Sysoev http://sysoev.ru/en/