lld 19.0.0git Release Notes

Warning

These are in-progress notes for the upcoming LLVM 19.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 19.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

  • --compress-sections <section-glib>={none,zlib,zstd}[:level] is added to compress matched output sections without the SHF_ALLOC flag. (#84855) (#90567)

  • The default compression level for zlib is now independent of linker optimization level (Z_BEST_SPEED).

  • GNU_PROPERTY_AARCH64_FEATURE_PAUTH notes, R_AARCH64_AUTH_ABS64 and R_AARCH64_AUTH_RELATIVE relocations are now supported. (#72714)

  • --debug-names is added to create a merged .debug_names index from input .debug_names sections. Type units are not handled yet. (#86508)

  • --enable-non-contiguous-regions option allows automatically packing input sections into memory regions by automatically spilling to later matches if a region would overflow. This reduces the toil of manually packing regions (typical for embedded). It also makes full LTO feasible in such cases, since IR merging currently prevents the linker script from referring to input files. (#90007)

Breaking changes

COFF Improvements

MinGW Improvements

MachO Improvements

WebAssembly Improvements

Fixes