bfd: Symbols
2.7 Symbols
===========
BFD tries to maintain as much symbol information as it can when it moves
information from file to file. BFD passes information to applications
though the 'asymbol' structure. When the application requests the
symbol table, BFD reads the table in the native form and translates
parts of it into the internal format. To maintain more than the
information passed to applications, some targets keep some information
"behind the scenes" in a structure only the particular back end knows
about. For example, the coff back end keeps the original symbol table
structure as well as the canonical structure when a BFD is read in. On
output, the coff back end can reconstruct the output symbol table so
that no information is lost, even information unique to coff which BFD
doesn't know or understand. If a coff symbol table were read, but were
written through an a.out back end, all the coff specific information
would be lost. The symbol table of a BFD is not necessarily read in
until a canonicalize request is made. Then the BFD back end fills in a
table provided by the application with pointers to the canonical
information. To output symbols, the application provides BFD with a
table of pointers to pointers to 'asymbol's. This allows applications
like the linker to output a symbol as it was read, since the "behind the
scenes" information will be still available.
Menu