WINEDLLPATH and /usr/lib/wine

Michael Ost most at museresearch.com
Mon Jan 25 18:51:33 CST 2010


Ben Klein wrote:
> 2010/1/26 Michael Ost <most at museresearch.com>:
>> Alexandre Julliard wrote:
>> I think it makes more sense to require, as Hin-Tak Leung's patch does, that
>> a user put /usr/lib/wine in WINEDLLPATH if they use WINEDLLPATH. This is how
>> LD_LIBRARY_PATH works for ld and PATH works in bash --- so it's expected
>> behavior.
> 
> Actually, it's not how LD_LIBRARY_PATH works.
> $ LD_LIBRARY_PATH=/path/that/does/not/exist/ /bin/echo Hi there
> Hi there
> 
> It is the way it works for PATH in all shells (not just bash), but
> this is a different matter because your shell environment (often a
> login or profile script) provides a default, sensible value for PATH.
> $ echo $PATH
> /usr/local/bin:/usr/bin:/bin:/usr/games
> $ echo $LD_LIBRARY_PATH

OK - fair enough.

But, if I read the man page correctly LD_LIBRARY_PATH _prepends_ your 
path before the standard paths. That would do fine for me. WINEDLLPATH 
is appended after /usr/lib/wine.

> WINEDLLPATH should certainly behave more like LD_LIBRARY_PATH than
> PATH, but wine should always follow the same DLL search pattern as
> Windows. How would Windows handle adding a directory to the DLL search
> path? (Is this even possible?)

I'm not getting why Windows DLL searching is relevant here. This is a 
Linux-side issue.

>> Also, from my reading of the code, you jump through some special hoops to
>> deal with running from the build directory which could be more easily solved
>> by putting WINEDLLPATH first.
> 
> How, exactly?

This was a slightly uninformed comment on my part, so I could be totally 
off base here. And the code supporting dll directory lookups is 
complicated. But ... I saw special cases for dealing with the build 
directory, including this comment "/* if no build dir skip all the build 
dir magic cases */" libs/wine/loader.c/first_dll_path. Those suggest to 
me that someone was trying to stick a path in before /usr/lib/wine.

All that said, this isn't at all central to what I would like to do. All 
I want is that WINEDLLPATH comes before /usr/lib/wine.

- mo

PS: Hin-Tak Leung, who got bit by this before me, found that WINEDLLPATH 
broke/changed in November of 2006.



More information about the wine-devel mailing list