Linker
Linker on Linux has the linker script that actually shapes a program’s layout with regard to sections, memory, and symbols. Default linker script can be viewed with ld --verbose command.
The ld linker has a complete language that it interprets when it is taking input files, and it uses the language to determine how the output file will be organized.
A linker script can be specified with gcc using -T flag.