On 18/11/2020 15.30, Peter Maydell wrote: > On Wed, 18 Nov 2020 at 14:24, Markus Armbruster <arm...@redhat.com> wrote: >> >> Philippe Mathieu-Daudé <phi...@redhat.com> writes: >> >>> On 11/18/20 10:03 AM, Thomas Huth wrote: >>>> Both headers, sysbus.h and module.h, are not required to compile this file. >> >> module.h is: it defines type_init(). > >>>> #include "qemu/timer.h" >>>> #include "hw/watchdog/wdt_diag288.h" >>>> #include "migration/vmstate.h" >>>> #include "qemu/log.h" >>>> -#include "qemu/module.h" >>> >>> Cc'ing Markus because of: > >>> Include qemu/module.h where needed, drop it from qemu-common.h >> >> If it still compiles and links, it must get it via some other header. > > Yes: wdt_diag288.c -> include/hw/watchdog/wdt_diag288.h -> > include/qom/object.h -> include/qemu/module.h
So what's now our expectation here? Should every file that uses type_init() also include module.h ? That's IMHO not very intuitive... Or are we fine that type_init() is provided by qom/object.h which needs to be pulled in by every device sooner or later anyway? Thomas