6.2 Linker-defined symbols

The linker defines some symbols that are reserved by ARM®, and that you can access if required.

Symbols that contain the character sequence $$, and all other external names containing the sequence $$, are names reserved by ARM.

You can import these symbolic addresses and use them as relocatable addresses by your assembly language programs, or refer to them as extern symbols from your C or C++ source code.

Be aware that:

  • If you use the --strict compiler command-line option, the compiler does not accept symbol names containing dollar symbols. To re-enable support, include the --dollar option on the compiler command line.
  • Linker-defined symbols are only generated when your code references them.
  • If execute-only (XO) sections are present, linker-defined symbols are defined with the following constraints:

    • XO linker defined symbols cannot be defined with respect to an empty region or a region that has no XO sections.
    • XO linker defined symbols cannot be defined with respect to a region that contains only RO sections.
    • RO linker defined symbols cannot be defined with respect to a region that contains only XO sections.
Non-ConfidentialPDF file icon PDF versionARM DUI0474M
Copyright © 2010-2016 ARM Limited or its affiliates. All rights reserved.