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!)?