Re: Build regressions/improvements in v5.7-rc1
From: Krzysztof Kozlowski
Date: Tue Apr 14 2020 - 07:19:16 EST
On Tue, Apr 14, 2020 at 01:06:27PM +0200, Krzysztof Kozlowski wrote:
> On Tue, Apr 14, 2020 at 08:23:32PM +1000, Michael Ellerman wrote:
> >> + /kisskb/src/arch/powerpc/include/asm/nohash/64/pgtable-4k.h: error: expected ')' before '!=' token: => 58:40
> > >> + /kisskb/src/arch/powerpc/include/asm/nohash/64/pgtable-4k.h: error: expected ')' before '==' token: => 57:37
> > >> + /kisskb/src/arch/powerpc/include/asm/nohash/64/pgtable-4k.h: error: expected identifier or '(' before '!' token: => 56:25
> > >> + /kisskb/src/arch/powerpc/include/asm/nohash/64/pgtable.h: error: expected ')' before '!=' token: => 163:40
> > >> + /kisskb/src/arch/powerpc/include/asm/nohash/64/pgtable.h: error: expected ')' before '==' token: => 333:50
> > >> + /kisskb/src/arch/powerpc/include/asm/nohash/64/pgtable.h: error: expected ')' before '^' token: => 333:36
> > >> + /kisskb/src/arch/powerpc/include/asm/nohash/64/pgtable.h: error: expected identifier or '(' before '!' token: => 146:27, 144:24, 160:25, 161:24, 143:25
> > >> + /kisskb/src/arch/powerpc/include/asm/nohash/64/pgtable.h: error: expected identifier or '(' before 'struct': => 77:21
> > >> + /kisskb/src/arch/powerpc/include/asm/nohash/pgtable.h: error: redefinition of 'pgd_huge': => 291:19
> > >> + /kisskb/src/arch/powerpc/include/asm/nohash/pte-book3e.h: error: redefinition of 'pte_mkprivileged': => 108:26
> > >> + /kisskb/src/arch/powerpc/include/asm/nohash/pte-book3e.h: error: redefinition of 'pte_mkuser': => 115:20
> > >> + /kisskb/src/arch/powerpc/kvm/book3s_64_vio_hv.c: error: 'struct kvm_arch' has no member named 'spapr_tce_tables': => 68:46, 68:2
> > >
> > > ppc64_book3e_allmodconfig
> >
> > Caused by:
> >
> > e93a1695d7fb ("iommu: Enable compile testing for some of drivers")
> >
> > Which did:
> >
> > config SPAPR_TCE_IOMMU
> > bool "sPAPR TCE IOMMU Support"
> > - depends on PPC_POWERNV || PPC_PSERIES
> > + depends on PPC_POWERNV || PPC_PSERIES || (PPC && COMPILE_TEST)
> >
> >
> > Which is just ... not right, the dependencies on the correct platform
> > are important, otherwise the build breaks.
>
> The SPAPR_TCE_IOMMU should compile fine. The actual trouble here is
> that KVM_BOOK3S_64 selects SPAPR_TCE_IOMMU which is a user-visible
> symbol. This is generally discouraged because of exactly this error -
> select ignores any dependencies.
>
> I can revert the COMPILE_TEST for SPAPR_TCE_IOMMU or change
> select->depends in KVM_BOOK3S_64. I think the latter is the proper
> change here.
Eh, not really, it looks more complex because there are more
dependencies (the book3s_64_vio_hv is pulled by KVM Makefile if
SPAPR_TCE_IOMMU is set).
I guess the revert of this part makes most sense.
Best regards,
Krzysztof