diff options
| author | Paolo Bonzini <pbonzini@redhat.com> | 2025-11-28 23:20:50 +0100 |
|---|---|---|
| committer | Dylan Baker <dylan@pnwbakers.com> | 2025-12-01 09:37:23 -0800 |
| commit | 5d89529c64ebb6fab4d26ff18b0ad86b09a0f31c (patch) | |
| tree | 71c7e23ff019becf5ced3dae7b754a0713a8307a /mesonbuild/compilers/rust.py | |
| parent | 2e14cdd18efb15845d42ba458dce65fcaa533e39 (diff) | |
| download | meson-5d89529c64ebb6fab4d26ff18b0ad86b09a0f31c.tar.gz | |
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 <pbonzini@redhat.com>
Diffstat (limited to 'mesonbuild/compilers/rust.py')
| -rw-r--r-- | mesonbuild/compilers/rust.py | 3 |
1 files changed, 3 insertions, 0 deletions
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] |
