From 5d89529c64ebb6fab4d26ff18b0ad86b09a0f31c Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Fri, 28 Nov 2025 23:20:50 +0100 Subject: rust: Rust-ABI dynamic libraries do not support LTO Attempting to use LTO on e.g. a procedural macro crate fails with error: lto cannot be used for proc-macro crate type without -Zdylib-lto Do not return -Clto for such crate types. Signed-off-by: Paolo Bonzini --- mesonbuild/compilers/rust.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mesonbuild/compilers/rust.py b/mesonbuild/compilers/rust.py index b09522f37..ab0706d26 100644 --- a/mesonbuild/compilers/rust.py +++ b/mesonbuild/compilers/rust.py @@ -367,6 +367,9 @@ class RustCompiler(Compiler): def get_lto_compile_args(self, *, target: T.Optional[BuildTarget] = None, threads: int = 0, mode: str = 'default') -> T.List[str]: + if target.rust_crate_type in {'dylib', 'proc-macro'}: + return [] + # TODO: what about -Clinker-plugin-lto? rustc_lto = 'lto=thin' if mode == 'thin' else 'lto' return ['-C', rustc_lto] -- cgit v1.2.3