fcntl.h: fix a missing `struct timespec` definition
If a source file is compiled with:
#define _XOPEN_SOURCE 700
#define _POSIX_C_SOURCE 200112L
Then including fcntl.h results in the following error:
In file included from fcntl.h:37:0,
from test.c:4:
sys/stat.h:371:54: error: array type has incomplete element type ‘struct timespec’
extern int futimens (int __fd, const struct timespec __times[2]) __THROW;
To fix that, we force the definition of struct timespec in fcntl.h when
__USE_XOPEN2K8 is defined. This mimics the behavior of glibc which
contains the following line in its io/fcntl.h header (included by
fcntlh.h):
#ifdef __USE_XOPEN2K8
# include <bits/types/struct_timespec.h>
#endif
This bug was spotted during the compilation of BoringSSL against uClibc.
Signed-off-by: Damien Riegel <damien.riegel@savoirfairelinux.com>