linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] powerpc: Fix build failure for PPC_32
@ 2014-08-18 19:01 Pranith Kumar
  2014-08-18 19:28 ` Geert Uytterhoeven
  0 siblings, 1 reply; 5+ messages in thread
From: Pranith Kumar @ 2014-08-18 19:01 UTC (permalink / raw)
  To: Benjamin Herrenschmidt, Paul Mackerras, Michael Ellerman,
	Mahesh Salgaonkar, Gerhard Sittig, Rob Herring,
	open list:LINUX FOR POWERPC...,
	open list
  Cc: Andrew Morton

Fix ppc 32 build failure as reported here:

http://kisskb.ellerman.id.au/kisskb/buildresult/11663513/

The error is that pci_32.o was not being built for PPC_32. Fix error by adding
it in the Makefile. Tested using the ppc cross compiler.

Signed-off-by: Pranith Kumar <bobby.prani@gmail.com>
Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
CC: Andrew Morton <akpm@linux-foundation.org>
---
 arch/powerpc/kernel/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/powerpc/kernel/Makefile b/arch/powerpc/kernel/Makefile
index 670c312..3206ba1 100644
--- a/arch/powerpc/kernel/Makefile
+++ b/arch/powerpc/kernel/Makefile
@@ -89,7 +89,7 @@ extra-y				+= vmlinux.lds
 
 obj-$(CONFIG_RELOCATABLE_PPC32)	+= reloc_32.o
 
-obj-$(CONFIG_PPC32)		+= entry_32.o setup_32.o
+obj-$(CONFIG_PPC32)		+= entry_32.o setup_32.o pci_32.o
 obj-$(CONFIG_PPC64)		+= dma-iommu.o iommu.o
 obj-$(CONFIG_KGDB)		+= kgdb.o
 obj-$(CONFIG_MODULES)		+= ppc_ksyms.o
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] powerpc: Fix build failure for PPC_32
  2014-08-18 19:01 [PATCH] powerpc: Fix build failure for PPC_32 Pranith Kumar
@ 2014-08-18 19:28 ` Geert Uytterhoeven
  2014-08-18 20:52   ` Pranith Kumar
  0 siblings, 1 reply; 5+ messages in thread
From: Geert Uytterhoeven @ 2014-08-18 19:28 UTC (permalink / raw)
  To: Pranith Kumar
  Cc: Rob Herring, Stephen Rothwell, Mahesh Salgaonkar, Gerhard Sittig,
	open list, Paul Mackerras, Andrew Morton,
	open list:LINUX FOR POWERPC...

Hi Pranith,

On Mon, Aug 18, 2014 at 9:01 PM, Pranith Kumar <bobby.prani@gmail.com> wrote:
> Fix ppc 32 build failure as reported here:
>
> http://kisskb.ellerman.id.au/kisskb/buildresult/11663513/

| arch/powerpc/include/asm/floppy.h:142:20: error: 'isa_bridge_pcidev'
undeclared (first use in this function)
| make[3]: *** [drivers/block/floppy.o] Error 1

The definition of isa_bridge_pcidev is only available if CONFIG_PCI=y...

> The error is that pci_32.o was not being built for PPC_32. Fix error by adding
> it in the Makefile. Tested using the ppc cross compiler.

... so how can adding this make the floppy.h error go away?

Note that arch/powerpc/kernel/Makefile does add
pci_$(CONFIG_WORD_SIZE).o, but only if CONFIG_PCI=y.

So, thanks for your patch, but I don't think your fix is the right solution.

However, drivers/block/floppy.o is enabled by BLK_DEV_FD, which
depends on ARCH_MAY_HAVE_PC_FDC.

arch/powerpc/Kconfig has:

config ARCH_MAY_HAVE_PC_FDC
        bool
        default !PPC_PSERIES || PCI

PCI is not set, and PPC_PSERIES is also not set, so this
defaults to y, which is obviously not correct, as floppy.h needs PCI.

As this symbol doesn't enable floppy support in-se, probably it should just
be:

config ARCH_MAY_HAVE_PC_FDC
        bool
        depends on PCI

This config line was last touched by
commit bed59275810a55500e885cbdc5c2a0507f13c00e
Author: Stephen Rothwell <sfr@canb.auug.org.au>
Date:   Sun Mar 4 17:04:44 2007 +1100

    [POWERPC] Allow pSeries to build without CONFIG_PCI

    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    Signed-off-by: Paul Mackerras <paulus@samba.org>

> Signed-off-by: Pranith Kumar <bobby.prani@gmail.com>
> Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
> CC: Andrew Morton <akpm@linux-foundation.org>
> ---
>  arch/powerpc/kernel/Makefile | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/powerpc/kernel/Makefile b/arch/powerpc/kernel/Makefile
> index 670c312..3206ba1 100644
> --- a/arch/powerpc/kernel/Makefile
> +++ b/arch/powerpc/kernel/Makefile
> @@ -89,7 +89,7 @@ extra-y                               += vmlinux.lds
>
>  obj-$(CONFIG_RELOCATABLE_PPC32)        += reloc_32.o
>
> -obj-$(CONFIG_PPC32)            += entry_32.o setup_32.o
> +obj-$(CONFIG_PPC32)            += entry_32.o setup_32.o pci_32.o
>  obj-$(CONFIG_PPC64)            += dma-iommu.o iommu.o
>  obj-$(CONFIG_KGDB)             += kgdb.o
>  obj-$(CONFIG_MODULES)          += ppc_ksyms.o

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] powerpc: Fix build failure for PPC_32
  2014-08-18 19:28 ` Geert Uytterhoeven
