Le mer 10/09/2003 à 11:13, Vincent Béron a écrit :That's exactly the problem I'm having with compiling Wine without optimizations. the wine binary tries to link with ntdll. ntdll needs "InterlockedCompareExchange" from kernel32. In my case, this translates to a compilation error, which I have not managed to eliminate.
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].
Ok, the tie breaker is in.
On Windows 2000, ntdll.dll is not depnding on ANYTHING else. On the other hand, kernel32.dll does depend on ntdll.dll. This means that we have a circular dependancy in Wine that is not there in Windows 2000.
Would it be acceptable to swap the following 2 lines in wine_init (sorryI think it would be wrong. Kernel32 obviously does depend on ntdll. It would probably be better to figure out why ntdll depends on kernel32 (we know that - InterlockedCompareExchange), and remove that.
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 dependencyUnfortunetly, there is in Wine too.
from kernel32.dll to ntdll.dll?
Or is it possible to move the pthread_init function elsewhere, toDo "ldd miscemu/wine" for an answer - ntdll is loaded by the Linux linker, even if dlopen was not called at all. It's an interesting question why we need the dlopen, then.
someplace called before ntdll.dll is loaded?
VincentShachar
-- Shachar Shemesh Open Source integration consultant Home page & resume - http://www.shemesh.biz/