Ben Klein wrote:
2010/1/26 Michael Ost <[email protected]>:
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.