On Mon, Jun 7, 2010 at 10:38 AM, Maarten Lankhorst m.b.lankhorst@gmail.com wrote:
I cannot find it the reference for it at the moment, but I remember that by default the stack is in memory < 4gb on 64-bits too, unless you did something. I wish I could remember how you could override the behavior, but this could be why it won't run in wine, but will in windows.
For a stack variable:
Wine64: &a = 0x7F9E9381FCDC Win64: &a = 0x22FE7C win64_32: &a = 0x28FF44
Seems stack is always at higher addresses and heap at lower ones. The only sysctl which seems to affect this is kernel.randomize_va_space, but it won't change virtual address very much.
$ sudo sysctl kernel.randomize_va_space=0 kernel.randomize_va_space = 0 $ cat /proc/self/maps | grep 'stack|heap' 0060f000-00630000 rw-p 00000000 00:00 0 [heap] 7ffffffea000-7ffffffff000 rw-p 00000000 00:00 0 [stack] $ sudo sysctl kernel.randomize_va_space=2 kernel.randomize_va_space = 2 $ cat /proc/self/maps | grep 'stack|heap' 00b6d000-00b8e000 rw-p 00000000 00:00 0 [heap] 7fff8676f000-7fff86784000 rw-p 00000000 00:00 0 [stack]
Or are you talking about a wineloader kind of option?
Octavian