Strange behaviour with winsymlinks:native

David Allsopp David.Allsopp@cl.cam.ac.uk
Wed Oct 14 14:56:47 GMT 2020


I've been doing some working around the problems with Cygwin 3.1.5+ WSL
junction points in Docker and found three unexpected pieces of behaviour
with CYGWIN=winsymlinks:native
In all cases, these work as expected with the default symlink behaviour
(i.e. CYGWIN unset or without a winsymlinks option).
1. Relative paths get unnecessarily resolved
 mkdir -p foo/bar
 cd foo/bar
 touch baz
 CYGWIN='winsymlinks:native' ln -s ../bar/baz link
 readlink link
Result is baz, not ../bar/baz
2a. Links in the magic mount directories (/usr/bin and /usr/lib) get extra
bits added (source is a default mount):
 cd /usr/lib
 CYGWIN='winsymlinks:native' ln -s ../share/terminfo terminfo2
 readlink terminfo2
Result is ../usr/share/terminfo, which makes it valid from /lib (the "real"
directory) but not in the virtual one
2b. Same but where target is a default mount
 cd /usr/libexec/p11-kit
 CYGWIN='winsymlinks:native' ln -s ../../bin/update-ca-trust
trust-extract-compat2
 readlink trust-extract-compat2
Result is ../../../bin/update-ca-trust, again it seems to be computing an
extra level back to the "real" lib directory
Are these behaviours expected? I can create those symbolic links manually
with mklink with no problem, so I'm wondering if it's an outright bug or an
unexpected consequence of something else.
Thanks!
David


More information about the Cygwin mailing list

AltStyle によって変換されたページ (->オリジナル) /