Subject: Re: bug#29231: 26.0.90; invald file name for symbolic files

From: Paul Eggert <[email-masked]>
Date: Sat, 11 Nov 2017 15:21:26 -0800

Alan Third wrote:
> Only with symlinks faccessat returns success if it’s pointing to a
> file and you put ‘/’ on the end.

This is a well-known problem on macOS, and Emacs is supposed to compile a 
replacement fstatat function by building lib/fstatat.o and linking to that, and 
this replacement is supposed to implement the POSIX-required behavior where a 
trailing / works only on directories (or symlinks to directories, if following 
symlinks).

Evidently this replacement procedure is not working somehow. Please tell us 
whether the executable contains an fstatat workaround. You can do that via 
something like this:

$ gdb src/temacs
(gdb) disas rpl_fstatat

and I'd like to see the output of the 'disas' command.

Also, what are the values of the following macros in src/config.h? (The values 
on GNU/Linux are as shown.)

#define LSTAT_FOLLOWS_SLASHED_SYMLINK 1
#define HAVE_FSTATAT 1
/* #undef HAVE_WORKING_FSTATAT_ZERO_FLAG */