Wine on FreeBSD (Was: Re: How to determine if something is "debuggable" ... ?)

Marc G. Fournier scrappy at hub.org
Sat Jun 2 01:07:48 CDT 2007


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1



- --On Saturday, June 02, 2007 05:28:31 +0000 "L. Rahyen" <research at science.su> 
wrote:

> 	I think that it should work great under 0.9.36 too. But I always use latest
> Wine git tree - that is, latest version of Wine compiled from source. And
> yes, 0.9.38 is the latest release.

Just built 0.9.38 under FreeBSD, and it doesn't even run :(  Never a good sign 
... but explains why the port is 2 releases old ...

> 	I'm pretty sure he is. There is problems with FreeBSD that needs to be
> resolved by FreeBSD community - i.e. by people who knows FreeBSD and have
> time, will and neccessary skills to help. Problems will never resolve
> magically themself. Unfortunatelly most (all?) Wine developers know little > 
> or
> nothing about FreeBSD and cannot solve these problems. And I know nothing
> about FreeBSD too - I even never used it... You may want to search for
> FreeBSD related bugs in bugzilla to understand current problems with Wine
> and FreeBSD better.

Well, it kind of works both ways ... one has to know what the problem if with 
wine under FreeBSD before one can provide a 'FreeBSD solution' to it :(

As an example, I just upgraded to 0.9.38 on my machine, and tried to run 
'terminal.exe', and it SegFaulted:

> wine terminal.exe
trace:virtual:NtAllocateVirtualMemory 0xffffffff 0x7ffe0000 00010000 3000 
00000004
trace:virtual:add_reserved_area adding 0x9c1fc000-0x9c20c000
trace:virtual:NtAllocateVirtualMemory 0xffffffff 0x0 000001d8 101000 00000004
trace:virtual:map_view got mem with anon mmap 0x110000-0x111000
trace:virtual:VIRTUAL_DumpView View: 0x110000 - 
0x110ffftrace:virtual:VIRTUAL_DumpView  (anonymous)
trace:virtual:VIRTUAL_DumpView       0x110000 - 0x110fff c-rw-
trace:ntdll:RtlInitializeBitMap (0x9c1e5b2c,0x110044,64)
trace:ntdll:RtlInitializeBitMap (0x9c1e5b34,0x110154,1024)
trace:virtual:NtAllocateVirtualMemory 0xffffffff 0x0 00002000 101000 00000004
trace:virtual:map_view got mem with anon mmap 0x111000-0x113000
trace:virtual:VIRTUAL_DumpView View: 0x112000 - 
0x113ffftrace:virtual:VIRTUAL_DumpView  (anonymous)
trace:virtual:VIRTUAL_DumpView       0x112000 - 0x113fff c-rw-
sock_init: shutdown() causes EOF
wineserver: starting (pid=18067)
0008: *fd* 0x0 -> 18
0009: init_thread( unix_pid=18065, unix_tid=-1, debug_level=1, teb=0x112000, 
peb=0x110000, entry=0x0, ldt_copy=0x9c033be0, reply_fd=6, wait_fd=8 )
0009: *fd* 6 <- 18
0009: *fd* 8 <- 19
0009: init_thread() = 0 { pid=0008, tid=0009, info_size=0, 
server_start=1c7a4d8d6539a04 (-0.0250700), version=304 }
0009:trace:virtual:NtAllocateVirtualMemory 0xffffffff 0x0 00110000 2000 00000004
0009:trace:virtual:map_view got mem with anon mmap 0x114000-0x224000
0009:trace:virtual:VIRTUAL_DumpView View: 0x120000 - 0x22ffff (anonymous)
0009:trace:virtual:VIRTUAL_DumpView       0x120000 - 0x22ffff --rw-
0009:trace:virtual:NtAllocateVirtualMemory 0xffffffff 0x120000 00010000 1000 
00000004
0009:trace:virtual:VIRTUAL_SetProt 0x120000-0x12ffff c-rw-
0009:trace:virtual:VIRTUAL_DumpView View: 0x120000 - 0x22ffff (valloc)
0009:trace:virtual:VIRTUAL_DumpView       0x120000 - 0x12ffff c-rw-
0009:trace:virtual:VIRTUAL_DumpView       0x130000 - 0x22ffff --rw-
0009: *fd* 0 <- 20
0009: alloc_file_handle( access=80100000, attributes=00000002, fd=0 )
0009: alloc_file_handle() = 0 { handle=0x4 }
0009: alloc_file_handle( access=40100000, attributes=00000002, fd=1 )
0009: *fd* 1 <- 21
0009: alloc_file_handle() = 0 { handle=0x8 }
0009: *fd* 2 <- 22
0009: alloc_file_handle( access=40100000, attributes=00000002, fd=2 )
0009: alloc_file_handle() = 0 { handle=0xc }
0009: *killed* exit_code=0
Segmentation fault (core dumped)

So, I guess the first question is ... why the SegFault, as far as Wine is 
concerned?  Since 0.9.36 worked, and 0.9.38 isn't, where in the code are things 
above failing, that I can compare (doing a diff) changes to see if I can figure 
out what changed between the versions, and what needs to change 
FreeBSD-specific to bring things back in line again?

I don't find the trace above to be very informative, but that's problem due to 
not understanding the code itself ...

Now, just a quick look with gdb:

(gdb) where
#0  0x9c1aec52 in thread_init () from /usr/X11R6/lib/wine/ntdll.dll.so
#1  0x9c194019 in __wine_process_init () from /usr/X11R6/lib/wine/ntdll.dll.so
#2  0x9bf38f5a in wine_init () from /usr/X11R6/lib/libwine.so.1
#3  0x7bf011cc in main ()
(gdb)

but since:

Reading symbols from /usr/X11R6/lib/libwine.so.1...(no debugging symbols 
found)...done

obviously getting more information from that is going to be useless ... are 
there any recommended settings for configure'ng / building, so that gdb can get 
more information?

- ----
Marc G. Fournier           Hub.Org Networking Services (http://www.hub.org)
Email . scrappy at hub.org                              MSN . scrappy at hub.org
Yahoo . yscrappy               Skype: hub.org        ICQ . 7615664
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (FreeBSD)

iD8DBQFGYQk04QvfyHIvDvMRAoKLAJ42z5EjpDAwm816v7EdJjOv5gtZlQCfX3Oi
D+ykkEbVrIZmn16AXZoweo4=
=zNjw
-----END PGP SIGNATURE-----




More information about the wine-devel mailing list