Segmentation fault after new wine update and install

Vincent Béron vberon at mecano.gme.usherb.ca
Wed Sep 10 10:52:23 CDT 2003


Le mer 10/09/2003 à 11:13, Vincent Béron a écrit :
> Le mar 09/09/2003 à 12:34, Juraj Hercek a écrit :
> > 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.
> 
> It seems like if WINEDLLPATH is set, Wine dlls are only searched for in
> it and nowhere else. I'll verify if that's the case or not, but that's
> my gut feeling for now. Is it the behaviour we want?

Further investigation reveals that the problem lies in kernel32.dll.so
not being loaded yet when ntdll.dll.so fails to be found in
dll_paths[i].

pthread_init (from kernel32.dll.so) must be called to initialize the
various pthread functions used by Wine.

Would it be acceptable to swap the following 2 lines in wine_init (sorry
about the wrapping):
if (!(ntdll = dlopen_dll( "ntdll.dll", error, error_size, 0,
&file_exists ))) return;
if (!dlopen_dll( "kernel32.dll", error, error_size, 0, &file_exists ))
return;

so kernel32.dll is opened before ntdll.dll, or is there a dependency
from kernel32.dll to ntdll.dll?

Or is it possible to move the pthread_init function elsewhere, to
someplace called before ntdll.dll is loaded?

Vincent





More information about the wine-devel mailing list