If I try compiling the library in isolation, it seems to work.
in isolation, but in the same environment?
a quick idea: maybe a newer/stricter GCC fails to produce the executable, or the C definition got relocated into another .h file... then the CFFI ASDF goveler integration is too fail tolerant, and instead of failing, it just prints some error higher up in the log that you haven't noticed?