Hello,
I've updated today from wine and got into troubles after installing it -
got Segmentation fault. I dig in it and figured the problem is my
environment variable WINEDLLPATH which was set to "." (current
directory). The back trace of stack during the crash was similar to this
(just the frames 5,6,7,8 were repeating many times - until stack overflow):
#0 __pthread_rwlock_unlock (rwlock=0x4032b600)
at ../../scheduler/pthread.c:669
#1 0x40220ea7 in gettext () from /lib/i686/libc.so.6
#2 0x40220885 in dcgettext () from /lib/i686/libc.so.6
#3 0x4021f667 in __assert_fail () from /lib/i686/libc.so.6
#4 0x400903d7 in __pthread_rwlock_unlock (rwlock=0x4032b600)
at ../../scheduler/pthread.c:671
#5 0x40220ea7 in gettext () from /lib/i686/libc.so.6
#6 0x40220885 in dcgettext () from /lib/i686/libc.so.6
#7 0x4021f667 in __assert_fail () from /lib/i686/libc.so.6
#8 0x400903d7 in __pthread_rwlock_unlock (rwlock=0x4032b600)
at ../../scheduler/pthread.c:671
#9 0x40220ea7 in gettext () from /lib/i686/libc.so.6
#10 0x40220885 in dcgettext () from /lib/i686/libc.so.6
#11 0x40278059 in strerror_r () from /lib/i686/libc.so.6
#12 0x40277ea5 in strerror () from /lib/i686/libc.so.6
#13 0x4035513a in dlerror () from /lib/libdl.so.2
#14 0x400f7c00 in wine_dlopen (filename=0x3c001862 "./ntdll.dll.so",
flag=0x2,
error=0xbffff244 "", errorsize=0x400) at loader.c:452
#15 0x400f745b in dlopen_dll (name=0x400f80cb "ntdll.dll",
error=0xbffff244 "", errorsize=0x400, test_only=0x0, exists=0xbffff21c)
at loader.c:151
#16 0x400f7b48 in wine_init (argc=0x1, argv=0xbffff694, error=0xbffff244
"",
error_size=0x400) at loader.c:424
#17 0x3c000550 in main (argc=0x1, argv=0xbffff694) at main.c:33
#18 0x402137f7 in __libc_start_main () from /lib/i686/libc.so.6
So, I guess wine pthread functions table should be initialized before
any (system) library get's chance to throw error, otherwise we have SIGSEGV.
I've fixed the error on my side with
WINEDLLPATH="/usr/local/lib/wine:.". Anyways I think it's a workaround
not a solution... Since I don't know much about initialization, I would
leave the real fix for someone more skillful.
Best Regards,
Juraj