wine on sparc solaris
juraj at syncad.com
Wed Oct 9 07:54:18 CDT 2002
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:
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.
More information about the wine-devel