[PATCH] meson: propagate qemu_ldflags to Rust link step

Brian Cain posted 1 patch 1 week, 4 days ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20260714021236.2361604-1-brian.cain@oss.qualcomm.com
Maintainers: Paolo Bonzini <pbonzini@redhat.com>, "Marc-André Lureau" <marcandre.lureau@redhat.com>, "Daniel P. Berrangé" <berrange@redhat.com>, "Philippe Mathieu-Daudé" <philmd@mailo.com>, Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
meson.build | 3 +++
1 file changed, 3 insertions(+)
[PATCH] meson: propagate qemu_ldflags to Rust link step
Posted by Brian Cain 1 week, 4 days ago
Sanitizer flags are added to qemu_ldflags and applied globally for
all_languages, but all_languages never includes 'rust'.

Fixes link errors like the ones below:

    -Wl,-rpath,$ORIGIN/../qemu-macros:<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib"
      = note: some arguments are omitted. use `--verbose` to show all linker arguments
      = note: rust-lld: error: undefined symbol: __ubsan_handle_type_mismatch_v1
              >>> referenced by event-loop-base.c:104 (../qemu_before_fix/event-loop-base.c:104)
              >>>               libevent-loop-base.a.p/event-loop-base.c.o:(event_loop_base_class_init)
              >>> referenced by event-loop-base.c:105 (../qemu_before_fix/event-loop-base.c:105)
              >>>               libevent-loop-base.a.p/event-loop-base.c.o:(event_loop_base_class_init)
              >>> referenced by event-loop-base.c:58 (../qemu_before_fix/event-loop-base.c:58)
              >>>               libevent-loop-base.a.p/event-loop-base.c.o:(event_loop_base_set_param)
              >>> referenced 11240 more times

Signed-off-by: Brian Cain <brian.cain@oss.qualcomm.com>
---
 meson.build | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/meson.build b/meson.build
index 164328ded83..5f42bbf40c7 100644
--- a/meson.build
+++ b/meson.build
@@ -767,6 +767,9 @@ endif
 add_project_arguments(cc.get_supported_arguments(qemu_common_flags + qemu_cflags + warn_flags),
                       native: false, language: 'c')
 add_global_link_arguments(qemu_ldflags, native: false, language: all_languages)
+if have_rust
+  add_global_link_arguments(qemu_ldflags, native: false, language: 'rust')
+endif
 
 if 'cpp' in all_languages
   add_project_arguments(cxx.get_supported_arguments(qemu_common_flags + qemu_cxxflags),
-- 
2.34.1

Re: [PATCH] meson: propagate qemu_ldflags to Rust link step
Posted by Paolo Bonzini 1 week, 4 days ago
Queued, thanks.

Paolo
Re: [PATCH] meson: propagate qemu_ldflags to Rust link step
Posted by Pierrick Bouvier 1 week, 4 days ago
On 7/13/2026 7:12 PM, Brian Cain wrote:
> Sanitizer flags are added to qemu_ldflags and applied globally for
> all_languages, but all_languages never includes 'rust'.
> 
> Fixes link errors like the ones below:
> 
>     -Wl,-rpath,$ORIGIN/../qemu-macros:<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib"
>       = note: some arguments are omitted. use `--verbose` to show all linker arguments
>       = note: rust-lld: error: undefined symbol: __ubsan_handle_type_mismatch_v1
>               >>> referenced by event-loop-base.c:104 (../qemu_before_fix/event-loop-base.c:104)
>               >>>               libevent-loop-base.a.p/event-loop-base.c.o:(event_loop_base_class_init)
>               >>> referenced by event-loop-base.c:105 (../qemu_before_fix/event-loop-base.c:105)
>               >>>               libevent-loop-base.a.p/event-loop-base.c.o:(event_loop_base_class_init)
>               >>> referenced by event-loop-base.c:58 (../qemu_before_fix/event-loop-base.c:58)
>               >>>               libevent-loop-base.a.p/event-loop-base.c.o:(event_loop_base_set_param)
>               >>> referenced 11240 more times
> 
> Signed-off-by: Brian Cain <brian.cain@oss.qualcomm.com>
> ---
>  meson.build | 3 +++
>  1 file changed, 3 insertions(+)
> 

Reviewed-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>