From: Pierrick Bouvier <pierrick.bouvier@linaro.org>
To: "Xingtao Yao (Fujitsu)" <yaoxt.fnst@fujitsu.com>,
Peter Maydell <peter.maydell@linaro.org>
Cc: "alex.bennee@linaro.org" <alex.bennee@linaro.org>,
"erdnaxe@crans.org" <erdnaxe@crans.org>,
"ma.mandourr@gmail.com" <ma.mandourr@gmail.com>,
"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>
Subject: Re: [PATCH] contrib/plugins/execlog: Fix compiler warning
Date: Mon, 25 Mar 2024 08:31:15 +0400 [thread overview]
Message-ID: <11198af6-593a-4aba-afba-c3b8101d03f3@linaro.org> (raw)
In-Reply-To: <OSZPR01MB645321820A55828922270D5A8D362@OSZPR01MB6453.jpnprd01.prod.outlook.com>
On 3/25/24 07:00, Xingtao Yao (Fujitsu) wrote:
> Pete:
> Thanks for your comment.
>
> I also find a similar patch written by Pierrick: https://lore.kernel.org/qemu-devel/20240118032400.3762658-15-pierrick.bouvier@linaro.org/
> but for some reason, the patch was not merged yet.
>
> shall I need to continue tracking the fixes of this bug?
>
Hi Xingtao,
you're doing the right thing here. In my original patch, there was no
consideration for backward compatibility, to the opposite of what you did.
Alex will be out for several weeks, so it might take some time to get
this merged, but I'm definitely voting for this 👍.
Pierrick
>> -----Original Message-----
>> From: Peter Maydell <peter.maydell@linaro.org>
>> Sent: Friday, March 22, 2024 7:50 PM
>> To: Yao, Xingtao/姚 幸涛 <yaoxt.fnst@fujitsu.com>
>> Cc: alex.bennee@linaro.org; erdnaxe@crans.org; ma.mandourr@gmail.com;
>> pierrick.bouvier@linaro.org; qemu-devel@nongnu.org
>> Subject: Re: [PATCH] contrib/plugins/execlog: Fix compiler warning
>>
>> On Wed, 20 Mar 2024 at 02:05, Yao Xingtao via <qemu-devel@nongnu.org>
>> wrote:
>>>
>>> 1. The g_pattern_match_string() is deprecated when glib2 version >= 2.70.
>>> Use g_pattern_spec_match_string() instead to avoid this problem.
>>>
>>> 2. The type of second parameter in g_ptr_array_add() is
>>> 'gpointer' {aka 'void *'}, but the type of reg->name is 'const char*'.
>>> Cast the type of reg->name to 'gpointer' to avoid this problem.
>>>
>>> compiler warning message:
>>> /root/qemu/contrib/plugins/execlog.c:330:17: warning:
>> ‘g_pattern_match_string’
>>> is deprecated: Use 'g_pattern_spec_match_string'
>>> instead [-Wdeprecated-declarations]
>>> 330 | if (g_pattern_match_string(pat, rd->name) ||
>>> | ^~
>>> In file included from /usr/include/glib-2.0/glib.h:67,
>>> from /root/qemu/contrib/plugins/execlog.c:9:
>>> /usr/include/glib-2.0/glib/gpattern.h:57:15: note: declared here
>>> 57 | gboolean g_pattern_match_string (GPatternSpec *pspec,
>>> | ^~~~~~~~~~~~~~~~~~~~~~
>>> /root/qemu/contrib/plugins/execlog.c:331:21: warning:
>> ‘g_pattern_match_string’
>>> is deprecated: Use 'g_pattern_spec_match_string'
>>> instead [-Wdeprecated-declarations]
>>> 331 | g_pattern_match_string(pat, rd_lower)) {
>>> | ^~~~~~~~~~~~~~~~~~~~~~
>>> /usr/include/glib-2.0/glib/gpattern.h:57:15: note: declared here
>>> 57 | gboolean g_pattern_match_string (GPatternSpec *pspec,
>>> | ^~~~~~~~~~~~~~~~~~~~~~
>>> /root/qemu/contrib/plugins/execlog.c:339:63: warning: passing argument
>>> 2 of ‘g_ptr_array_add’ discards ‘const’ qualifier from pointer target
>>> type [-Wdiscarded-qualifiers]
>>> 339 | g_ptr_array_add(all_reg_names,
>> reg->name);
>>> |
>> ~~~^~~~~~
>>> In file included from /usr/include/glib-2.0/glib.h:33:
>>> /usr/include/glib-2.0/glib/garray.h:198:62: note: expected ‘gpointer’
>>> {aka ‘void *’} but argument is of type ‘const char *’
>>> 198 | gpointer
>> data);
>>> |
>> ~~~~~~~~~~~~~~~~~~^~~~
>>>
>>
>> Hi; thanks for this patch.
>>
>> This fixes a bug reported in the bug tracker so we should put
>>
>> Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2210
>>
>> in the commit message just above your signed-off-by tag.
>>
>>
>>> Signed-off-by: Yao Xingtao <yaoxt.fnst@fujitsu.com>
> I will if needed.
>
>>> ---
>>> contrib/plugins/execlog.c | 7 ++++++-
>>> 1 file changed, 6 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/contrib/plugins/execlog.c b/contrib/plugins/execlog.c
>>> index a1dfd59ab7..41f6774116 100644
>>> --- a/contrib/plugins/execlog.c
>>> +++ b/contrib/plugins/execlog.c
>>> @@ -327,8 +327,13 @@ static GPtrArray *registers_init(int vcpu_index)
>>> for (int p = 0; p < rmatches->len; p++) {
>>> g_autoptr(GPatternSpec) pat =
>> g_pattern_spec_new(rmatches->pdata[p]);
>>> g_autofree gchar *rd_lower = g_utf8_strdown(rd->name,
>>> -1);
>>> +#if GLIB_VERSION_MAX_ALLOWED < G_ENCODE_VERSION(2, 70)
>>
>> Elsewhere we do glib version checks with
>>
>> #if GLIB_CHECK_VERSION(2, 70, 0)
>> code for 2.70.0 and up;
>> #else
>> code for older versions
>> #endif
>>
>> so I think we should probably do that here too.
>>
>>> if (g_pattern_match_string(pat, rd->name) ||
>>> g_pattern_match_string(pat, rd_lower)) {
>>> +#else
>>> + if (g_pattern_spec_match_string(pat, rd->name) ||
>>> + g_pattern_spec_match_string(pat, rd_lower)) {
>>> +#endif
> thanks, I got it.
>
>>
>> Rather than putting this ifdef in the middle of this function, I think it would be
>> easier to read if we abstract out a function which does the pattern matching
>> and whose body calls the right glib function depending on glib version. We
>> generally call these functions the same as the glib function but with a _qemu
>> suffix (compare the ones in include/glib-compat.h), so here that would be
>> g_pattern_spec_match_string_qemu().
>>
>>> Register *reg = init_vcpu_register(rd);
>>> g_ptr_array_add(registers, reg);
>>>
>>> @@ -336,7 +341,7 @@ static GPtrArray *registers_init(int vcpu_index)
>>> if (disas_assist) {
>>> g_mutex_lock(&add_reg_name_lock);
>>> if (!g_ptr_array_find(all_reg_names, reg->name,
>> NULL)) {
>>> - g_ptr_array_add(all_reg_names, reg->name);
>>> + g_ptr_array_add(all_reg_names,
>>> + (gpointer)reg->name);
>>> }
>>> g_mutex_unlock(&add_reg_name_lock);
>>> }
>>
> I think it's not worth adding this to glib-compat.h too.
>
>> thanks
>> -- PMM
>
> thanks
> Xingtao
next prev parent reply other threads:[~2024-03-25 4:32 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-20 2:01 [PATCH] contrib/plugins/execlog: Fix compiler warning Yao Xingtao via
2024-03-22 11:50 ` Peter Maydell
2024-03-25 3:00 ` Xingtao Yao (Fujitsu) via
2024-03-25 4:31 ` Pierrick Bouvier [this message]
2024-03-25 5:55 ` Xingtao Yao (Fujitsu) via
2024-03-25 6:06 ` [PATCH v2] " Yao Xingtao via
2024-03-25 6:41 ` Pierrick Bouvier
2024-03-25 9:58 ` Peter Maydell
2024-03-25 10:16 ` Pierrick Bouvier
2024-03-26 1:52 ` [PATCH v3] " Yao Xingtao via
2024-03-26 3:33 ` Pierrick Bouvier
2024-03-26 9:54 ` Philippe Mathieu-Daudé
2024-03-26 10:33 ` Peter Maydell
2024-03-26 12:03 ` Philippe Mathieu-Daudé
2024-03-27 0:21 ` Xingtao Yao (Fujitsu) via
2024-03-26 12:38 ` Pierrick Bouvier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=11198af6-593a-4aba-afba-c3b8101d03f3@linaro.org \
--to=pierrick.bouvier@linaro.org \
--cc=alex.bennee@linaro.org \
--cc=erdnaxe@crans.org \
--cc=ma.mandourr@gmail.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=yaoxt.fnst@fujitsu.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).