On 11/12/21 11:24, Alexandre Julliard wrote:
"Zebediah Figura (she/her)" zfigura@codeweavers.com writes:
On 11/12/21 09:22, Alexandre Julliard wrote:
Zebediah Figura zfigura@codeweavers.com writes:
@@ -3027,6 +3035,12 @@ static NTSTATUS load_dll( const WCHAR *load_path, const WCHAR *libname, const WC break; }
- /* mark the DLL as system only if it was loaded from a
system path and is
* not builtin. note that builtins can appear to be loaded from a system
* path during prefix bootstrap */
- if (!((*pwm)->ldr.Flags & LDR_WINE_INTERNAL))
(*pwm)->system = system;
I think that even during bootstrap we need to find builtins if they already exist. Most likely you should bypass the bootstrap fallback during system dll search.
Sorry, I'm not sure I understand? We do find builtins if they already exist with this patch; we just don't mark them as system libraries.
My reading is that in bootstrap mode, the initial search for system libraries is going to fall back to find_builtin_without_file(), so we'll never go on to actually searching the prefix.
What we want is to search for the builtin everywhere possible, and only fall back to find_builtin_without_file() if it doesn't exist at all.
Thanks, that makes sense.