On Mon, Jun 7, 2010 at 10:38 AM, Maarten Lankhorst <m.b.lankhorst(a)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