| Related articles |
|---|
| Paper: mold: A Massively Parallel Linker johnl@taugh.com (John R Levine) (2026-08-28) |
| From: | John R Levine <johnl@taugh.com> |
| Newsgroups: | comp.compilers |
| Date: | Fri, 28 Aug 2026 17:19:09 -0400 |
| Organization: | Compilers Central |
| Injection-Info: | gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="4474"; mail-complaints-to="abuse@iecc.com" |
| Keywords: | paper, linker |
| Posted-Date: | 28 Aug 2026 17:20:24 EDT |
Despite being essential system software, linkers don't get much respect.
(They've been around for 75 years and there's only one book on them, mine.)
They've traditionally been pretty slow, but it turns out you can make them a
lot faster by careful parallelization.
Abstract
Linking is a critical step in the software build process that combines compiled
object files into a single executable or shared library. Despite decades of
engineering effort, link times remain a significant bottleneck in the
edit-compile-debug cycle, particularly for large C++ programs. Existing linkers
exploit limited parallelism, leaving most CPU cores idle during linking. We
present mold, a Unix/Linux linker that applies data parallelism systematically
across the entire linking pipeline. We first analyze the architectural
constraints that prevent existing linkers from scaling, including entangled
symbol resolution and archive processing, and then show how a clean-slate design
that decouples them overcomes these limitations. On large real-world programs,
mold links multi-gigabyte debug binaries in at most a few seconds, and often in
under a second. It is 2.4-16.1x faster than the state-of-the-art lld linker, and
up to 112x faster than the traditional GNU ld. An ablation study shows that no
single optimization dominates; the speedup comes from the cumulative effect of
parallelizing all passes.
https://arxiv.org/abs/2608.23228
Regards,
John Levine, johnl@taugh.com, Taughannock Networks, Trumansburg NY
Please consider the environment before reading this e-mail. https://jl.ly
Return to the
comp.compilers page.
Search the
comp.compilers archives again.