merging all segments of common type into a single segment of that type assigning unique run time addresses to each section and each symbol, giving all code (functions) and data (global variables) unique run time addresses [clarification needed] referring to the relocation table to modify[why?] symbols so that they point to the correct[clarification needed] run time addresses.