On Tuesday 24 March 2009 12:36:05 Francois Gouget wrote: > Tijl Coosemans a écrit : > [...] >> Wine wants to allocate a few things in reserved areas, and because >> there were no reserved areas at all on FreeBSD it failed. That's bug >> 16023. My patch leaves enough reserved area for Wine to allocate >> these, but otherwise reservation isn't needed like it is on Linux. > > I have tested your patch here and the Flash installer still works. So > I guess that means your analysis is spot on and that it's ok to apply > it. Probably Alexandre will know.
So, what do you think about this patch Alexandre?
diff --git libs/wine/mmap.c libs/wine/mmap.c index d107fc7..8286052 100644 --- libs/wine/mmap.c +++ libs/wine/mmap.c @@ -344,9 +344,13 @@ void mmap_init(void) struct reserved_area *area; struct list *ptr; #ifdef __i386__ + char *user_space_limit = (char *)0x7ffe0000; +#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) + reserve_malloc_space( 8 * 1024 * 1024 ); + reserve_area( user_space_limit, (char *)0x82000000 ); +#else char stack; char * const stack_ptr = &stack; - char *user_space_limit = (char *)0x7ffe0000; reserve_malloc_space( 8 * 1024 * 1024 ); @@ -377,6 +381,7 @@ void mmap_init(void) reserve_area( base, end ); } else reserve_area( user_space_limit, 0 ); +#endif #endif /* __i386__ */ /* reserve the DOS area if not already done */