Absolute Junction Points/Symlinks
Zebediah Figura
z.figura12 at gmail.com
Tue May 19 10:35:40 CDT 2020
Fundamentally I guess we're trying to simultaneously satisfy the
constraints of
(1) make NT symlinks, regardless of type, behave like Unix symlinks, to
any host filesystem utilities
(2) make absolute symlinks still work when the prefix is moved, without
any additional work
Which, barring some brilliant idea, I think just isn't possible, not
without rewriting how said host utilities work, either by preloading our
own bits of glibc, or maybe introducing some mount-point-like API to the
kernel.
Personally, I think dropping constraint (2) is preferable to any hack
involving preloading. Manually fixing up symlinks after a prefix move
feels equivalent to manually prepending a wrapper before any filesystem
operation, but it would have to be done far less often.
I also think it makes more sense to drop constraint (2) than constraint
(1). I suspect moving a prefix is very rare in practice (though to be
sure I have done it myself a couple times), whereas accessing the Win32
filesystem from outside is probably quite common. Additionally, it ends
up being far less work to rely on host symlink resolution than to have
to implement it ourselves.
More information about the wine-devel
mailing list