Relocation processing — patching addresses after placement — is the linker's core job and the mechanism behind position-independent code, ASLR, and the GOT/PLT that every Linux shared library uses. When you see R_X86_64_PLT32 in a link error, you are looking at exactly the records you parse in this task.