blob: 557886ec38ef165c18251976e0c2322b6afe7a0a [file] [log] [blame]
``RESCAN``
Some linkers are single-pass only. For such linkers, circular references
between libraries typically result in unresolved symbols. This feature
instructs the linker to search the specified static libraries repeatedly
until no new undefined references are created.
Normally, a 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 a library that
appears later on the command line, the linker would not be able to resolve
that reference. By grouping the static libraries with the ``RESCAN``
feature, they will all be searched repeatedly until all possible references
are resolved. This will use linker options like ``--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 when using toolchains that target Linux, BSD, and
SunOS. It can also be used when targeting Windows platforms if the GNU
toolchain is used.