Wine on FreeBSD current

Gerald Pfeifer pfeifer at
Sat Oct 30 15:21:31 CDT 2004

On Tue, 22 Jun 2004, Alexandre Julliard wrote:
> Gerald Pfeifer <pfeifer at> writes:
>> ...and in fact, Alexandre, wouldn't it be better to have _some_ apps 
>> broken under Wine on FreeBSD than a completely broken Wine on FreeBSD 
>> for all apps?
> Nope. What matters is not so much how many apps run today, but that we
> have a design that will allow at some point in the future to run all
> possible apps. We shouldn't compromise on a design that guarantees
> that some apps will *never* run just because it runs more apps today.
> Besides, a completely broken Wine is the best way to ensure that
> someone starts worrying about the issue <g>

Sadly, that's not how it worked this time.  Rather, FreeBSD users
are still using an old version of Wine, and Wine mainline gets worse
and worse on that platform.

Would you mind considering the patch below, so that we can at least
make some progress?


   Disable memory reservation code on FreeBSD, where it just doesn't work?
Index: libs/wine/mmap.c
RCS file: /home/wine/wine/libs/wine/mmap.c,v
retrieving revision 1.7
diff -u -3 -p -r1.7 mmap.c
--- libs/wine/mmap.c	24 Jul 2004 02:30:09 -0000	1.7
+++ libs/wine/mmap.c	30 Oct 2004 20:04:47 -0000
@@ -254,6 +254,9 @@ void mmap_init(void)
      struct reserved_area *area;
      struct list *ptr;
  #ifdef __i386__
+#if ! defined(__FreeBSD__)
+    /* FIXME: this is broken on FreeBSD (verified on 4.10 and 5.2.1). */
      char stack;
      char * const stack_ptr = &stack;
      char *user_space_limit = (char *)0x80000000;
@@ -280,6 +283,7 @@ void mmap_init(void)
          /* Linux heuristic: if the stack top is at c0000000, assume the address space */
          /* ends there, this avoids a lot of futile allocation attempts */
          if (base != (char *)0xc0000000)
              reserve_area( base, 0 );

More information about the wine-devel mailing list