diff mbox series

[v3,09/29] Include migration/qemu-file-types.h a lot less

Message ID 20190809064645.22656-10-armbru@redhat.com (mailing list archive)
State New, archived
Headers show
Series Tame a few "touch this, recompile the world" headers | expand

Commit Message

Markus Armbruster Aug. 9, 2019, 6:46 a.m. UTC
In my "build everything" tree, changing migration/qemu-file-types.h
triggers a recompile of some 2600 out of 6600 objects (not counting
tests and objects that don't depend on qemu/osdep.h).

The culprit is again hw/hw.h, which supposedly includes it for
convenience.

Include migration/qemu-file-types.h only where it's needed.  Touching
it now recompiles less than 200 objects.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 hw/acpi/piix4.c             | 1 +
 hw/block/virtio-blk.c       | 1 +
 hw/char/virtio-serial-bus.c | 1 +
 hw/display/virtio-gpu.c     | 1 +
 hw/intc/apic_common.c       | 1 +
 hw/intc/s390_flic.c         | 1 +
 hw/nvram/eeprom93xx.c       | 1 +
 hw/nvram/fw_cfg.c           | 1 +
 hw/pci-host/piix.c          | 1 +
 hw/pci/msix.c               | 1 +
 hw/pci/pci.c                | 1 +
 hw/pci/shpc.c               | 1 +
 hw/ppc/spapr.c              | 1 +
 hw/s390x/s390-skeys.c       | 1 +
 hw/s390x/tod.c              | 1 +
 hw/s390x/virtio-ccw.c       | 1 +
 hw/scsi/mptsas.c            | 1 +
 hw/scsi/scsi-bus.c          | 1 +
 hw/scsi/scsi-disk.c         | 1 +
 hw/scsi/scsi-generic.c      | 1 +
 hw/scsi/virtio-scsi.c       | 1 +
 hw/timer/i8254_common.c     | 1 +
 hw/timer/twl92230.c         | 1 +
 hw/usb/redirect.c           | 1 +
 hw/virtio/vhost.c           | 1 +
 hw/virtio/virtio-mmio.c     | 1 +
 hw/virtio/virtio-pci.c      | 1 +
 hw/virtio/virtio.c          | 1 +
 include/hw/hw.h             | 1 -
 include/migration/cpu.h     | 1 +
 target/ppc/kvm.c            | 1 +
 31 files changed, 30 insertions(+), 1 deletion(-)

Comments

Philippe Mathieu-Daudé Aug. 9, 2019, 9:58 a.m. UTC | #1
On 8/9/19 8:46 AM, Markus Armbruster wrote:
> In my "build everything" tree, changing migration/qemu-file-types.h
> triggers a recompile of some 2600 out of 6600 objects (not counting
> tests and objects that don't depend on qemu/osdep.h).
> 
> The culprit is again hw/hw.h, which supposedly includes it for
> convenience.
> 
> Include migration/qemu-file-types.h only where it's needed.  Touching
> it now recompiles less than 200 objects.
> 
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
[...]
> diff --git a/hw/intc/s390_flic.c b/hw/intc/s390_flic.c
> index d0be755c82..83c72ee18d 100644
> --- a/hw/intc/s390_flic.c
> +++ b/hw/intc/s390_flic.c
> @@ -22,6 +22,7 @@
>  #include "hw/qdev.h"
>  #include "qapi/error.h"
>  #include "hw/s390x/s390-virtio-ccw.h"
> +#include "migration/qemu-file-types.h"
>  
>  S390FLICStateClass *s390_get_flic_class(S390FLICState *fs)
>  {

I am not sure this one requires it.
Did you edit the incorrect file? I still get:

$ make docker-run-test-build@debian-s390x-cross
[...]
hw/intc/s390_flic_kvm.c: In function 'kvm_flic_save':
hw/intc/s390_flic_kvm.c:395:9: error: implicit declaration of function
'qemu_put_be64' [-Werror=implicit-function-declaration]
         qemu_put_be64(f, FLIC_FAILED);
         ^~~~~~~~~~~~~
Markus Armbruster Aug. 9, 2019, 11:48 a.m. UTC | #2
Philippe Mathieu-Daudé <philmd@redhat.com> writes:

> On 8/9/19 8:46 AM, Markus Armbruster wrote:
>> In my "build everything" tree, changing migration/qemu-file-types.h
>> triggers a recompile of some 2600 out of 6600 objects (not counting
>> tests and objects that don't depend on qemu/osdep.h).
>> 
>> The culprit is again hw/hw.h, which supposedly includes it for
>> convenience.
>> 
>> Include migration/qemu-file-types.h only where it's needed.  Touching
>> it now recompiles less than 200 objects.
>> 
>> Signed-off-by: Markus Armbruster <armbru@redhat.com>
>> ---
> [...]
>> diff --git a/hw/intc/s390_flic.c b/hw/intc/s390_flic.c
>> index d0be755c82..83c72ee18d 100644
>> --- a/hw/intc/s390_flic.c
>> +++ b/hw/intc/s390_flic.c
>> @@ -22,6 +22,7 @@
>>  #include "hw/qdev.h"
>>  #include "qapi/error.h"
>>  #include "hw/s390x/s390-virtio-ccw.h"
>> +#include "migration/qemu-file-types.h"
>>  
>>  S390FLICStateClass *s390_get_flic_class(S390FLICState *fs)
>>  {
>
> I am not sure this one requires it.
> Did you edit the incorrect file? I still get:
>
> $ make docker-run-test-build@debian-s390x-cross
> [...]
> hw/intc/s390_flic_kvm.c: In function 'kvm_flic_save':
> hw/intc/s390_flic_kvm.c:395:9: error: implicit declaration of function
> 'qemu_put_be64' [-Werror=implicit-function-declaration]
>          qemu_put_be64(f, FLIC_FAILED);
>          ^~~~~~~~~~~~~

You're right.  Will fix.
diff mbox series

Patch

diff --git a/hw/acpi/piix4.c b/hw/acpi/piix4.c
index a59e58d937..0d8c821f37 100644
--- a/hw/acpi/piix4.c
+++ b/hw/acpi/piix4.c
@@ -40,6 +40,7 @@ 
 #include "hw/acpi/memory_hotplug.h"
 #include "hw/acpi/acpi_dev_interface.h"
 #include "hw/xen/xen.h"
+#include "migration/qemu-file-types.h"
 #include "qom/cpu.h"
 #include "trace.h"
 
diff --git a/hw/block/virtio-blk.c b/hw/block/virtio-blk.c
index cbb3729158..1f40834d27 100644
--- a/hw/block/virtio-blk.c
+++ b/hw/block/virtio-blk.c
@@ -26,6 +26,7 @@ 
 # include <scsi/sg.h>
 #endif
 #include "hw/virtio/virtio-bus.h"
+#include "migration/qemu-file-types.h"
 #include "hw/virtio/virtio-access.h"
 
 /* Config size before the discard support (hide associated config fields) */
diff --git a/hw/char/virtio-serial-bus.c b/hw/char/virtio-serial-bus.c
index f7a54f261b..b868e54d72 100644
--- a/hw/char/virtio-serial-bus.c
+++ b/hw/char/virtio-serial-bus.c
@@ -22,6 +22,7 @@ 
 #include "qapi/error.h"
 #include "qemu/iov.h"
 #include "qemu/module.h"
+#include "migration/qemu-file-types.h"
 #include "monitor/monitor.h"
 #include "qemu/error-report.h"
 #include "qemu/queue.h"
diff --git a/hw/display/virtio-gpu.c b/hw/display/virtio-gpu.c
index 25d9e327fc..ed92071963 100644
--- a/hw/display/virtio-gpu.c
+++ b/hw/display/virtio-gpu.c
@@ -18,6 +18,7 @@ 
 #include "trace.h"
 #include "sysemu/dma.h"
 #include "hw/virtio/virtio.h"
+#include "migration/qemu-file-types.h"
 #include "hw/virtio/virtio-gpu.h"
 #include "hw/virtio/virtio-gpu-bswap.h"
 #include "hw/virtio/virtio-gpu-pixman.h"
diff --git a/hw/intc/apic_common.c b/hw/intc/apic_common.c
index e764a2bb03..7045761281 100644
--- a/hw/intc/apic_common.c
+++ b/hw/intc/apic_common.c
@@ -31,6 +31,7 @@ 
 #include "sysemu/kvm.h"
 #include "hw/qdev.h"
 #include "hw/sysbus.h"
+#include "migration/qemu-file-types.h"
 
 static int apic_irq_delivered;
 bool apic_report_tpr_access;
diff --git a/hw/intc/s390_flic.c b/hw/intc/s390_flic.c
index d0be755c82..83c72ee18d 100644
--- a/hw/intc/s390_flic.c
+++ b/hw/intc/s390_flic.c
@@ -22,6 +22,7 @@ 
 #include "hw/qdev.h"
 #include "qapi/error.h"
 #include "hw/s390x/s390-virtio-ccw.h"
+#include "migration/qemu-file-types.h"
 
 S390FLICStateClass *s390_get_flic_class(S390FLICState *fs)
 {
diff --git a/hw/nvram/eeprom93xx.c b/hw/nvram/eeprom93xx.c
index 2db3d7cce6..5fc23df1d4 100644
--- a/hw/nvram/eeprom93xx.c
+++ b/hw/nvram/eeprom93xx.c
@@ -38,6 +38,7 @@ 
 #include "qemu/osdep.h"
 #include "hw/hw.h"
 #include "hw/nvram/eeprom93xx.h"
+#include "migration/qemu-file-types.h"
 
 /* Debug EEPROM emulation. */
 //~ #define DEBUG_EEPROM
diff --git a/hw/nvram/fw_cfg.c b/hw/nvram/fw_cfg.c
index 3032f1c65f..8db0297d59 100644
--- a/hw/nvram/fw_cfg.c
+++ b/hw/nvram/fw_cfg.c
@@ -31,6 +31,7 @@ 
 #include "hw/boards.h"
 #include "hw/nvram/fw_cfg.h"
 #include "hw/sysbus.h"
+#include "migration/qemu-file-types.h"
 #include "trace.h"
 #include "qemu/error-report.h"
 #include "qemu/option.h"
diff --git a/hw/pci-host/piix.c b/hw/pci-host/piix.c
index f3671d28b7..e5955457ab 100644
--- a/hw/pci-host/piix.c
+++ b/hw/pci-host/piix.c
@@ -32,6 +32,7 @@ 
 #include "qapi/error.h"
 #include "qemu/range.h"
 #include "hw/xen/xen.h"
+#include "migration/qemu-file-types.h"
 #include "hw/pci-host/pam.h"
 #include "sysemu/reset.h"
 #include "sysemu/sysemu.h"
diff --git a/hw/pci/msix.c b/hw/pci/msix.c
index d39dcf32e8..ebe804b473 100644
--- a/hw/pci/msix.c
+++ b/hw/pci/msix.c
@@ -20,6 +20,7 @@ 
 #include "hw/pci/msix.h"
 #include "hw/pci/pci.h"
 #include "hw/xen/xen.h"
+#include "migration/qemu-file-types.h"
 #include "qemu/range.h"
 #include "qapi/error.h"
 #include "trace.h"
diff --git a/hw/pci/pci.c b/hw/pci/pci.c
index 8076a80ab3..43a3cac138 100644
--- a/hw/pci/pci.c
+++ b/hw/pci/pci.c
@@ -29,6 +29,7 @@ 
 #include "hw/pci/pci_bridge.h"
 #include "hw/pci/pci_bus.h"
 #include "hw/pci/pci_host.h"
+#include "migration/qemu-file-types.h"
 #include "monitor/monitor.h"
 #include "net/net.h"
 #include "sysemu/sysemu.h"
diff --git a/hw/pci/shpc.c b/hw/pci/shpc.c
index 5a10c6e9a5..7f0aa28e44 100644
--- a/hw/pci/shpc.c
+++ b/hw/pci/shpc.c
@@ -4,6 +4,7 @@ 
 #include "qemu/range.h"
 #include "qemu/error-report.h"
 #include "hw/pci/shpc.h"
+#include "migration/qemu-file-types.h"
 #include "hw/pci/pci.h"
 #include "hw/pci/pci_bus.h"
 #include "hw/pci/msi.h"
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 5cade1a374..76e815ceee 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -42,6 +42,7 @@ 
 #include "sysemu/hw_accel.h"
 #include "kvm_ppc.h"
 #include "migration/misc.h"
+#include "migration/qemu-file-types.h"
 #include "migration/global_state.h"
 #include "migration/register.h"
 #include "mmu-hash64.h"
diff --git a/hw/s390x/s390-skeys.c b/hw/s390x/s390-skeys.c
index e5bd92c0c7..d4807f7777 100644
--- a/hw/s390x/s390-skeys.c
+++ b/hw/s390x/s390-skeys.c
@@ -18,6 +18,7 @@ 
 #include "qapi/qmp/qdict.h"
 #include "qemu/error-report.h"
 #include "sysemu/kvm.h"
+#include "migration/qemu-file-types.h"
 #include "migration/register.h"
 
 #define S390_SKEYS_BUFFER_SIZE (128 * KiB)  /* Room for 128k storage keys */
diff --git a/hw/s390x/tod.c b/hw/s390x/tod.c
index a9fca8eb0b..1bf0875afa 100644
--- a/hw/s390x/tod.c
+++ b/hw/s390x/tod.c
@@ -14,6 +14,7 @@ 
 #include "qemu/error-report.h"
 #include "qemu/module.h"
 #include "sysemu/kvm.h"
+#include "migration/qemu-file-types.h"
 #include "migration/register.h"
 
 void s390_init_tod(void)
diff --git a/hw/s390x/virtio-ccw.c b/hw/s390x/virtio-ccw.c
index 43d3a1b029..fa537bfba3 100644
--- a/hw/s390x/virtio-ccw.c
+++ b/hw/s390x/virtio-ccw.c
@@ -17,6 +17,7 @@ 
 #include "sysemu/kvm.h"
 #include "net/net.h"
 #include "hw/virtio/virtio.h"
+#include "migration/qemu-file-types.h"
 #include "hw/virtio/virtio-net.h"
 #include "hw/sysbus.h"
 #include "qemu/bitops.h"
diff --git a/hw/scsi/mptsas.c b/hw/scsi/mptsas.c
index 3f94d5ab55..6d2c15a2bc 100644
--- a/hw/scsi/mptsas.c
+++ b/hw/scsi/mptsas.c
@@ -34,6 +34,7 @@ 
 #include "trace.h"
 #include "qapi/error.h"
 #include "mptsas.h"
+#include "migration/qemu-file-types.h"
 #include "mpi.h"
 
 #define NAA_LOCALLY_ASSIGNED_ID 0x3ULL
diff --git a/hw/scsi/scsi-bus.c b/hw/scsi/scsi-bus.c
index fdc3a0e4e0..81fe7c3301 100644
--- a/hw/scsi/scsi-bus.c
+++ b/hw/scsi/scsi-bus.c
@@ -5,6 +5,7 @@ 
 #include "qemu/module.h"
 #include "qemu/option.h"
 #include "hw/scsi/scsi.h"
+#include "migration/qemu-file-types.h"
 #include "scsi/constants.h"
 #include "hw/qdev.h"
 #include "sysemu/block-backend.h"
diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c
index af3e622dc5..558fa11511 100644
--- a/hw/scsi/scsi-disk.c
+++ b/hw/scsi/scsi-disk.c
@@ -25,6 +25,7 @@ 
 #include "qemu/error-report.h"
 #include "qemu/module.h"
 #include "hw/scsi/scsi.h"
+#include "migration/qemu-file-types.h"
 #include "hw/scsi/emulation.h"
 #include "scsi/constants.h"
 #include "sysemu/sysemu.h"
diff --git a/hw/scsi/scsi-generic.c b/hw/scsi/scsi-generic.c
index c11a0c9a84..44430b6ea6 100644
--- a/hw/scsi/scsi-generic.c
+++ b/hw/scsi/scsi-generic.c
@@ -17,6 +17,7 @@ 
 #include "qemu/error-report.h"
 #include "qemu/module.h"
 #include "hw/scsi/scsi.h"
+#include "migration/qemu-file-types.h"
 #include "hw/scsi/emulation.h"
 #include "sysemu/block-backend.h"
 #include "trace.h"
diff --git a/hw/scsi/virtio-scsi.c b/hw/scsi/virtio-scsi.c
index 8b9e5e2b49..a6d61aacdb 100644
--- a/hw/scsi/virtio-scsi.c
+++ b/hw/scsi/virtio-scsi.c
@@ -17,6 +17,7 @@ 
 #include "qapi/error.h"
 #include "standard-headers/linux/virtio_ids.h"
 #include "hw/virtio/virtio-scsi.h"
+#include "migration/qemu-file-types.h"
 #include "qemu/error-report.h"
 #include "qemu/iov.h"
 #include "qemu/module.h"
diff --git a/hw/timer/i8254_common.c b/hw/timer/i8254_common.c
index 76ca6ec444..3e980f2dee 100644
--- a/hw/timer/i8254_common.c
+++ b/hw/timer/i8254_common.c
@@ -30,6 +30,7 @@ 
 #include "qemu/timer.h"
 #include "hw/timer/i8254.h"
 #include "hw/timer/i8254_internal.h"
+#include "migration/qemu-file-types.h"
 
 /* val must be 0 or 1 */
 void pit_set_gate(ISADevice *dev, int channel, int val)
diff --git a/hw/timer/twl92230.c b/hw/timer/twl92230.c
index 0ef4fc1fc1..91ae7bf203 100644
--- a/hw/timer/twl92230.c
+++ b/hw/timer/twl92230.c
@@ -24,6 +24,7 @@ 
 #include "hw/hw.h"
 #include "qemu/timer.h"
 #include "hw/i2c/i2c.h"
+#include "migration/qemu-file-types.h"
 #include "sysemu/sysemu.h"
 #include "ui/console.h"
 #include "qemu/bcd.h"
diff --git a/hw/usb/redirect.c b/hw/usb/redirect.c
index 998fc6e4b0..846e60f3bb 100644
--- a/hw/usb/redirect.c
+++ b/hw/usb/redirect.c
@@ -41,6 +41,7 @@ 
 #include <usbredirfilter.h>
 
 #include "hw/usb.h"
+#include "migration/qemu-file-types.h"
 
 /* ERROR is defined below. Remove any previous definition. */
 #undef ERROR
diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c
index bc899fc60e..ba1006ad96 100644
--- a/hw/virtio/vhost.c
+++ b/hw/virtio/vhost.c
@@ -26,6 +26,7 @@ 
 #include "hw/virtio/virtio-bus.h"
 #include "hw/virtio/virtio-access.h"
 #include "migration/blocker.h"
+#include "migration/qemu-file-types.h"
 #include "sysemu/dma.h"
 #include "trace.h"
 
diff --git a/hw/virtio/virtio-mmio.c b/hw/virtio/virtio-mmio.c
index 97b7f35496..d4c0997074 100644
--- a/hw/virtio/virtio-mmio.c
+++ b/hw/virtio/virtio-mmio.c
@@ -23,6 +23,7 @@ 
 #include "standard-headers/linux/virtio_mmio.h"
 #include "hw/sysbus.h"
 #include "hw/virtio/virtio.h"
+#include "migration/qemu-file-types.h"
 #include "qemu/host-utils.h"
 #include "qemu/module.h"
 #include "sysemu/kvm.h"
diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
index f6d2223e78..1117f2347b 100644
--- a/hw/virtio/virtio-pci.c
+++ b/hw/virtio/virtio-pci.c
@@ -19,6 +19,7 @@ 
 
 #include "standard-headers/linux/virtio_pci.h"
 #include "hw/virtio/virtio.h"
+#include "migration/qemu-file-types.h"
 #include "hw/pci/pci.h"
 #include "hw/pci/pci_bus.h"
 #include "qapi/error.h"
diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
index a94ea18a9c..79c7a910cc 100644
--- a/hw/virtio/virtio.c
+++ b/hw/virtio/virtio.c
@@ -19,6 +19,7 @@ 
 #include "qemu/error-report.h"
 #include "qemu/module.h"
 #include "hw/virtio/virtio.h"
+#include "migration/qemu-file-types.h"
 #include "qemu/atomic.h"
 #include "hw/virtio/virtio-bus.h"
 #include "hw/virtio/virtio-access.h"
diff --git a/include/hw/hw.h b/include/hw/hw.h
index a4fb2390e8..b399627cbe 100644
--- a/include/hw/hw.h
+++ b/include/hw/hw.h
@@ -11,7 +11,6 @@ 
 #include "exec/memory.h"
 #include "hw/irq.h"
 #include "migration/vmstate.h"
-#include "migration/qemu-file-types.h"
 
 void QEMU_NORETURN hw_error(const char *fmt, ...) GCC_FMT_ATTR(1, 2);
 
diff --git a/include/migration/cpu.h b/include/migration/cpu.h
index da1618d620..2a22470d0d 100644
--- a/include/migration/cpu.h
+++ b/include/migration/cpu.h
@@ -4,6 +4,7 @@ 
 #define MIGRATION_CPU_H
 
 #include "exec/cpu-defs.h"
+#include "migration/qemu-file-types.h"
 
 #if TARGET_LONG_BITS == 64
 #define qemu_put_betl qemu_put_be64
diff --git a/target/ppc/kvm.c b/target/ppc/kvm.c
index 8a06d3171e..4bd95be9cd 100644
--- a/target/ppc/kvm.c
+++ b/target/ppc/kvm.c
@@ -38,6 +38,7 @@ 
 #include "hw/ppc/spapr.h"
 #include "hw/ppc/spapr_cpu_core.h"
 #include "hw/ppc/ppc.h"
+#include "migration/qemu-file-types.h"
 #include "sysemu/watchdog.h"
 #include "trace.h"
 #include "exec/gdbstub.h"