timeradd isn't available on MinGW.
(((tv_first).tv_sec < (tv_second).tv_sec) || \
((tv_first).tv_sec == (tv_second).tv_sec && (tv_first).tv_usec < (tv_second).tv_usec))
+#ifndef timeradd
+#define timeradd(a, b, r) \
+ do { \
+ (r)->tv_sec = (a)->tv_sec + (b)->tv_sec; \
+ (r)->tv_usec = (a)->tv_usec + (b)->tv_usec; \
+ if ((r)->tv_usec >= 1000000) { \
+ (r)->tv_sec++; \
+ (r)->tv_usec -= 1000000; \
+ } \
+ } while (0)
+#endif
+
#ifdef UNITTESTS
void TimeSet(struct timeval *);
void TimeSetToCurrentTime(void);