Hi Paolo, Can you specify how to reproduce the issue ? We need more details about environment.
In my case, everything seems to work fine for the newest version of glib (2.68). Thank you, Aleksandar > qemu/osdep.h is quite special in that, despite being part of QEMU sources, > it is included by C++ source files as well. > > disas/nanomips.cpp is doing so within an 'extern "C"' block, which breaks > with latest glib due to the inclusion of templates in glib.h. > > These patches implement Daniel Berrangé's idea of pushing the 'extern "C"' > block within glib.h and including system headers (including glib.h, > and in fact QEMU's own glib-compat.h too) *outside* the block. > > (CI has not finished running yet, but it seems encouraging). > > Paolo > > Paolo Bonzini (2): > osdep: include glib-compat.h before other QEMU headers > osdep: protect qemu/osdep.h with extern "C" > > disas/nanomips.cpp | 2 +- > include/qemu/compiler.h | 6 ++++++ > include/qemu/osdep.h | 13 +++++++++++-- > 3 files changed, 18 insertions(+), 3 deletions(-) > > -- > 2.30.1 ________________________________ From: Philippe Mathieu-Daudé <[email protected]> on behalf of Philippe Mathieu-Daudé <[email protected]> Sent: Tuesday, April 13, 2021 5:58 PM To: Paolo Bonzini <[email protected]>; [email protected] <[email protected]> Cc: [email protected] <[email protected]>; [email protected] <[email protected]>; Aleksandar Rikalo <[email protected]>; [email protected] <[email protected]>; Petar Jovanovic <[email protected]>; Filip Vidojevic <[email protected]> Subject: Re: [PATCH 0/2] osdep: allow including qemu/osdep.h outside extern "C" Cc'ing MediaTek reviewers. On 4/13/21 1:37 PM, Paolo Bonzini wrote: > qemu/osdep.h is quite special in that, despite being part of QEMU sources, > it is included by C++ source files as well. > > disas/nanomips.cpp is doing so within an 'extern "C"' block, which breaks > with latest glib due to the inclusion of templates in glib.h. > > These patches implement Daniel Berrangé's idea of pushing the 'extern "C"' > block within glib.h and including system headers (including glib.h, > and in fact QEMU's own glib-compat.h too) *outside* the block. > > (CI has not finished running yet, but it seems encouraging). > > Paolo > > Paolo Bonzini (2): > osdep: include glib-compat.h before other QEMU headers > osdep: protect qemu/osdep.h with extern "C" > > disas/nanomips.cpp | 2 +- > include/qemu/compiler.h | 6 ++++++ > include/qemu/osdep.h | 13 +++++++++++-- > 3 files changed, 18 insertions(+), 3 deletions(-) >
