BFD maintains relocations in much the same way it maintains
symbols: they are left alone until required, then read in
en-masse and translated into an internal form. A common
routine bfd_perform_relocation
acts upon the
canonical form to do the fixup.
Relocations are maintained on a per section basis, while symbols are maintained on a per BFD basis.
All that a back end has to do to fit the BFD interface is to create
a struct reloc_cache_entry
for each relocation
in a particular section, and fill in the right bits of the structures.
The text of the Arduino reference is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.