time: Define _STRUCT_TIMESPEC in <bits/types/struct_timespec.h>
Commit Message
After commit d76d3703551a362b472c866b5b6089f66f8daa8e ("Fix missing
timespec definition for sys/stat.h (BZ #21371)"), sanitizer builds start
to fail due to a conflicting definition of struct timespec in
<linux/time.h>. Define _STRUCT_TIMESPEC, which is already checked in
the kernel header, to support including <linux/time.h> after
<sys/stat.h>.
2018-06-21 Florian Weimer <fweimer@redhat.com>
* time/bits/types/struct_timespec.h (_STRUCT_TIMESPEC): Define.
Comments
On Thu, Jun 21, 2018 at 2:46 AM, Florian Weimer <fweimer@redhat.com> wrote:
> After commit d76d3703551a362b472c866b5b6089f66f8daa8e ("Fix missing
> timespec definition for sys/stat.h (BZ #21371)"), sanitizer builds start
> to fail due to a conflicting definition of struct timespec in
> <linux/time.h>. Define _STRUCT_TIMESPEC, which is already checked in
> the kernel header, to support including <linux/time.h> after
> <sys/stat.h>.
Should it go the other way around as well? That is, if
_STRUCT_TIMESPEC is already defined, should we suppress our
definition?
Either way I think there should be a comment saying that linux/time.h
checks this macro.
zw
@@ -1,6 +1,10 @@
#ifndef __timespec_defined
#define __timespec_defined 1
+#ifndef _STRUCT_TIMESPEC
+# define _STRUCT_TIMESPEC 1
+#endif
+
#include <bits/types.h>
/* POSIX.1b structure for a time value. This is like a `struct timeval' but