flâneur — a map of the web's best reading

Faster Apple Builds with the lld Linker | Michael Eisel’s Blog

eisel.me · 1,252 words · saved by 1 readers

TL;DR: lld is a great choice for faster linking of iOS, macOS, etc. debug binaries. It takes 20-50% less time than ld64 and is now used by many large companies. Steps on how to integrate are in the section below. zld has been archived in favor of lld. Linking is one of the main bottlenecks for incremental builds. Thousands upon thousands of developer-hours are spent each year waiting on debug builds to link, and so linker optimization is a major topic. Linkers are complicated beasts that have to do intricate transformations on huge amounts of data at lightning speed, so it requires a lot of work. This blog post will discuss the past, present, and future of linker optimization for Apple platforms. It also includes a practical section on how to integrate lld at present. If you aren’t familiar with linking, read about it here and look for the linking step at the end of your build logs. For years, there was only one linker in wide use, Apple’s standard linker known as ld64. Unfortunately,

Update: with the release of ld-prime, the new default linker, lld is no longer necessarily the fastest option TL;DR: lld is a great choice for faster linking of iOS, macOS, etc. debug binaries. It takes 20-50% less time than ld64 and is now used by many large companies. Steps on how to integrate are in the section below. zld has been archived in favor of lld. Introduction Linking is one of the main bottlenecks for incremental builds. Thousands upon thousands of developer-hours are spent each year waiting on debug builds to link, and so linker optimization is a major topic. Linkers are complica

Explore this link on the map →

related reading