lld 22.0.0git Release Notes

Warning

These are in-progress notes for the upcoming LLVM 22.0.0git release. Release notes for previous releases can be found on the Download Page.

Introduction

This document contains the release notes for the lld linker, release 22.0.0git. Here we describe the status of lld, including major improvements from the previous release. All lld releases may be downloaded from the LLVM releases web site.

Non-comprehensive list of changes in this release

ELF Improvements

  • --print-gc-sections=<file> prints garbage collection section listing to a file. (#159706)

Breaking changes

COFF Improvements

  • /fat-lto-objects addded to support FatLTO. Without /fat-lto-objects or with /fat-lto-objects:no, LLD will link LLVM FatLTO objects using the relocatable object file. (#165529)

  • /linkreprofullpathrsp prints the full path to each object passed to the link line to a file. (#174971)

  • -prefetch-inputs can improve link times by asynchronously loading input files in RAM. This will dampen the effect of input file I/O latency on link times. However this flag can have an adverse effect when linking a large number of inputs files, or if all inputs do not fit in RAM at once. For those cases, linking might be a bit slower since the inputs will be streamed into RAM upfront, only to be evicted later by swapping. (#169224)

MinGW Improvements

MachO Improvements

  • --separate-cstring-literal-sections emits cstring literal sections into sections defined by their section name. (#158720)

  • --tail-merge-strings enables tail merging of cstring literals. (#161262)

WebAssembly Improvements

  • The --stack-first flag is now enabled by default. The old behavior can be enabled using --no-stack-first.

Fixes