2.6.25: pmac_newworld undefined

Sam Ravnborg sam at ravnborg.org
Wed Apr 30 05:17:53 EST 2008


On Tue, Apr 29, 2008 at 04:35:14PM +0300, Adrian Bunk wrote:
> On Mon, Apr 28, 2008 at 09:33:24PM +0200, Sam Ravnborg wrote:
> > On Mon, Apr 28, 2008 at 02:20:44PM +1000, Tony Breeds wrote:
> > > On Sun, Apr 27, 2008 at 08:03:46PM +0200, Christian Kujau wrote:
> > > > Hi,
> > > > 
> > > > the build failure reported[0] by Kamalesh back in 01/2008 is still 
> > > > present in today's 2.6.25-git with CONFIG_NVRAM=m (instead of =y):
> > > > 
> > > >   Building modules, stage 2.
> > > >   MODPOST 72 modules
> > > > ERROR: "pmac_newworld" [arch/powerpc/platforms/powermac/nvram.ko] undefined!
> > > > ERROR: "__alloc_bootmem" [arch/powerpc/platforms/powermac/nvram.ko] 
> > > > undefined!
> > > > make[1]: *** [__modpost] Error 1
> > > 
> > > Yeah that isn't really surprising.  Essentially
> > > arch/powerpc/platforms/powermac/nvram.c must be builtin (not modular)
> > > but CONFIG_NVRAM is tristate, and your .config has CONFIG_NVRAM=m.
> > > 
> > > We can probably "fix" this by adding another config config symbol and
> > > "selecting" that from CONFIG_NVRAM.  Then using this new symbol in
> > > arch/powerpc/platforms/powermac/*
> > > 
> > > so I think with we need is:
> > > config NVRAM
> > >   bool "..." if PPC32
> > >   tristate "..." if !PPC32
> > >   ...
> > >   ...
> > > 
> > > Sam is there some way to achieve that or should we just create an
> > > secondary symbol?
> > 
> > In the Makefile you could just do a:
> > 
> > obj-$(CONFIG_NVRAM:m=y)             += nvram.o
> > 
> > Then you would force nvram to be build-in.
> > That looks simpler than messing with Kconfig in this case.
> 
> You miss that this is only true on powerpc.
And so is the Makefile - right?
Or is this only true for 32 bit powerpc - in that case it is the wrong fix.

> And for such issues Kconfig anyway is the right place - assume how your 
> solution would break if NVRAM would some day select or depend on some 
> helper code.

So something like:

config PPC32_NVRAM
	bool
	depends on NVRAM

obj-$(CONFIG_PPC32_NVRAM) += nvram.o
obj-$(CONFIG_NVRAM)       += nvram.o

Or did you have another solution in mind?

	Sam



More information about the Linuxppc-dev mailing list