Skip to content

src/manette-device.c: unbreak build on musl 1.2

musl 1.2 switched to 64bits time values on 32bits architectures. It breaks software assuming that an input_event contains a struct timeval time. People should use the input_event_sec and input_event_usec macros instead.

here's the actual definition of struct input_event (<linux/input.h> from linux 5.4 lts)

struct input_event {
#if (__BITS_PER_LONG != 32 || !defined(__USE_TIME_BITS64)) && !defined(__KE
RNEL__)
        struct timeval time;
#define input_event_sec time.tv_sec
#define input_event_usec time.tv_usec
#else
        __kernel_ulong_t __sec;
#if defined(__sparc__) && defined(__arch64__)
        unsigned int __usec;
        unsigned int __pad;
#else
        __kernel_ulong_t __usec;
#endif
#define input_event_sec  __sec
#define input_event_usec __usec
#endif
        __u16 type;
        __u16 code;
        __s32 value;
};
Edited by Antoine Fontaine

Merge request reports