Understanding the Go Compiler: The Linker
Summary
An in-depth look at how the Go linker merges multiple object files into a single executable. It explains symbol resolution, relocation, and dead code elimination, then covers memory layout (sections and segments) and the various executable formats Go can emit. A concrete example traces linking a small two-package program and discusses static vs dynamic linking and build modes.