tree cee57b43455b077f70511b09dfdcbe18825e676b
parent 7e3f2dd90ce4ecfad3c3e54c147317fadd980234
author LIU Hao <lh_mouse@126.com> 1747378232 +0800
committer LIU Hao <lh_mouse@126.com> 1747384823 +0800
gpgsig -----BEGIN SSH SIGNATURE-----
 U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgpNkDDBuVPiz0dPd+zGoqB2ET19
 YkAU0wAtjm07QRvk4AAAADZ2l0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5
 AAAAQJHnHnVDbURvE3xh34FDadUO1iWU6HkhBnL5Lf6C4uzgWXTw5/UG+v/MjuaqqB53f/
 jhBkKkxPyut3miP1RkxQg=
 -----END SSH SIGNATURE-----

winpthreads: Ensure `struct _timespec{32,64}` are defined before use

We have declarations such as

   WINPTHREAD_API int sem_timedwait64(sem_t * sem, const struct _timespec64 *t);

When `struct _timespec64` is not forward-declared, this function declaration
declares a new struct whose scope is limited to that function. In this case it
is not the same type as the one in file scope, which causes errors like

   C:/MSYS64/mingw64/include/semaphore.h: In function 'sem_timedwait':
   C:/MSYS64/mingw64/include/semaphore.h:53:32: error: passing argument 2 of 'sem_timedwait64' from incompatible pointer type [-Wincompatible-pointer-types]
      53 |   return sem_timedwait64 (sem, (const struct _timespec64 *) t);
         |                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         |                                |
         |                                const struct _timespec64 *
   C:/MSYS64/mingw64/include/semaphore.h:47:75: note: expected 'const struct _timespec64 *' but argument is of type 'const struct _timespec64 *'
      47 | WINPTHREAD_API int sem_timedwait64(sem_t * sem, const struct _timespec64 *t);
         |                                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~^

We include <sys/timeb.h> so those function declarations reference the global
types and do not declare their own.

Reported-by: Jeremy Lainé <jeremy.laine@m4x.org>
Signed-off-by: LIU Hao <lh_mouse@126.com>
