On 4/29/2026 1:32 AM, Paolo Bonzini wrote:
> On 4/29/26 01:16, Pierrick Bouvier wrote:
>> I noticed that plugins are not working when building with with
>> --enable-rust.
>>
>> We explicitly export qemu_plugin_* symbols from QEMU binary using:
>> plugins/meson.build:24 [1]
>> ```
>> emulator_link_args += '-Xlinker', '--dynamic-list=' +
>> qemu_plugin_symbols.full_path()
>> ```
>>
>> Tracing a rust enabled build, it seems that rustc is responsible for
>> doing the final link, by calling the compiler (cc here).
>> However, I didn't see those flags being passed.
>>
>> Any idea how to make rustc apply these flags correctly?
> 
> I would start by testing Meson 1.11. From https://mesonbuild.com/
> Release-notes-for-1-11-0.html:
> 
> ---
> ## Change to handling of linker arguments for Rust
> 
> Since the Rust compiler integrates the compiler and linker phase,
> previous Meson versions did not obey link_args,
> add_project_link_arguments or add_global_link_arguments.
> 
> Starting in this version, add_project_link_arguments(),
> add_global_link_arguments(), and the link_args keyword argument are
> supported for Rust. They wrap the arguments with -Clink-arg= when
> invoking rustc, and are only included when creating binary or shared
> library crates.
> 
> Likewise, methods such as has_link_argument() now wrap the arguments
> being tested with -Clink-arg=.
> ----
> 
> Paolo
> 

This works with meson 1.11.0, I'll send a patch to update version after
running a full CI.

Regards,
Pierrick


Reply via email to