[Bug 41703] New: LdrUnloadDll is not suit for musl( musl lacks unload support though it has a dlclose())
wine-bugs at winehq.org
wine-bugs at winehq.org
Sat Nov 12 08:57:04 CST 2016
https://bugs.winehq.org/show_bug.cgi?id=41703
Bug ID: 41703
Summary: LdrUnloadDll is not suit for musl(musl lacks unload
support though it has a dlclose())
Product: Wine
Version: unspecified
Hardware: x86
OS: Linux
Status: UNCONFIRMED
Severity: major
Priority: P2
Component: ntdll
Assignee: wine-bugs at winehq.org
Reporter: xw897002528 at gmail.com
Distribution: ---
Created attachment 56111
--> https://bugs.winehq.org/attachment.cgi?id=56111
fix for this problem
Hey, sorry for my poor english, and here is the problem:
First, musl won't unload module even dlclose(). Check here:
http://wiki.musl-libc.org/wiki/Functional_differences_from_glibc#Unloading_libraries
Then, musl won't excute init(__wine_spec_init) function if a module is already
loaded.
That means load_builtin_dll() thought dll is loaded by the current thread since
init function was not called, but actually LdrUnloadDll() destroyed them in
another thread and nothing is loaded in the current thread. Load_builtin_dll()
try to find wm in InLoadOrderModuleList but nothing. After that, app will
crash.
And I solved this by making LdrUnloadDll() a stub. Patch is uploaded as a
attachment. I hope this could be added in official wine by adding a configure
option, thx.
Here's my tracking details on this problem if you're intereted in how i found
this:
https://github.com/xhebox/noname-linux/issues/2#issuecomment-258680745
--
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.
More information about the wine-bugs
mailing list