fcntl.h: fix a missing `struct timespec` definition
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 <3233fd23f07fc603a1678a975ab6ae9abdd91126@savoirfairelinux.com>

kraj/uclibc-ng,wbx-github/uclibc-ng,kraj/uclibc-ng,wbx-github/uclibc-ng,kraj/uclibc-ng,kraj/uclibc-ng,wbx-github/uclibc-ng,wbx-github/uclibc-ng