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