On FreeBSD 14.0 and NetBSD 10.0, the unit test 'no-dereference' fails. How to reproduce:
Use current diffutils git master. $ ln -s loop loop $ mkdir subdir $ ln -s loop subdir/loop # This part succeeds on all platforms: $ src/diff --no-dereference loop subdir/loop $ echo $? 0 # This commands succeeds on all platforms except FreeBSD and NetBSD # but fails on FreeBSD and NetBSD. $ src/diff --no-dereference loop subdir diff: subdir/loop: Too many links The manual [1] says: "If one file is a directory and the other is not, diff compares the file in the directory whose name is that of the non-directory." But single-stepping through the code, I don't get through code that references 'subdir/loop'. It merely references 'subdir'. The stack trace is: diff.c:880 -> diff.c:1608 -> error Bruno [1] https://www.gnu.org/software/diffutils/manual/html_node/Invoking-diff.html