[FreeBSD] locating wine at 0x20000000

Tijl Coosemans tijl at ulyssis.org
Wed Aug 9 10:52:03 CDT 2006

On Tuesday 08 August 2006 23:28, Alexandre Julliard wrote:
> Tijl Coosemans <tijl at ulyssis.org> writes:
> > Only the super-user can increase the max limit. Other users can only
> > decrease it. And all those unix shared libs (x11, etc.) need heap space
> > as well. I don't know how much they all need. Maybe a 128Mb heap would
> > be sufficient? That would bring us to 0x74000000.
> Do you need to set the max limit?  Isn't the current limit sufficient?

No, it's the max limit. The FreeBSD kernel code is pretty clear on that:

if (addr == 0 ||
    (addr >= round_page((vm_offset_t)vms->vm_taddr) &&
    addr < round_page((vm_offset_t)vms->vm_daddr +
    lim_max(td->td_proc, RLIMIT_DATA))))

  addr = round_page((vm_offset_t)vms->vm_daddr +
    lim_max(td->td_proc, RLIMIT_DATA));

So, when the addr argument to mmap is NULL or somewhere in the text
segment or maximum possible data segment it is pushed back to after the
data segment, which of course works quite well for any normal unix

Anyway, the situation is different in FreeBSD 7.0, so I need to think
this over some more and do some more testing.

More information about the wine-devel mailing list