summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorMohamed Mediouni <mohamed@unpredictable.fr>2026-02-10 05:07:22 +0100
committerPierrick Bouvier <pierrick.bouvier@linaro.org>2026-02-10 12:58:31 -0800
commitb0353beebb0c4fa4059c88362561a8362ada8b4c (patch)
treeb6abc6058912217d52d3cda4ad622093438748bc /plugins
parent0b91040d23dc8820724a60c811223b777f3bc6b7 (diff)
downloadqemu-b0353beebb0c4fa4059c88362561a8362ada8b4c.tar.gz
qemu-b0353beebb0c4fa4059c88362561a8362ada8b4c.zip
plugins: fix cross-build using LLVM for Windows targets
llvm-dlltool assumes that it's by default targeting the host architecture it's running on. That assumption doesn't hold true when cross-compiling. Signed-off-by: Mohamed Mediouni <mohamed@unpredictable.fr> Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> Tested-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> Link: https://lore.kernel.org/qemu-devel/20260210040722.11375-1-mohamed@unpredictable.fr Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Diffstat (limited to 'plugins')
-rw-r--r--plugins/meson.build9
1 files changed, 8 insertions, 1 deletions
diff --git a/plugins/meson.build b/plugins/meson.build
index 34643e2cea..9899f166ee 100644
--- a/plugins/meson.build
+++ b/plugins/meson.build
@@ -41,9 +41,16 @@ if host_os == 'windows'
# to find missing symbols in current program.
win32_qemu_plugin_api_link_flags = ['-Lplugins', '-lqemu_plugin_api']
if meson.get_compiler('c').get_id() == 'clang'
+ if host_machine.cpu() == 'x86_64'
+ dlltool_target = 'i386:x86-64'
+ elif host_machine.cpu() == 'aarch64'
+ dlltool_target = 'arm64'
+ else
+ error('Unknown machine')
+ endif
# With LLVM/lld, delaylib is specified at link time (-delayload)
dlltool = find_program('llvm-dlltool', required: true)
- dlltool_cmd = [dlltool, '-d', '@INPUT@', '-l', '@OUTPUT@', '-D', 'qemu.exe']
+ dlltool_cmd = [dlltool, '-m', dlltool_target,'-d', '@INPUT@', '-l', '@OUTPUT@', '-D', 'qemu.exe']
win32_qemu_plugin_api_link_flags += ['-Wl,-delayload=qemu.exe']
else
# With gcc/ld, delay lib is built with a specific delay parameter.