You copied the Doc URL to your clipboard.

About mapping symbols

Mapping symbols are generated by armcc and armasm to identify inline transitions between:

  • code and data at literal pool boundaries

  • ARM code and Thumb code, such as ARM/Thumb interworking veneers.

The mapping symbols are:


start of a sequence of ARM instructions


start of a sequence of Thumb instructions


start of a sequence of ThumbEE instructions


start of a sequence of data items, such as a literal pool.

armlink generates the $d.realdata mapping symbol to communicate to fromelf that the data is from a non-executable section. Therefore, the code and data sizes output by fromelf -z are the same as the output from armlink --info sizes, for example:

      Code (inc. data)   RO Data
         x          y          z

In this example, the y is marked with $d, and RO Data is marked with $d.realdata.


Symbols beginning with the characters $v are mapping symbols related to VFP and might be output when building for a target with VFP. Avoid using symbols beginning with $v in your source code.

Be aware that modifying an executable image with the fromelf --elf --strip=localsymbols command removes all mapping symbols from the image.

See also