qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] Fix const qualifier build errors with recent glibc
@ 2025-12-10 18:13 Cédric Le Goater
  2025-12-10 18:13 ` [PATCH 1/2] i386: " Cédric Le Goater
  2025-12-10 18:13 ` [PATCH 2/2] tests/vhost-user-bridge.c: " Cédric Le Goater
  0 siblings, 2 replies; 7+ messages in thread
From: Cédric Le Goater @ 2025-12-10 18:13 UTC (permalink / raw)
  To: qemu-devel
  Cc: Philippe Mathieu-Daudé, Peter Maydell, Paolo Bonzini,
	Richard Henderson, Cédric Le Goater

Hello,

More fixes for the build breakage due to the recent change in glibc
2.42.9000 : 

  https://sourceware.org/git/?p=glibc.git;a=commit;h=cd748a63ab1a7ae846175c532a3daab341c62690

Thanks,

C. 


Cédric Le Goater (2):
  i386: Fix const qualifier build errors with recent glibc
  tests/vhost-user-bridge.c: Fix const qualifier build errors with
    recent glibc

 hw/i386/x86-common.c      |  2 +-
 tests/vhost-user-bridge.c | 10 ++++------
 2 files changed, 5 insertions(+), 7 deletions(-)

-- 
2.52.0



^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 1/2] i386: Fix const qualifier build errors with recent glibc
  2025-12-10 18:13 [PATCH 0/2] Fix const qualifier build errors with recent glibc Cédric Le Goater
@ 2025-12-10 18:13 ` Cédric Le Goater
  2025-12-10 18:39   ` Peter Maydell
  2025-12-11 15:16   ` Philippe Mathieu-Daudé
  2025-12-10 18:13 ` [PATCH 2/2] tests/vhost-user-bridge.c: " Cédric Le Goater
  1 sibling, 2 replies; 7+ messages in thread
From: Cédric Le Goater @ 2025-12-10 18:13 UTC (permalink / raw)
  To: qemu-devel
  Cc: Philippe Mathieu-Daudé, Peter Maydell, Paolo Bonzini,
	Richard Henderson, Cédric Le Goater

A recent change in glibc 2.42.9000 [1] changes the return type of
strstr() and other string functions to be 'const char *' when the
input is a 'const char *'. This breaks the build in :

  ../hw/i386/x86-common.c:827:11: error: assignment discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
  827 |     vmode = strstr(kernel_cmdline, "vga=");
      |           ^

Fix this by changing the type of the variables that store the result
of these functions to 'const char *'.

[1] https://sourceware.org/git/?p=glibc.git;a=commit;h=cd748a63ab1a7ae846175c532a3daab341c62690

Signed-off-by: Cédric Le Goater <clg@redhat.com>
---
 hw/i386/x86-common.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/hw/i386/x86-common.c b/hw/i386/x86-common.c
index c844749900a30c9c9c284c529e93c84c9457b128..f77e2e63046ff56d079363e411a9ee0eca365291 100644
--- a/hw/i386/x86-common.c
+++ b/hw/i386/x86-common.c
@@ -654,7 +654,7 @@ void x86_load_linux(X86MachineState *x86ms,
     uint8_t header[8192], *setup, *kernel;
     hwaddr real_addr, prot_addr, cmdline_addr, initrd_addr = 0;
     FILE *f;
-    char *vmode;
+    const char *vmode;
     MachineState *machine = MACHINE(x86ms);
     struct setup_data *setup_data;
     const char *kernel_filename = machine->kernel_filename;
-- 
2.52.0



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 2/2] tests/vhost-user-bridge.c: Fix const qualifier build errors with recent glibc
  2025-12-10 18:13 [PATCH 0/2] Fix const qualifier build errors with recent glibc Cédric Le Goater
  2025-12-10 18:13 ` [PATCH 1/2] i386: " Cédric Le Goater
@ 2025-12-10 18:13 ` Cédric Le Goater
  2025-12-10 18:14   ` Cédric Le Goater
  1 sibling, 1 reply; 7+ messages in thread
From: Cédric Le Goater @ 2025-12-10 18:13 UTC (permalink / raw)
  To: qemu-devel
  Cc: Philippe Mathieu-Daudé, Peter Maydell, Paolo Bonzini,
	Richard Henderson, Cédric Le Goater

A recent change in glibc 2.42.9000 [1] changes the return type of
strstr() and other string functions to be 'const char *' when the
input is a 'const char *'. This breaks the build in :

../tests/vhost-user-bridge.c: In function ‘vubr_parse_host_port’:
../tests/vhost-user-bridge.c:749:15: error: initialization discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
  749 |     char *p = strchr(buf, ':');
      |               ^~~~~~

Fix this by using the glib g_strsplit() routine instead of strdup().

[1] https://sourceware.org/git/?p=glibc.git;a=commit;h=cd748a63ab1a7ae846175c532a3daab341c62690

Suggested-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Cédric Le Goater <clg@redhat.com>
---
 tests/vhost-user-bridge.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/tests/vhost-user-bridge.c b/tests/vhost-user-bridge.c
index a5c711b1de8e9c164dd1614f4329b8e3c05d0402..ce4c3426d3938a0b54195f3e95bb1f1c3c4ae823 100644
--- a/tests/vhost-user-bridge.c
+++ b/tests/vhost-user-bridge.c
@@ -746,14 +746,12 @@ vubr_run(VubrDev *dev)
 static int
 vubr_parse_host_port(const char **host, const char **port, const char *buf)
 {
-    char *p = strchr(buf, ':');
-
-    if (!p) {
+    g_auto(GStrv) tokens = g_strsplit(buf, ":", 2);
+    if (!tokens[0] || !tokens[1]) {
         return -1;
     }
-    *p = '\0';
-    *host = strdup(buf);
-    *port = strdup(p + 1);
+    *host = g_steal_pointer(&tokens[0]);
+    *port = g_steal_pointer(&tokens[1]);
     return 0;
 }
 
-- 
2.52.0



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH 2/2] tests/vhost-user-bridge.c: Fix const qualifier build errors with recent glibc
  2025-12-10 18:13 ` [PATCH 2/2] tests/vhost-user-bridge.c: " Cédric Le Goater
