#include "time32.h"
#include <time.h>
#include <errno.h>
#include <stdint.h>

time32_t __mktime32(struct tm *tm)
{
	struct tm tmp = *tm;
	time_t t = mktime(&tmp);
	if (t < INT32_MIN || t > INT32_MAX) {
		errno = EOVERFLOW;
		return -1;
	}
	*tm = tmp;
	return t;
}