Thomas Huth <th...@redhat.com> writes:

> 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?

I think it's okay to rely on indirect inclusion.


Reply via email to