# Install lld with Homebrew, apt, dnf, Nix, pacman, zypper

LLVM Project Linker. Version 22.1.8 via Homebrew; verified 2026-06-21. Also installable with debian: sudo apt install lld.

## Install

```sh
sudo av install brew:lld
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install lld
```

  Evidence: local Homebrew formula metadata

### Linux

- Debian apt (92%):

```sh
sudo apt install lld
```

  Evidence: Debian stable package indexes: lld from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

- dnf (92%):

```sh
sudo dnf install lld
```

  Evidence: Fedora Rawhide package metadata: lld from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-primary.xml.zst

- Nix (92%):

```sh
nix profile install nixpkgs#lld
```

  Evidence: nixpkgs package indexes: lld from https://raw.githubusercontent.com/NixOS/nixpkgs/master/pkgs/top-level/all-packages.nix

- pacman (92%):

```sh
sudo pacman -S lld
```

  Evidence: Arch Linux sync databases: lld from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz

- zypper (92%):

```sh
sudo zypper install lld
```

  Evidence: openSUSE Tumbleweed package metadata: lld from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst

## Package facts

- **Package key:** brew:lld
- **Package manager:** Homebrew
- **Version:** 22.1.8
- **Source summary:** LLVM Project Linker
- **Homepage:** <https://lld.llvm.org/>
- **Repository:** <https://github.com/llvm/llvm-project>
- **Last updated:** 2026-06-21T01:50:33Z
- **Generated:** 2026-08-03T19:37:03+00:00

## Executables

- ld.lld (alias)
- ld64.lld (alias)
- lld (alias)
- lld-link (alias)
- wasm-ld (alias)

## Install behavior

- Bottle: not available

## Freshness

- Page generated: 2026-08-03
- Package-manager version: 22.1.8
## Project history and usage

lld is the LLVM Project's linker. It packages the LLVM approach to modular compiler infrastructure into the final link step, offering fast drop-in linkers for ELF, COFF, Mach-O, and WebAssembly workflows.

### Project history

lld developed as part of the broader LLVM toolchain. The official documentation describes it as a drop-in replacement for system linkers that runs much faster than traditional linkers and is useful for toolchain developers.

The lld documentation emphasizes several design choices that matter to compiler users: GNU-compatible command-line behavior for ELF, cross-linking support for all built targets, embeddability through lld::lldMain, default LTO support with clang, and a smaller codebase than GNU gold in the 2017 comparison.

The LLVM monorepo model means lld is released with LLVM rather than as a fully separate upstream project. Homebrew's lld formula builds the lld subproject from llvm-project release tarballs while depending on the matching LLVM package.

### Adoption history

lld adoption followed clang and LLVM adoption: developers could select it through compiler-driver flags such as -fuse-ld=lld instead of replacing /usr/bin/ld directly.

It became especially attractive for large C/C++ builds, cross-compilation, WebAssembly, Windows COFF/PDB workflows, and LTO-heavy builds where linker speed and LLVM integration matter.

### How it is used

The package installs linkers such as ld.lld, ld64.lld, lld-link, and wasm-ld. Unix users often reach it through clang's -fuse-ld=lld option, while Windows-style builds use lld-link and WebAssembly builds use wasm-ld.

For package-manager users, installing lld separately from a full compiler bundle can make it easier to test linker behavior, speed up builds, or build toolchains that intentionally mix compiler and linker components.

### Why package nerds care

lld is a core systems package because a linker affects every compiled binary produced through a toolchain. Small packaging choices around version matching, bottle compatibility, and dependency edges can ripple into large build farms.

Homebrew packaging lld as its own formula, rather than only as part of llvm, reflects the Unix tradition of swapping toolchain components one piece at a time.

### Timeline

- 2017: lld documentation compared lld/ELF with GNU gold and emphasized link-time performance and code-size differences.
- 2024: LLVM 19.1.0 release notes were published for the LLVM 19 release line.
- 2026: Homebrew formula metadata recorded lld built from llvm-project 22.1.8 release sources.

### Related projects

- lld is part of llvm-project alongside LLVM, Clang, compiler-rt, libc++, MLIR, and other toolchain subprojects.
- It is related to GNU ld, GNU gold, mold, platform linkers such as Apple's ld64, and WebAssembly toolchains that use wasm-ld.

### Sources

- <https://api.github.com/repos/llvm/llvm-project>
- <https://formulae.brew.sh/formula/lld>
- <https://github.com/llvm/llvm-project>
- <https://lld.llvm.org/>
- <https://raw.githubusercontent.com/Homebrew/homebrew-core/master/Formula/l/lld.rb>
- <https://releases.llvm.org/19.1.0/docs/ReleaseNotes.html>


## Security Notes

No matching local secret-handling manifest was found for lld. Nucleus package metadata is still published here so future coverage has a stable package URL.


## Other Package-Manager Records

- Debian apt - lld - 1:19.0-63: normalized package name match | Debian stable package indexes: lld from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | LLVM-based linker
- Nix - lld: normalized package name match | nixpkgs package indexes: lld from https://raw.githubusercontent.com/NixOS/nixpkgs/master/pkgs/top-level/all-packages.nix
- Ubuntu apt - lld - 1:18.0-59~exp2: normalized package name match | Ubuntu 24.04 LTS package indexes: lld from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | LLVM-based linker
- dnf - lld - 22.1.8-20.fc45: normalized package name match | Fedora Rawhide package metadata: lld from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-primary.xml.zst | The LLVM Linker | http://llvm.org
- pacman - lld - 22.1.8-1: normalized package name match | Arch Linux sync databases: lld from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz | Linker from the LLVM project | https://lld.llvm.org/
- zypper - lld - 22-3.2: normalized package name match | openSUSE Tumbleweed package metadata: lld from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst | Linker for Clang/LLVM | https://lld.llvm.org/


## Combined YAML source

View the package source record on GitHub. [combined/lld.yml](https://github.com/mxcl/pkgdb/blob/main/combined/lld.yml)


## Sources

- pkg.so package database
- Geiger risk classifier
- curated package history
- pkgdb category and tag curation
- external package-manager database matches
- cross-ecosystem install command graph
