Paul Eggert wrote: > Thanks for mentioning that. > Sorry, I was a bit too clever with fchmodat etc. > I reproduced the problem on Fedora 17 when building > with CFLAGS=-g, and fixed it as follows. > > --- > ChangeLog | 15 +++++++++++++++ > lib/chmodat.c | 3 +++ > lib/chownat.c | 3 +++ > lib/fchmodat.c | 2 -- > lib/fchownat.c | 2 -- > lib/fstatat.c | 2 -- > lib/statat.c | 3 +++ > modules/fchmodat | 2 ++ > modules/fchownat | 2 ++ > modules/fstatat | 2 ++ > 10 files changed, 30 insertions(+), 6 deletions(-) > create mode 100644 lib/chmodat.c > create mode 100644 lib/chownat.c > create mode 100644 lib/statat.c > > diff --git a/ChangeLog b/ChangeLog > index ac74fdb..fca0234 100644 > --- a/ChangeLog > +++ b/ChangeLog > @@ -1,3 +1,18 @@ > +2012-10-15 Paul Eggert <egg...@cs.ucla.edu> > + > + fchmodat, fchownat, fstatat: port to non-inlining compilers > + Problem reported for FreeBSD 9 by Jim Meyering in > + <http://lists.gnu.org/archive/html/bug-gnulib/2012-10/msg00070.html>. > + * lib/chmodat.c, lib/chownat.c, lib/statat.c: > + New files, which define FCHMODAT_INLINE etc. > + * lib/fchmodat.c (FCHMODAT_INLINE): > + * lib/fchownat.c (FCHOWNAT_INLINE): > + * lib/fstatat.c (FSTATAT_INLINE):
Ahh... That was the missing piece. Thanks! Confirmed fixed. In retrospect, I see that the problem was not FreeBSD related. I built with gcc and CFLAGS=-g there, and as you noted, *that* was the trigger. > + Remove, as chmodat.c etc. now do this. > + * modules/fchmodat (Files): Add lib/chmodat.c. > + * modules/fchownat (Files): Add lib/chownat.c. > + * modules/fstatat (Files): Add lib/statat.c.