Feb. 6, 2025
2:49 p.m.
On Thu Feb 6 14:44:50 2025 +0000, Jinoh Kang wrote: > > Since this mechanism can't be fully precise (`DllMain` might call > functions from a different module) and we don't use such > `GetProcAddress` calls inside Wine DLLs, where this feature is typically > applied, I'm wondering if we could simplify it by treating `is_dynamic` > as a `NULL` user here. > On second look, there seems to be multiple Wine builtin DLLs that *do* > call GetProcAddress() in DllMain: > - shlwapi: https://gitlab.winehq.org/wine/wine/-/blob/7b57598dcfc9198aa9cf6ac4ce17e2328db1379d/dlls/shlwapi/shlwapi_main.c#L155-172 > - wintab32: https://gitlab.winehq.org/wine/wine/-/blob/7b57598dcfc9198aa9cf6ac4ce17e2328db1379d/dlls/wintab32/wintab32.c#L96-127 > There may be other DLLs that I have missed (e.g., because GetProcAddress > is called indirectly via some helper function in the same DLL). Maybe > something needs to be done with these DLLs before we can get rid of > dynamic dependency handling? shlwapi looks like a relict from before PE conversion, we should be able to link those functions directly now. wintab32 will need a different solution anyway, ideally we wouldn't use PE exports in display drivers. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/7#note_93902