This is a second attempt to fix a compilation failure involving a
missing struct timespec definition in some situation. Previous attempt
was following commit but it had undesirable side effects and was
reverted:
657c4a9d6c fcntl.h: fix a missing `struct timespec` definition
A similar issue was identified and reported in glibc [1], and the fix
was to include the timespec definition if __USE_XOPEN2K8 was defined. To
minimize the possible impact of this new fix, it was decided to not
replace __USE_ATFILE by __USE_XOPEN2K8 as glibc did, but to add an
additional OR condition on __USE_XOPEN2K8.
[1] https://sourceware.org/bugzilla/show_bug.cgi?id=21371
Signed-off-by: Damien Riegel <[email protected]>
# if defined __USE_XOPEN || defined __USE_XOPEN2K
# define __need_time_t
# endif
-# if defined __USE_MISC || defined __USE_ATFILE
+# if defined __USE_MISC || defined __USE_ATFILE || defined __USE_XOPEN2K8
# define __need_timespec
# endif
# include <time.h> /* For time_t resp. timespec. */