Circular Linkage
A circular library linkage is a series of library linkages that flow in the same direction and return to the first program in the series. The operating system permits certain types of circular linkages, but disallows other types of circular linkages.
Circular Provision
Similarly, a circular provision is the provision of a particular library object through circular library linkage. In other words, a library can indirectly import an object from the same library. However, the import object in the library must ultimately be provided by a different export object in that library.
Compared to Connection Libraries
Circular linkage is an advanced technique that can become quite complex to use. Connection libraries were invented, in part, as a replacement for the use of circular library linkage. If you are designing an application to use circular linkage, you should consider replacing the circular linkage with a pair of connection libraries that export objects to each other. For more information, refer to Hazards of Circular Connections.
Nevertheless, circular linkages are still allowed, and connection libraries can even participate in them. The following subsections explain the types of linkages that are considered to be circular, and then list the restrictions that apply to circular linkages.

