Hi,
Since no one had similar problems as I did on sparc solaris (no reply to my previous email sent to wine-devel on /Wed Oct 02 2002 - 09:38:12 CDT/ ). I started to debug it. First problem lies here:
$WINE_ROOT/dlls/ntdll/virtual.c:986
There is a condition that says:
(char *)base + size > (char *)ADDRESS_SPACE_LIMIT
If base+size is above address space limit, NtAllocateVirtualMemory fails. Problem is, that addresses returned by wine_anon_mmap function ($WINE_ROOT/library/port.c:458) - which in turn calls system mmap - are far behind ADDRESS_SPACE_LIMIT (ADDRESS_SPACE_LIMIT=0xc0000000, definition in $WINE_ROOT/dlls/ntdll/virtual.c:110). Just to be precise, they are around 0xfe000000 and higher.
I changed address space limit to -1, just to avoid this problem (I know, this is probably not the best solution, but I didn't find better one at the moment). After this change NtAllocateVirtualMemory passed.
When I run it again, I got stuck in setup_dos_mem() function ($WINE_ROOT/msdos/dosmem.c:489) where is error saying:
"Cannot use first megabyte for DOS address space, please report."
After deeper insight I figured out that try_mmap_fixed() function failed ($WINE_ROOT/library/port.c:431), because memory page we were trying to allocate was alredy mapped.
So, question is: Is there any way how to solve these two problems (address space limit, already mapped pages) correctly?
Thanks for reply.
Juraj