From: Paolo Bonzini Date: Thu, 20 Nov 2025 16:11:28 +0000 (+0100) Subject: rust: only link the Rust part of the code into devices X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4d06424c3dea82da46491ed568f1f9e6e8f426a7;p=thirdparty%2Fqemu.git rust: only link the Rust part of the code into devices Do not include libqemuutil in the device crates for the same reason as in the previous commit. Static libraries like qemuutil are sensitive to their position on the command line and rustc does not always get it right. If rustc places the library too early on the command line, the stubs are included in the final link product, which results in duplicate symbols. Signed-off-by: Paolo Bonzini --- diff --git a/rust/hw/char/pl011/meson.build b/rust/hw/char/pl011/meson.build index 33b91f2191..9c0e8290e9 100644 --- a/rust/hw/char/pl011/meson.build +++ b/rust/hw/char/pl011/meson.build @@ -28,20 +28,22 @@ _libpl011_rs = static_library( ), override_options: ['rust_std=2021', 'build.rust_std=2021'], rust_abi: 'rust', + link_with: [ + _util_rs, + _migration_rs, + _bql_rs, + _qom_rs, + _chardev_rs, + _system_rs, + _hwcore_rs, + _trace_rs + ], dependencies: [ bilge_rs, bilge_impl_rs, bits_rs, common_rs, glib_sys_rs, - util_rs, - migration_rs, - bql_rs, - qom_rs, - chardev_rs, - system_rs, - hwcore_rs, - trace_rs ], ) diff --git a/rust/hw/timer/hpet/meson.build b/rust/hw/timer/hpet/meson.build index 9a3dd62caa..3bb7ce2a6c 100644 --- a/rust/hw/timer/hpet/meson.build +++ b/rust/hw/timer/hpet/meson.build @@ -3,16 +3,16 @@ _libhpet_rs = static_library( files('src/lib.rs'), override_options: ['rust_std=2021', 'build.rust_std=2021'], rust_abi: 'rust', - dependencies: [ - common_rs, - util_rs, - migration_rs, - bql_rs, - qom_rs, - system_rs, - hwcore_rs, - trace_rs, + link_with: [ + _util_rs, + _migration_rs, + _bql_rs, + _qom_rs, + _system_rs, + _hwcore_rs, + _trace_rs, ], + dependencies: [common_rs], ) rust_devices_ss.add(when: 'CONFIG_X_HPET_RUST', if_true: [declare_dependency(