Seems like all function declarations should be marked as `static` for correct linking from multiple translation units.