Improvements to the Mach-O LLD linker
- Mentors
- Nico Weber, Hans Wennborg
- Organization
- Chromium
- Technologies
- c++
- Topics
- development tools, llvm, Linkers
Chromium is built using LLVM’s LLD linker for all platforms. This project aims to make various improvements to the LLD linker, which will ultimately improve user experience and allow Chromium developers to be more productive.
I plan to focus on two key areas: performance, and quality of diagnostics. While LLD is regarded as a faster alternative to system linkers, the new mold linker has shown that there are still speed gains to be had. My work will include bringing parallelism to the construction of various linker-synthesized sections in the Mach-O port, and to input file reading. Regarding diagnostics, I’m going to implement deduplication for “undefined symbol” errors in the Mach-O port and utilize debug information to show where duplicate symbols are defined. If time permits, I’m interested in implementing smaller missing features such as ARM64 linker optimization hints.