On 4/18/19 8:00 PM, Thomas Huth wrote: > Some of our machines (like the ARM cubieboard) use CONFIG_AHCI for an AHCI > sysbus device, but do not use CONFIG_PCI since they do not feature a PCI > bus. With CONFIG_AHCI but without CONFIG_PCI, currently linking fails: > > ../hw/ide/ich.o: In function `pci_ich9_ahci_realize': > hw/ide/ich.c:124: undefined reference to `pci_allocate_irq' > hw/ide/ich.c:126: undefined reference to `pci_register_bar' > hw/ide/ich.c:128: undefined reference to `pci_register_bar' > hw/ide/ich.c:131: undefined reference to `pci_add_capability' > hw/ide/ich.c:147: undefined reference to `msi_init' > ../hw/ide/ich.o: In function `pci_ich9_uninit': > hw/ide/ich.c:158: undefined reference to `msi_uninit' > ../hw/ide/ich.o:(.data.rel+0x50): undefined reference to > `vmstate_pci_device' > > We must only compile ich.c if CONFIG_PCI is available, too, so introduce a > new config switch for this device. > > Signed-off-by: Thomas Huth <th...@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <phi...@redhat.com> > --- > hw/ide/Kconfig | 6 +++++- > hw/ide/Makefile.objs | 2 +- > 2 files changed, 6 insertions(+), 2 deletions(-) > > diff --git a/hw/ide/Kconfig b/hw/ide/Kconfig > index ab47b6a7a3..5d9106b1ac 100644 > --- a/hw/ide/Kconfig > +++ b/hw/ide/Kconfig > @@ -43,10 +43,14 @@ config MICRODRIVE > select IDE_QDEV > > config AHCI > + bool > + select IDE_QDEV > + > +config AHCI_ICH9 > bool > default y if PCI_DEVICES > depends on PCI > - select IDE_QDEV > + select AHCI > > config IDE_SII3112 > bool > diff --git a/hw/ide/Makefile.objs b/hw/ide/Makefile.objs > index a142add90e..faf04e0209 100644 > --- a/hw/ide/Makefile.objs > +++ b/hw/ide/Makefile.objs > @@ -9,6 +9,6 @@ common-obj-$(CONFIG_IDE_MMIO) += mmio.o > common-obj-$(CONFIG_IDE_VIA) += via.o > common-obj-$(CONFIG_MICRODRIVE) += microdrive.o > common-obj-$(CONFIG_AHCI) += ahci.o > -common-obj-$(CONFIG_AHCI) += ich.o > +common-obj-$(CONFIG_AHCI_ICH9) += ich.o > common-obj-$(CONFIG_ALLWINNER_A10) += ahci-allwinner.o > common-obj-$(CONFIG_IDE_SII3112) += sii3112.o >