Rust 1.90: rustc switches to LLD as the default linker on x86_64 Linux
Key update
The Rust project announced that starting with Rust 1.90.0 stable (scheduled for 2025-09-18) rustc will use the LLVM LLD linker by default for the x86_64-unknown-linux-gnu target. In benchmarks the change reduces linking time by up to 7× for incremental builds (the ripgrep example showed ~40% end-to-end speedup for incremental debug rebuilds and ~20% improvement for full debug builds). The new default is already available on the 1.90 beta — projects should test against beta now and file issues if they observe linker regressions.
Why it matters
This is a practical, much‑felt performance win for Linux Rust developers and CI systems: linking is often a dominant portion of build time for larger binaries and debug builds, so faster linking directly shortens edit‑compile cycles and CI run times. For teams this can mean smaller CI queues, lower runner time and cost, and faster developer iteration without changing code. Because rust-lld is shipped with toolchains, you don't need to install system linkers to benefit; however, the change is target‑specific (x86_64 Linux) and is not a global toolchain behavior for other platforms.
There is a small compatibility surface: LLD is not byte‑for‑byte compatible with GNU ld in rare cases, so some crates that relied on legacy linker semantics may need link flags (or opt‑out). If you encounter problems you can revert to the previous behavior per‑project by setting RUSTFLAGS or .cargo/config.toml with -Clinker-features=-lld (or add the equivalent flag to your CI build). Practically, the recommended immediate actions are: test your repositories on the 1.90 beta in CI, update any pinned Docker images/rustup toolchain configurations used in CI to the beta/stable channel for verification, and add an opt‑out flag in CI templates only if a real linker incompatibility appears. Also monitor long‑running builds that are already resource‑constrained, since LLD’s parallelism can increase CPU usage during linking; if that impacts your runners, cap parallelism or use the opt‑out temporarily.
This change is a low-risk, high-reward tooling improvement for Linux Rust development with clear operational and developer productivity benefits; prepare by running the beta in CI, keep an eye out for link-time regressions, and use the documented opt‑out flag when necessary.
Source
Read Next
Node.js v25 scheduled for 2025‑10‑15 — semver‑major release imminent
September 30, 2025Node.js v25 is scheduled for October 15, 2025 (commit cutoff 2025‑09‑15). Teams should run CI against the new major, validate native modules, and prepare canary deployments.
Azure Functions Proxies: community support ends 2025‑09‑30 — migrate off Proxies now
September 29, 2025Azure announced Azure Functions Proxies will be unsupported after 2025‑09‑30; teams still using Proxies must inventory and migrate to a supported API surface (APIM, Front Door, or a lightweight reverse proxy) immediately.
NodeShield: runtime SBOM enforcement (CBOM) for Node.js limits supply‑chain attacks with negligible overhead
September 28, 2025A new paper introduces NodeShield, a runtime enforcement system that uses SBOMs extended with per‑dependency capabilities (CBOM) to prevent supply‑chain abuses in Node.js with ~98% effectiveness and <1ms overhead.