On 06/02/2020 00.17, Laurent Vivier wrote: > On 05/02/2020 22:20, Greg Kurz wrote: >> On Wed, 5 Feb 2020 21:41:15 +0100 >> Laurent Vivier <lviv...@redhat.com> wrote: >> >>> When PHB4 bridge has been added, the dependencies to PCIE_PORT has been >>> added to XIVE_SPAPR and indirectly to PSERIES. >>> The build of the PowerNV machine is fine while we also build the PSERIES >>> machine. >>> If we disable the PSERIES machine, the PowerNV build fails because the >>> PCI Express files are not built: >>> >>> /usr/bin/ld: hw/ppc/pnv.o: in function `pnv_chip_power8_pic_print_info': >>> .../hw/ppc/pnv.c:623: undefined reference to `pnv_phb3_msi_pic_print_info' >>> /usr/bin/ld: hw/ppc/pnv.o: in function `pnv_chip_power9_pic_print_info': >>> .../hw/ppc/pnv.c:639: undefined reference to `pnv_phb4_pic_print_info' >>> /usr/bin/ld: ../hw/usb/hcd-ehci-pci.o: in function >>> `usb_ehci_pci_write_config': >>> .../hw/usb/hcd-ehci-pci.c:129: undefined reference to >>> `pci_default_write_config' >>> /usr/bin/ld: ../hw/usb/hcd-ehci-pci.o: in function `usb_ehci_pci_realize': >>> .../hw/usb/hcd-ehci-pci.c:68: undefined reference to `pci_allocate_irq' >>> /usr/bin/ld: .../hw/usb/hcd-ehci-pci.c:72: undefined reference to >>> `pci_register_bar' >>> /usr/bin/ld: ../hw/usb/hcd-ehci-pci.o:(.data.rel+0x50): undefined reference >>> to `vmstate_pci_device' >>> >>> This patch fixes the problem by adding needed dependencies to POWERNV. >>> >>> Fixes: 4f9924c4d4cf ("ppc/pnv: Add models for POWER9 PHB4 PCIe Host bridge") >>> Signed-off-by: Laurent Vivier <lviv...@redhat.com> >>> --- >>> hw/ppc/Kconfig | 6 ++++-- >>> 1 file changed, 4 insertions(+), 2 deletions(-) >>> >>> diff --git a/hw/ppc/Kconfig b/hw/ppc/Kconfig >>> index 354828bf132f..3e11d0b53e11 100644 >>> --- a/hw/ppc/Kconfig >>> +++ b/hw/ppc/Kconfig >>> @@ -29,6 +29,10 @@ config POWERNV >>> select XICS >>> select XIVE >>> select FDT_PPC >>> + select PCI >> >> Is it needed since PCI_EXPRESS already selects PCI in hw/pci/Kconfig ? >> > > You are right, and PCIE_PORT is not needed too, because > PCIE_PORT is default to 'y' if PCI_DEVICES.
If it's a hard requirement for linking, then it is needed here. Try to compile after running "configure --without-default-devices" to see whether you've got all dependencies really right. Thomas