@ 2025-12-10 18:14   ` Cédric Le Goater
  2025-12-11  7:55     ` Cédric Le Goater
  0 siblings, 1 reply; 7+ messages in thread
From: Cédric Le Goater @ 2025-12-10 18:14 UTC (permalink / raw)
  To: qemu-devel
  Cc: Philippe Mathieu-Daudé, Peter Maydell, Paolo Bonzini,
	Richard Henderson

On 12/10/25 19:13, Cédric Le Goater wrote:
> A recent change in glibc 2.42.9000 [1] changes the return type of
> strstr() and other string functions to be 'const char *' when the
> input is a 'const char *'. This breaks the build in :
> 
> ../tests/vhost-user-bridge.c: In function ‘vubr_parse_host_port’:
> ../tests/vhost-user-bridge.c:749:15: error: initialization discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
>    749 |     char *p = strchr(buf, ':');
>        |               ^~~~~~
> 
> Fix this by using the glib g_strsplit() routine instead of strdup().
> 
> [1] https://sourceware.org/git/?p=glibc.git;a=commit;h=cd748a63ab1a7ae846175c532a3daab341c62690
> 
> Suggested-by: Peter Maydell <peter.maydell@linaro.org>
> Signed-off-by: Cédric Le Goater <clg@redhat.com>
> ---
>   tests/vhost-user-bridge.c | 10 ++++------
>   1 file changed, 4 insertions(+), 6 deletions(-)

I should have added 'Not Tested' !

Thanks,

C.

> diff --git a/tests/vhost-user-bridge.c b/tests/vhost-user-bridge.c
> index a5c711b1de8e9c164dd1614f4329b8e3c05d0402..ce4c3426d3938a0b54195f3e95bb1f1c3c4ae823 100644
> --- a/tests/vhost-user-bridge.c
> +++ b/tests/vhost-user-bridge.c
> @@ -746,14 +746,12 @@ vubr_run(VubrDev *dev)
>   static int
>   vubr_parse_host_port(const char **host, const char **port, const char *buf)
>   {
> -    char *p = strchr(buf, ':');
> -
> -    if (!p) {
> +    g_auto(GStrv) tokens = g_strsplit(buf, ":", 2);
> +    if (!tokens[0] || !tokens[1]) {
>           return -1;
>       }
> -    *p = '\0';
> -    *host = strdup(buf);
> -    *port = strdup(p + 1);
> +    *host = g_steal_pointer(&tokens[0]);
> +    *port = g_steal_pointer(&tokens[1]);
>       return 0;
>   }
>   



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/2] i386: Fix const qualifier build errors with recent glibc
  2025-12-10 18:13 ` [PATCH 1/2] i386: " Cédric Le Goater
@ 2025-12-10 18:39   ` Peter Maydell
  2025-12-11 15:16   ` Philippe Mathieu-Daudé
  1 sibling, 0 replies; 7+ messages in thread
From: Peter Maydell @ 2025-12-10 18:39 UTC (permalink / raw)
  To: Cédric Le Goater
  Cc: qemu-devel, Philippe Mathieu-Daudé, Paolo Bonzini,
	Richard Henderson

On Wed, 10 Dec 2025 at 18:13, Cédric Le Goater <clg@redhat.com> wrote:
>
> A recent change in glibc 2.42.9000 [1] changes the return type of
> strstr() and other string functions to be 'const char *' when the
> input is a 'const char *'. This breaks the build in :
>
>   ../hw/i386/x86-common.c:827:11: error: assignment discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
>   827 |     vmode = strstr(kernel_cmdline, "vga=");
>       |           ^
>
> Fix this by changing the type of the variables that store the result
> of these functions to 'const char *'.
>
> [1] https://sourceware.org/git/?p=glibc.git;a=commit;h=cd748a63ab1a7ae846175c532a3daab341c62690
>
> Signed-off-by: Cédric Le Goater <clg@redhat.com>
> ---
>  hw/i386/x86-common.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/hw/i386/x86-common.c b/hw/i386/x86-common.c
> index c844749900a30c9c9c284c529e93c84c9457b128..f77e2e63046ff56d079363e411a9ee0eca365291 100644
> --- a/hw/i386/x86-common.c
> +++ b/hw/i386/x86-common.c
> @@ -654,7 +654,7 @@ void x86_load_linux(X86MachineState *x86ms,
>      uint8_t header[8192], *setup, *kernel;
>      hwaddr real_addr, prot_addr, cmdline_addr, initrd_addr = 0;
>      FILE *f;
> -    char *vmode;
> +    const char *vmode;
>      MachineState *machine = MACHINE(x86ms);
>      struct setup_data *setup_data;
>      const char *kernel_filename = machine->kernel_filename;
> --

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>

thanks
-- PMM


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 2/2] tests/vhost-user-bridge.c: Fix const qualifier build errors with recent glibc
  2025-12-10 18:14   ` Cédric Le Goater
