This restores the feature we had with the testbot running related on intermediate commits, though it only does it on Linux and it would be nice to have it on Windows too.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/1240
GCC (MingW) 12.2 rightfully warns with:
/home/eric/work/wine/dlls/kernelbase/loader.c: In function 'GetModuleHandleA':
/home/eric/work/wine/dlls/kernelbase/loader.c:332:12: warning: 'ret' may be used uninitialized [-Wmaybe-uninitialized]
332 | return ret;
| ^~~
/home/eric/work/wine/dlls/kernelbase/loader.c:329:13: note: 'ret' declared here
329 | HMODULE ret;
| ^~~
So set module to NULL on all error codepaths in GetModuleHandleExA().
Signed-off-by: Eric Pouech <eric.pouech(a)gmail.com>
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/978
This makes it possible to detect modules that weren't unmapped from
dlclose, and that we should not fixup again.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49640
This usually happens with C++ winelibs, where some C++ symbols may
be inlined into the winelib, then later resolved in preference over
other symbol definitions when libstdc++ loads.
This results in circular dependency between the winelib and libstdc++,
making dlclose no-op.
In this case, reloading the lib later and calling `map_so_dll` on it
again will fixup the RVAs again, ending up with invalid addresses.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/1498