On 12/09/2013 02:24 AM, Pádraig Brady wrote: > Sorry if you get multiple copies of this. > > The test for this is failing on solaris 10 (NFS) > It does seem that hardlinks to symlinks are supported: > > $ touch tfile > $ ln -s tfile tlink > $ src/ln -L tlink tlink-ln-L > $ src/ln -P tlink tlink-ln-P > $ src/ln tlink tlink-ln > $ ls -li tfile tlink* > 8550 -rw-r--r-- 3 padraig csw 0 Dec 9 01:18 tfile > 8551 lrwxrwxrwx 2 padraig csw 5 Dec 9 01:19 tlink -> tfile > 8550 -rw-r--r-- 3 padraig csw 0 Dec 9 01:18 tlink-ln > 8550 -rw-r--r-- 3 padraig csw 0 Dec 9 01:18 tlink-ln-L > 8551 lrwxrwxrwx 2 padraig csw 5 Dec 9 01:19 tlink-ln-P -> tfile > > But we have linkat() emulation in place I think: > > $ grep LINK lib/config.h ... > /* #undef HAVE_LINKAT */ > #define LINK_FOLLOWS_SYMLINKS -1 > FAIL: tests/cp/link-deref > ========================= > --- exp Mon Dec 9 01:00:08 2013 > +++ out Mon Dec 9 01:00:08 2013 > @@ -1,1 +1,1 @@ > -cp --link -P dirlink dst|result=0|inode=8436|type=symbolic link|error= > +cp --link -P dirlink dst|result=0|inode=8467|type=symbolic link|error= > + rm -f diff.out > + false > + ls -lid dirlink dir dst > 8434 drwxr-xr-x 2 padraig csw 2 Dec 9 01:00 dir > 8436 lrwxrwxrwx 1 padraig csw 3 Dec 9 01:00 dirlink -> dir > 8467 lrwxrwxrwx 1 padraig csw 3 Dec 9 01:00 dst -> dir > + fail=1 So the attached should address this on FreeBSD ast least where we HAVE_LINKAT so don't need to fallback to the symlink -> symlink emulation in copy.c For the above case we'll need to skip parts of the test I think, depending on the above 2 config vars. thanks, Pádraig