Symbol Types

At least the following types are used; others are, as well, depending on the object file format.

If lowercase, the symbol is local; if uppercase, the symbol is global (external).

A absolute symbol
B in an uninitialized data section (known as BSS).
D in a initialized data section.
G in a initialized data section for small objects.
N debugging symbol.
R in a read only data section.
S in an uninitialized data section for small objects.
T in the text (code) section.
W weak symbol.

absolute symbols

The symbol's value is absolute, and will not be changed by further linking.

small objects

Some object file formats permit more efficient access to small data objects, such as a global int variable as opposed to a large global array.

Weak symbols

When a weak defined symbol is linked with a normal defined symbol, the normal defined symbol is used with no error. When a weak undefined symbol is linked and the symbol is not defined, the value of the weak symbol becomes zero with no error.


Maintained by John Loomis, last updated 5 April 2007