[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2 1/2] qga-win: add logging to Windows event log
From: |
Andrey Drobyshev |
Subject: |
Re: [PATCH v2 1/2] qga-win: add logging to Windows event log |
Date: |
Mon, 23 Jan 2023 21:38:00 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.6.0 |
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 <yur@virtuozzo.com>
>> Signed-off-by: Andrey Drobyshev <andrey.drobyshev@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