Make us work on FreeBSD again by working around their different mmap()

implementation.
This commit is contained in:
Gerald Pfeifer 2004-12-15 10:51:51 +00:00 committed by Alexandre Julliard
parent 64b4d5a40f
commit e5f6637eec
2 changed files with 7 additions and 4 deletions

6
README
View File

@ -44,10 +44,8 @@ Linux info:
it's best to have a current kernel such as 2.4.x.
FreeBSD info:
Wine should build on FreeBSD 4.x and FreeBSD 5.x before 5.3, but will
generally not work on these systems due to issues with threading and
mmap(). In fact, even on FreeBSD 5.3 you will need the kernel patch
posted at <http://www.freebsd.org/cgi/query-pr.cgi?pr=73092>.
Wine should build on FreeBSD 4.x and FreeBSD 5.x, but versions before
FreeBSD 5.3 will generally not work properly.
More information can be found in the FreeBSD ports tree at
<ftp://ftp.freebsd.org/pub/FreeBSD/ports/ports/emulators/wine/>.

View File

@ -174,6 +174,11 @@ void *wine_anon_mmap( void *start, size_t size, int prot, int flags )
if (!(flags & MAP_FIXED))
{
#ifdef __FreeBSD__
/* Even FreeBSD 5.3 does not properly support NULL here. */
if( start == NULL ) start = (void *)0x110000;
#endif
#ifdef MAP_TRYFIXED
/* If available, this will attempt a fixed mapping in-kernel */
flags |= MAP_TRYFIXED;