Veneer sharing
If multiple objects result in the same veneer being created, the linker creates a single instance of that veneer. The veneer is then shared by those objects.
You can use the command-line option --no_veneershare
to specify that
veneers are not shared. This assigns ownership of the created veneer section to the object
that created the veneer and so enables you to select veneers from a particular object in a
scatter file, for example:
LR 0x8000 { ER_ROOT +0 { object1.o(Veneer$$Code) } }
Be aware that veneer sharing makes it impossible to assign an owning object. Using
--no_veneershare
provides a more consistent image layout. However, this
comes at the cost of a significant increase in code size, because of the extra veneers
generated by the linker.