On 02/05/2018 04:26 PM, Philipp Stephani wrote:
> It succeeds and prints nothing (i.e. the error is ENOTDIR in all cases).
> So this is even more mysterious than I thought.
Very strange. I installed the workaround into Emacs master, so at least
the symptoms should be fixed now. But I don't know why the fix worked,
and this doesn't inspire warm feelings.
The Gnulib manual says that macOS faccessat (..., "FILE/", ...)
incorrectly succeeds when FILE is a regular file, and Gnulib has code to
work around that bug that should be in effect for Emacs. However, the
Gnulib manual doesn't say that faccessat (..., "FILE/.", ...)
incorrectly succeeds in this situation, nor that faccessat (...,
"FILE/./", ...) does the right thing; and the test program I gave you
didn't illustrate any bugs in this area so I'm not sure what's going on.
Maybe that bug was once present, and has been fixed since then?
I've noticed that REPLACE_FACCESSAT is 1, so configure thinks that faccessat is broken. Apparently faccessat.m4 checks for the behavior of lstat, not faccessat.