Fix missing timespec definition for sys/stat.h (BZ #21371)
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Mon, 17 Apr 2017 13:38:53 +0000 (10:38 -0300)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Thu, 20 Apr 2017 20:09:17 +0000 (17:09 -0300)
As indicated by the bug report, the 'struct timespec' definition
is not defined for '_XOPEN_SOURCE=700' and '_POSIX_C_SOURCE=200112L'.

It is because current code only includes its definition if __USE_ATFILE
is defined and the define is only set with:

  1. _GNU_SOURCE and/or _ATFILE_SOURCE definition.
  2. _POSIX_C_SOURCE >= 200809L

However, the 'st_*' fields in 'struct stat' are defined if __USE_XOPEN2K8.
This patch uses the same logic for 'struct timespec' inclusion.

Tested on x86_64-linux-gnu.

* io/sys/stat.h: Use __USE_XOPEN2K8 insteaf of __USE_ATFILE for
struct timespec definition.

ChangeLog
io/sys/stat.h

index 0d6183d..31b56a7 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2017-04-20  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
+
+       * io/sys/stat.h: Use __USE_XOPEN2K8 insteaf of __USE_ATFILE for
+       struct timespec definition.
+
 2017-04-19  Florian Weimer  <fweimer@redhat.com>
 
        * resolv/nss_dns/dns-host.c (getanswer_r): Fix parentheses.
index 2ada4a5..ac7ef1f 100644 (file)
@@ -26,7 +26,7 @@
 
 #include <bits/types.h>                /* For __mode_t and __dev_t.  */
 
-#ifdef __USE_ATFILE
+#ifdef __USE_XOPEN2K8
 # include <bits/types/struct_timespec.h>
 #endif