summaryrefslogtreecommitdiffstats
path: root/Help/variable/LINK_GROUP_PREDEFINED_FEATURES.txt
blob: 557886ec38ef165c18251976e0c2322b6afe7a0a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
``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.