--- a/src/sun_kbd.c 2026-07-23 13:55:22.652012681 -0500 +++ b/src/sun_kbd.c 2026-07-23 13:59:47.345032786 -0500 @@ -56,9 +56,21 @@ #include "xf86OSKbd.h" #include "sun_kbd.h" -#include +/* OI fix (missing-header build failure on illumos/GCC 14): pull in + * sys/param.h, unistd.h, stropts.h explicitly - sun_kbd.c uses + * usleep()/ioctl() and STREAMS ioctl constants (I_PUSH/I_POP/I_FIND) + * that are not reliably pulled in transitively on this toolchain. + * sys/kbio.h is ALSO required (not just sys/kbd.h): Hammerhead's + * does not transitively include it, and it is the header + * that actually defines the KIOC* keyboard ioctl constants + * (KIOCSLED/KIOCGLED/KIOCTYPE/KIOCLAYOUT/KIOCGDIRECT/KIOCSDIRECT/ + * KIOCCMD/KIOCMKTONE/...) this driver uses throughout. */ +#include +#include +#include #include #include +#include #include /* needed before including older versions of hid.h */ #include