11.1.6 Building the Output File

Finally, the linker builds the output file. Relocation entries in each section are patched using absolute addresses. If the address computed for a symbol does not fit in the relocation entry, a link error results. This can occur, for example, if a function pointer on a dsPIC33C/E/F device is referenced without the handle() operator and its address is too large to fit in 16 bits. When compiled for dsPIC33A devices, function pointers contain a 32-bit address, so this particular error would never occur.

A link map is also generated if requested with the appropriate option. The link map includes a memory usage report, which shows the starting address and length of all sections in data memory and program memory. For more information about the link map, see Input/Output Section Map.