**Circular references with static libraries** Some linkers are one-pass only so to handle circular references between static libraries, the following feature can be used: ``RESCAN`` The specified static libraries are searched repeatedly until no new undefined references are created. Normally, an static library is searched only once in the order that it is specified on the command line. If a symbol in that library is needed to resolve an undefined symbol referred to by an object in an library that appears later on the command line, the linker would not be able to resolve that reference. By grouping the static libraries, they all be searched repeatedly until all possible references are resolved (use linker options ``--start-group`` and ``--end-group`` or, on ``SunOS``, ``-z rescan-start`` and ``-z rescan-end``). Using this feature has a significant performance cost. It is best to use it only when there are unavoidable circular references between two or more static libraries. This feature is available on ``Linux``, ``BSD``, and ``SunOS`` target platforms as well as ``Windows`` when ``GNU`` toolchain is used.