This "oddity" is how every C compiler and linker behaves (that I've used) You need it behave this way to have some control over what gets linked in the face of multiple definitions.