Вторая наиболее вероятная причина: где-то в библиотеке неявно
предполагается, что int -- 32-битный, и на 16-битной архитектуре
всё считается неправильно. Можно махом попробовать заменить int на
int32_t, unsigned (int) на uint32_t. Ещё uint_fast32_t и т.п. типы,
ещё size_t тоже 16-битный...