This patch avoids using time field of input_event structure which is not available
on 32bit arches supporting 64bit time_t structs, Patch makes it compatible with new
and keeps old input.h implementation functional as well.

See https://sourceware.org/glibc/wiki/Y2038ProofnessDesign

Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>

--- a/src/eventcomm.c
+++ b/src/eventcomm.c
@@ -575,10 +575,12 @@ SynapticsReadEvent(InputInfoPtr pInfo, s
         ev->type = EV_SYN;
         ev->code = SYN_REPORT;
         ev->value = 0;
-        ev->time = last_event_time;
-    } else if (ev->type == EV_SYN)
-        last_event_time = ev->time;
-
+	ev->input_event_sec = last_event_time.tv_sec;
+	ev->input_event_usec = last_event_time.tv_usec;
+    } else if (ev->type == EV_SYN) {
+        last_event_time.tv_sec = ev->input_event_sec;
+        last_event_time.tv_usec = ev->input_event_usec;
+    }
     return TRUE;
 }
 
@@ -725,7 +727,7 @@ EventReadHwState(InputInfoPtr pInfo,
             case SYN_REPORT:
                 hw->numFingers = count_fingers(pInfo, comm);
                 if (proto_data->have_monotonic_clock)
-                    hw->millis = 1000 * ev.time.tv_sec + ev.time.tv_usec / 1000;
+                    hw->millis = 1000 * ev.input_event_sec + ev.input_event_usec / 1000;
                 else
                     hw->millis = GetTimeInMillis();
                 SynapticsCopyHwState(hwRet, hw);
--- a/src/eventcomm.h
+++ b/src/eventcomm.h
@@ -34,6 +34,11 @@
 #include <xf86Xinput.h>
 #include "synproto.h"
 
+#ifndef input_event_sec
+#define input_event_sec time.tv_sec
+#define input_event_usec time.tv_usec
+#endif
+
 /* for auto-dev: */
 #define DEV_INPUT_EVENT "/dev/input"
 #define EVENT_DEV_NAME "event"