@ 2025-12-11  7:55     ` Cédric Le Goater
  0 siblings, 0 replies; 7+ messages in thread
From: Cédric Le Goater @ 2025-12-11  7:55 UTC (permalink / raw)
  To: qemu-devel
  Cc: Philippe Mathieu-Daudé, Peter Maydell, Paolo Bonzini,
	Richard Henderson

On 12/10/25 19:14, Cédric Le Goater wrote:
> On 12/10/25 19:13, Cédric Le Goater wrote:
>> A recent change in glibc 2.42.9000 [1] changes the return type of
>> strstr() and other string functions to be 'const char *' when the
>> input is a 'const char *'. This breaks the build in :
>>
>> ../tests/vhost-user-bridge.c: In function ‘vubr_parse_host_port’:
>> ../tests/vhost-user-bridge.c:749:15: error: initialization discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
>>    749 |     char *p = strchr(buf, ':');
>>        |               ^~~~~~
>>
>> Fix this by using the glib g_strsplit() routine instead of strdup().
>>
>> [1] https://sourceware.org/git/?p=glibc.git;a=commit;h=cd748a63ab1a7ae846175c532a3daab341c62690
>>
>> Suggested-by: Peter Maydell <peter.maydell@linaro.org>
>> Signed-off-by: Cédric Le Goater <clg@redhat.com>
>> ---
>>   tests/vhost-user-bridge.c | 10 ++++------
>>   1 file changed, 4 insertions(+), 6 deletions(-)
> 
> I should have added 'Not Tested' !

It seems to be going well:


$ build/tests/vhost-user-bridge -l 127.0.0.1:1234 -r 127.0.0.1:4321
ud socket: /tmp/vubr.sock (server)
local:     127.0.0.1:1234
remote:    127.0.0.1:4321
Waiting for connections on UNIX socket /tmp/vubr.sock ...
Added sock 3 for watching. max_sock: 3
Added sock 4 for watching. max_sock: 4
Waiting for data from udp backend on 127.0.0.1:1234...


C.



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/2] i386: Fix const qualifier build errors with recent glibc
  2025-12-10 18:13 ` [PATCH 1/2] i386: " Cédric Le Goater
  2025-12-10 18:39   ` Peter Maydell
@ 2025-12-11 15:16   ` Philippe Mathieu-Daudé
  1 sibling, 0 replies; 7+ messages in thread
From: Philippe Mathieu-Daudé @ 2025-12-11 15:16 UTC (permalink / raw)
  To: Cédric Le Goater, qemu-devel
  Cc: Peter Maydell, Paolo Bonzini, Richard Henderson

On 10/12/25 19:13, Cédric Le Goater wrote:
> A recent change in glibc 2.42.9000 [1] changes the return type of
> strstr() and other string functions to be 'const char *' when the
> input is a 'const char *'. This breaks the build in :
> 
>    ../hw/i386/x86-common.c:827:11: error: assignment discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
>    827 |     vmode = strstr(kernel_cmdline, "vga=");
>        |           ^
> 
> Fix this by changing the type of the variables that store the result
> of these functions to 'const char *'.
> 
> [1] https://sourceware.org/git/?p=glibc.git;a=commit;h=cd748a63ab1a7ae846175c532a3daab341c62690
> 
> Signed-off-by: Cédric Le Goater <clg@redhat.com>
> ---
>   hw/i386/x86-common.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>



^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2025-12-11 15:16 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-10 18:13 [PATCH 0/2] Fix const qualifier build errors with recent glibc Cédric Le Goater
2025-12-10 18:13 ` [PATCH 1/2] i386: " Cédric Le Goater
2025-12-10 18:39   ` Peter Maydell
2025-12-11 15:16   ` Philippe Mathieu-Daudé
2025-12-10 18:13 ` [PATCH 2/2] tests/vhost-user-bridge.c: " Cédric Le Goater
2025-12-10 18:14   ` Cédric Le Goater
2025-12-11  7:55     ` Cédric Le Goater

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).