http://bugs.winehq.org/show_bug.cgi?id=13915
--- Comment #52 from Anastasius Focht focht@gmx.net 2010-08-23 16:30:47 --- Hello,
the target (game) has much fewer shared libraries loaded in its early stage as it was initially created suspended. In contrast: the loader is fully initialized and has lots of X dependencies at this point giving addresses spaces a different layout.
Looking at the corresponding kernel32 locations:
Loader:
--- snip --- 7eb28000-7eb48000 rw-p 00000000 00:00 0 7eb48000-7ed48000 r--p 00000000 08:06 416308 /usr/lib64/locale/locale-archive
7ed48000-7ed60000 r-xp 00000000 08:06 154429 /usr/lib32/wine/kernel32.dll.so
7ed60000-7ed61000 rw-p 00000000 00:00 0 7ed61000-7edcd000 r-xp 00019000 08:06 154429 /usr/lib32/wine/kernel32.dll.so 7edcd000-7edce000 r--p 00084000 08:06 154429 /usr/lib32/wine/kernel32.dll.so 7edce000-7edd6000 rw-p 00085000 08:06 154429 /usr/lib32/wine/kernel32.dll.so 7edd6000-7edd8000 rwxp 0008d000 08:06 154429 /usr/lib32/wine/kernel32.dll.so 7edd8000-7eebc000 rw-p 0008f000 08:06 154429 /usr/lib32/wine/kernel32.dll.so --- snip ---
vs. target:
--- snip --- 7eb74000-7eb76000 rw-p 00000000 00:00 0 7eb76000-7ed76000 r--p 00000000 08:06 416308 /usr/lib64/locale/locale-archive
7ed76000-7ed90000 r-xp 00000000 08:06 154429 /usr/lib32/wine/kernel32.dll.so
7ed90000-7ed91000 rw-p 00000000 00:00 0 7ed91000-7edfb000 r-xp 0001b000 08:06 154429 /usr/lib32/wine/kernel32.dll.so 7edfb000-7edfc000 r--p 00084000 08:06 154429 /usr/lib32/wine/kernel32.dll.so 7edfc000-7ee04000 rw-p 00085000 08:06 154429 /usr/lib32/wine/kernel32.dll.so 7ee04000-7ee06000 rwxp 0008d000 08:06 154429 /usr/lib32/wine/kernel32.dll.so 7ee06000-7eeea000 rw-p 0008f000 08:06 154429 /usr/lib32/wine/kernel32.dll.so --- snip ---
There is not much you can do. Moving "locale-archive" is most likely not possible as this is glibc internal (mmap'd) and not a standard ELF binary which could be relocated (using prelink etc).
Can't you just get rid of the GUI stuff that pulls in the multitude of shared X libs? Making loader a console app might possibly fix this, giving both address spaces a similar layout without having OS loader moving/relocating much stuff around.
Regards