This is the function equivalent of a copy relocation.
Since functions are expected to change sizes, we cannot use copy relocations. In situations where one would be needed, what is done instead is:
- Create a plt entry
- Output an undefined symbol whose addr is the plt entry.
The dynamic linker makes sure any shared library uses the plt entry as the function address.