From: Florian Weimer Date: Thu, 5 Mar 2020 12:27:53 +0000 (+0100) Subject: Linux: Use __fstatat64 in fchmodat implementation X-Git-Tag: glibc-2.32~529 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e5244cd88a5414c964b32bb95cf60fc9c1958a5f;p=thirdparty%2Fglibc.git Linux: Use __fstatat64 in fchmodat implementation fstatat64 depends on inlining to produce the desired __fxstatat64 call, which does not happen with -Os, leading to a link failure with an undefined reference to fstatat64. __fxstatat64 has a macro definition in include/sys/stat.h and thus avoids the problem. --- diff --git a/sysdeps/unix/sysv/linux/fchmodat.c b/sysdeps/unix/sysv/linux/fchmodat.c index 17eca54051e..5531f1aa6f9 100644 --- a/sysdeps/unix/sysv/linux/fchmodat.c +++ b/sysdeps/unix/sysv/linux/fchmodat.c @@ -48,7 +48,7 @@ fchmodat (int fd, const char *file, mode_t mode, int flag) /* Use fstatat because fstat does not work on O_PATH descriptors before Linux 3.6. */ struct stat64 st; - if (fstatat64 (pathfd, "", &st, AT_EMPTY_PATH) != 0) + if (__fstatat64 (pathfd, "", &st, AT_EMPTY_PATH) != 0) { __close_nocancel (pathfd); return -1;