Search code examples
linkerllvmlld

What is a "Port" in linker?


I'm reading the documentations of LLD (LLVM linker) and it mentioned "ports".

Eg.,

The ELF port is the one that will be described in this document. The PE/COFF port is complete, including Windows debug info (PDB) support. The WebAssembly port is still a work in progress (See WebAssembly lld port)

Can someone explain what exactly is a linker port?


Solution

  • In these context the part of the linker that actually writes the output files (in the respective formats like ELF for *nix and PE/COFF for Windows).

    Since the formats (and associated debuginfo) can be quite complex, this can be quite a large, and because they are also somewhat platform dependent here it is referred to as a "port" (as in porting, carrying over software from one system to the other), because adding support for the various file formats is a/the major part of adding new target.