remove LFS64 programming interfaces (macro-only) from _GNU_SOURCE
[musl] / compat / time32 / mktime32.c
1 #include "time32.h"
2 #include <time.h>
3 #include <errno.h>
4 #include <stdint.h>
5
6 time32_t __mktime32(struct tm *tm)
7 {
8         struct tm tmp = *tm;
9         time_t t = mktime(&tmp);
10         if (t < INT32_MIN || t > INT32_MAX) {
11                 errno = EOVERFLOW;
12                 return -1;
13         }
14         *tm = tmp;
15         return t;
16 }