I am porting some modern, usually Linux based, libraries to an archaic OS that does not have Autotools or Cmake. I've noticed a tendency to tolerate circular dependency that is detrimental to my link process.

A module A uses a function from module B and module B is using a function from module A. Apparently, Autotools know how to resolve this without warnings. I have to do a two pass linking.

My question is, is that a correct way to program in C? Is Circular Dependency a bug or a feature?

Thank you
ZA