Hi Stefan, On 1/23/23 19:28, Stefan Weil wrote: > Hi, > > cross builds fail with this code. Please see details below. > > Am 29.11.22 um 18:38 schrieb Andrey Drobyshev via: >> This commit allows QGA to write to Windows event log using Win32 API's >> ReportEvent() [1], much like syslog() under *nix guests. >> >> In order to generate log message definitions we use a very basic message >> text file [2], so that every QGA's message gets ID 1. The tools >> "windmc" and "windres" respectively are used to generate ".rc" file and >> COFF object file, and then the COFF file is linked into qemu-ga.exe. >> >> [1] >> https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-reporteventa >> [2] >> https://learn.microsoft.com/en-us/windows/win32/eventlog/message-text-files >> >> Originally-by: Yuri Pudgorodskiy <y...@virtuozzo.com> >> Signed-off-by: Andrey Drobyshev <andrey.drobys...@virtuozzo.com> >> --- >> configure | 3 +++ >> qga/installer/qemu-ga.wxs | 5 +++++ >> qga/main.c | 16 +++++++++++++--- >> qga/meson.build | 19 ++++++++++++++++++- >> qga/messages-win32.mc | 9 +++++++++ >> 5 files changed, 48 insertions(+), 4 deletions(-) >> create mode 100644 qga/messages-win32.mc >> >> diff --git a/configure b/configure >> index 26c7bc5154..789a4f6cc9 100755 >> --- a/configure >> +++ b/configure >> @@ -372,6 +372,7 @@ smbd="$SMBD" >> strip="${STRIP-${cross_prefix}strip}" >> widl="${WIDL-${cross_prefix}widl}" >> windres="${WINDRES-${cross_prefix}windres}" >> +windmc="${WINDMC-${cross_prefix}windmc}" > > Here the needed cross prefix is added ... > >> pkg_config_exe="${PKG_CONFIG-${cross_prefix}pkg-config}" >> query_pkg_config() { >> "${pkg_config_exe}" ${QEMU_PKG_CONFIG_FLAGS} "$@" > [...] >> diff --git a/qga/meson.build b/qga/meson.build >> index 3cfb9166e5..1ff159edc1 100644 >> --- a/qga/meson.build >> +++ b/qga/meson.build >> @@ -98,7 +98,24 @@ if targetos == 'windows' >> endif >> endif >> -qga = executable('qemu-ga', qga_ss.sources(), >> +qga_objs = [] >> +if targetos == 'windows' >> + windmc = find_program('windmc', required: true) > > ... but here the cross prefix is missing and the cross build aborts > because windmc does not exist.
There's no need for the cross prefix here. After you've run ./configure with --cross-prefix, argument, you'll see the following in build/config-meson.cross file: [binaries] .... widl = ['x86_64-w64-mingw32-widl'] windres = ['x86_64-w64-mingw32-windres'] windmc = ['x86_64-w64-mingw32-windmc'] And these are the actual values meson's find_program() is going to be looking for. So it doesn't seem like there's anything broken here, it's a matter of build requirements. > > Regards > Stefan