Есть такая структура - struct cmsghdr, в POSIX и мануале (cmsg(3)) написано, что первый её член имеет тип socklen_t. При этом в ядре лялекса и glibc этот член объявлен с типом size_t, чей размер несколько больше. Если писать на C, то всё в принципе в порядке, но при написании биндингов начинается адский ад. В частности, при написании биндингов к recvmsg/sendmsg для хаскелла я убил несколько часов на поиск этой ошибки - да, я знаю, что в линуксе нельзя доверять документации.
Собственно вопрос - что делать?
Варианты:
- Попытаться продвинуть исправление в linux kernel и glibc. Почти невозможно, так как это ломает ABI для юзерспейса или же вносит костыль в ядро.
- Таскать костыль в коде. Очень не хочется этого делать просто из-за того, что у разработчиков лялекса ошибки в ДНК.