Been running 0.9.15 for a while without problems.
Since a week ago (or so) when I updated to HEAD, all I get from Wine is this:
wine-git # notepad
Segmentation fault
Nuking ~/.wine doesn't help:
wine-git # rm -rf ~/.wine
wine-git # notepad
wine: creating configuration directory '/root/.wine'...
/usr/local/bin/../lib/../bin/wineprefixcreate: line 171: 8574
Segmentation fault "${WINELOADER:-$bindir/wine}" rundll32.exe
setupapi.dll,InstallHinfSection DefaultInstall 128 wine.inf
wine: wineprefixcreate failed while creating '/root/.wine'.
GDB tells me a lot I don't quite understand:
wine-git # gdb --quiet --args /usr/local/bin/wine-pthread
/usr/local/bin/notepad.exe
Using host libthread_db library "/lib/tls/libthread_db.so.1".
(gdb) r
Starting program: /usr/local/bin/wine-pthread /usr/local/bin/notepad.exe
[Thread debugging using libthread_db enabled]
[New Thread -1211160288 (LWP 9620)]
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1211160288 (LWP 9620)]
0x00000000 in ?? ()
(gdb) bt
#0 0x00000000 in ?? ()
#1 0x7ffb0a40 in wine_server_call (req_ptr=0xbfe60d90) at server.c:321
#2 0x7ffb1bd4 in server_init_thread (unix_pid=9620, unix_tid=9620,
entry_point=0x0) at server.c:937
#3 0x7ffb90b1 in thread_init () at thread.c:279
#4 0x7ff99cc6 in __wine_process_init () at loader.c:2365
#5 0xb7e417d6 in wine_init (argc=2, argv=0xbfe61464, error=0xbfe60fd0 "",
error_size=1024) at loader.c:664
#6 0x7bf0117a in main (argc=2, argv=0xbfe61464) at main.c:58
(gdb) frame 1
#1 0x7ffb0a40 in wine_server_call (req_ptr=0xbfe34e10) at server.c:321
321 pthread_functions.sigprocmask( SIG_BLOCK, &block_set, &old_set );
(gdb) info locals
req_ptr = (void *) 0xbfe34e10
old_set = {__val = {0 <repeats 11 times>, 3219344856, 2147308640, 3219344768,
3084813777, 2147158852, 9, 3219344800, 0, 0, 3219344792, 8, 0, 14, 0, 0,
3219344784, 3084988334, 3219344832, 16, 3219344856, 1}}
(gdb) print block_set
$1 = {__val = {268511747, 0 <repeats 31 times>}}
(gdb) print /a block_set
$2 = {__val = {0x10012a03, 0x0 <repeats 31 times>}}
(gdb) print /a old_set
$3 = {__val = {0x0 <repeats 11 times>, 0xbfe34dd8,
0x7ffd5460 <__wine_dbch___default+340>, 0xbfe34d80,
0xb7de85d1 <sendmsg+33>, 0x7ffb0b44 <wine_server_send_fd+148>, 0x9,
0xbfe34da0, 0x0, 0x0, 0xbfe34d98, 0x8, 0x0, 0xe, 0x0, 0x0, 0xbfe34d90,
0xb7e12fae <__wine_dbg_get_channel_flags+14>, 0xbfe34dc0, 0x10,
0xbfe34dd8, 0x1}}
The only thing I can come up with that might cause a segfault in
pthread_functions.sigprocmask() is a missing call to a pthread init
function. I've grepped through the sources, but unfortunately I was
unable to find any place where that is called (except for kthread.c,
and I believe that modern systems all use pthread - right?), so I'm
without clues.
The only thing I can think of that might have happened (other than a
Wine bug) is GCC or GLIBC being upgraded by 'emerge world'. GCC
--version says "gcc (GCC) 3.3.6 (Gentoo 3.3.6, ssp-3.3.6-1.0,
pie-8.7.8)", while ls /lib/libc* says "libc-2.3.6.so".
Any suggestions (please!)?