@ 2014-08-18 20:52   ` Pranith Kumar
  2014-08-18 20:57     ` Geert Uytterhoeven
  0 siblings, 1 reply; 5+ messages in thread
From: Pranith Kumar @ 2014-08-18 20:52 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Rob Herring, Stephen Rothwell, Mahesh Salgaonkar, Gerhard Sittig,
	open list, Paul Mackerras, Andrew Morton,
	open list:LINUX FOR POWERPC...

[-- Attachment #1: Type: text/plain, Size: 2574 bytes --]

On Mon, Aug 18, 2014 at 3:28 PM, Geert Uytterhoeven <geert@linux-m68k.org>
wrote:

> Hi Pranith,
>
> On Mon, Aug 18, 2014 at 9:01 PM, Pranith Kumar <bobby.prani@gmail.com>
> wrote:
> > Fix ppc 32 build failure as reported here:
> >
> > http://kisskb.ellerman.id.au/kisskb/buildresult/11663513/
>
> | arch/powerpc/include/asm/floppy.h:142:20: error: 'isa_bridge_pcidev'
> undeclared (first use in this function)
> | make[3]: *** [drivers/block/floppy.o] Error 1
>
> The definition of isa_bridge_pcidev is only available if CONFIG_PCI=y...
>
> > The error is that pci_32.o was not being built for PPC_32. Fix error by
> adding
> > it in the Makefile. Tested using the ppc cross compiler.
>
> ... so how can adding this make the floppy.h error go away?
>

So the definition which you are talking about within CONFIG_PCI=y is an
extern definition

arch/powerpc/include/asm/ppc-pci.h:28:extern struct pci_dev
*isa_bridge_pcidev;

If you build pci_32.o unconditionally, there is an

EXPORT_SYMBOL(isa_bridge_pcidev);

which supplies the required symbol.

But yes, you are right in that we should not unconditionally compile
pci_32.o. Making floppy depend on PCI is the right thing to do. However,


>
> Note that arch/powerpc/kernel/Makefile does add
> pci_$(CONFIG_WORD_SIZE).o, but only if CONFIG_PCI=y.
>
> So, thanks for your patch, but I don't think your fix is the right
> solution.
>
> However, drivers/block/floppy.o is enabled by BLK_DEV_FD, which
> depends on ARCH_MAY_HAVE_PC_FDC.
>
> arch/powerpc/Kconfig has:
>
> config ARCH_MAY_HAVE_PC_FDC
>         bool
>         default !PPC_PSERIES || PCI
>
> PCI is not set, and PPC_PSERIES is also not set, so this
> defaults to y, which is obviously not correct, as floppy.h needs PCI.
>
> As this symbol doesn't enable floppy support in-se, probably it should just
> be:
>
> config ARCH_MAY_HAVE_PC_FDC
>         bool
>         depends on PCI
>

the right thing I guess here is to depend on !PPC_PSERIES && PCI since I
guess pSeries does not support floppy.h (hence the original condition
check?).

Note that there are other unrelated errors which do not let me complete the
PPC 32 build with the config there yet. I just verified this symbol error.


> This config line was last touched by
> commit bed59275810a55500e885cbdc5c2a0507f13c00e
> Author: Stephen Rothwell <sfr@canb.auug.org.au>
> Date:   Sun Mar 4 17:04:44 2007 +1100
>
>     [POWERPC] Allow pSeries to build without CONFIG_PCI
>
>     Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
>     Signed-off-by: Paul Mackerras <paulus@samba.org>
>


-- 
Pranith

[-- Attachment #2: Type: text/html, Size: 3905 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] powerpc: Fix build failure for PPC_32
  2014-08-18 20:52   ` Pranith Kumar
@ 2014-08-18 20:57     ` Geert Uytterhoeven
  2014-08-18 21:08       ` Pranith Kumar
  0 siblings, 1 reply; 5+ messages in thread
From: Geert Uytterhoeven @ 2014-08-18 20:57 UTC (permalink / raw)
  To: Pranith Kumar
  Cc: Rob Herring, Stephen Rothwell, Mahesh Salgaonkar, Gerhard Sittig,
	open list, Paul Mackerras, Andrew Morton,
	open list:LINUX FOR POWERPC...

Hi Pranith,

On Mon, Aug 18, 2014 at 10:52 PM, Pranith Kumar <bobby.prani@gmail.com> wrote:
> On Mon, Aug 18, 2014 at 3:28 PM, Geert Uytterhoeven <geert@linux-m68k.org>
> wrote:
>> On Mon, Aug 18, 2014 at 9:01 PM, Pranith Kumar <bobby.prani@gmail.com>
>> wrote:
>> > Fix ppc 32 build failure as reported here:
>> >
>> > http://kisskb.ellerman.id.au/kisskb/buildresult/11663513/
>>
>> | arch/powerpc/include/asm/floppy.h:142:20: error: 'isa_bridge_pcidev'
>> undeclared (first use in this function)
>> | make[3]: *** [drivers/block/floppy.o] Error 1
>>
>> The definition of isa_bridge_pcidev is only available if CONFIG_PCI=y...
>>
>> > The error is that pci_32.o was not being built for PPC_32. Fix error by
>> > adding
>> > it in the Makefile. Tested using the ppc cross compiler.
>>
>> ... so how can adding this make the floppy.h error go away?
>
> So the definition which you are talking about within CONFIG_PCI=y is an
> extern definition
>
> arch/powerpc/include/asm/ppc-pci.h:28:extern struct pci_dev
> *isa_bridge_pcidev;
>
> If you build pci_32.o unconditionally, there is an
>
> EXPORT_SYMBOL(isa_bridge_pcidev);
>
> which supplies the required symbol.

Yes, but the error in floppy.h is from the compiler, not from the linker.
Supplying the symbol for the linker doesn't help the compiler when
building floppy.c.

> But yes, you are right in that we should not unconditionally compile
> pci_32.o. Making floppy depend on PCI is the right thing to do. However,
>>
>> Note that arch/powerpc/kernel/Makefile does add
>> pci_$(CONFIG_WORD_SIZE).o, but only if CONFIG_PCI=y.
>>
>> So, thanks for your patch, but I don't think your fix is the right
>> solution.
>>
>> However, drivers/block/floppy.o is enabled by BLK_DEV_FD, which
>> depends on ARCH_MAY_HAVE_PC_FDC.
>>
>> arch/powerpc/Kconfig has:
>>
>> config ARCH_MAY_HAVE_PC_FDC
>>         bool
>>         default !PPC_PSERIES || PCI
>>
>> PCI is not set, and PPC_PSERIES is also not set, so this
>> defaults to y, which is obviously not correct, as floppy.h needs PCI.
>>
>> As this symbol doesn't enable floppy support in-se, probably it should
>> just
>> be:
>>
>> config ARCH_MAY_HAVE_PC_FDC
>>         bool
>>         depends on PCI
>
> the right thing I guess here is to depend on !PPC_PSERIES && PCI since I
> guess pSeries does not support floppy.h (hence the original condition
> check?).

Note that PowerPC supports multi-platform kernels.
A kernel with PPC_PSERIES and something else with PCI may still want to
have floppy support.

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] powerpc: Fix build failure for PPC_32
  2014-08-18 20:57     ` Geert Uytterhoeven
@ 2014-08-18 21:08       ` Pranith Kumar
  0 siblings, 0 replies; 5+ messages in thread
From: Pranith Kumar @ 2014-08-18 21:08 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Rob Herring, Stephen Rothwell, Mahesh Salgaonkar, Gerhard Sittig,
	open list, Paul Mackerras, Andrew Morton,
	open list:LINUX FOR POWERPC...

On Mon, Aug 18, 2014 at 4:57 PM, Geert Uytterhoeven
<geert@linux-m68k.org> wrote:
>
> Note that PowerPC supports multi-platform kernels.
> A kernel with PPC_PSERIES and something else with PCI may still want to
> have floppy support.

OK, I tested with your change and it works. I needed to make one more
change for it compile all the way through though.

I will send both of the patches shortly.

-- 
Pranith

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2014-08-18 21:08 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-08-18 19:01 [PATCH] powerpc: Fix build failure for PPC_32 Pranith Kumar
2014-08-18 19:28 ` Geert Uytterhoeven
2014-08-18 20:52   ` Pranith Kumar
2014-08-18 20:57     ` Geert Uytterhoeven
2014-08-18 21:08       ` Pranith Kumar

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).