On Sun, 5 Sep 2004, Anish Mistry wrote: >> Anish, do you have any news on this patch? (Wine has been broken for a >> couple of months now, and it would be great to have at least 5.3 fixed.) > I'm still in the process of try to fix wine so that the new versions after > June work too. Unless I have some major break through or someone else can > fix the problem of wine not loading the evecutable at the default load > location it probably won't be. Do you have any news on that, Anish? I just tried to disable the mmap calls that have been causing troubles, by means of the patch below, which leads to a different error -- Wine is rapidly deteriorating on FreeBSD, we really need to get something working soon, or it'll be dead in the water forever. :-( > To see what I mean use Brian Fundakowski Feldman's patch to fix a pthread > problem in (thr_stack.c) and apply my mmap patch and try to run a few > programs with the August version of wine. > What seems to be the problem is that there is an mmap call in wine that I > can't seem to find that ends up allocating allocating the space at least on > my system (addr=0x003a0000 size=0x00010100) after the initial mmaping that > consumes the default load location of 0x00400000 so then wine doesn't like > that and dies. Some apps DO work since apparently they don't trigger the > previously stated mmap over the load location. If I try to run the current (= October) version of Wine with the patch below, on FreeBSD 4.10, I get: assertion "libc_sigaction" failed: file "kthread.c", line 943. Gerald 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 _at__at_ -254,6 +254,9 _at__at_ 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; _at__at_ -280,6 +283,7 _at__at_ 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) +#endif #endif reserve_area( base, 0 ); }Received on Sat Oct 30 2004 - 18:16:01 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:20 UTC