Re: 2.6.16-mm1
From: Russell King
Date: Thu Mar 23 2006 - 09:47:01 EST
On Thu, Mar 23, 2006 at 03:31:45PM +0100, Michal Piotrowski wrote:
> Hi,
>
> On 23/03/06, Andrew Morton <akpm@xxxxxxxx> wrote:
> >
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.16/2.6.16-mm1/
> >
>
> Something went wrong with serial code.
>
> make
> [..]
> CC init/version.o
> LD init/built-in.o
> LD .tmp_vmlinux1
> drivers/built-in.o: In function
> `serial_pnp_probe':/usr/src/linux-mm/drivers/serial/8250_pnp.c:435:
> undefined reference to `serial8250_register_port'
> drivers/built-in.o: In function
> `serial_pnp_remove':/usr/src/linux-mm/drivers/serial/8250_pnp.c:447:
> undefined reference to `serial8250_unregister_port'
> drivers/built-in.o: In function
> `pciserial_suspend_ports':/usr/src/linux-mm/drivers/serial/8250_pci.c:1690:
> undefined reference to `serial8250_suspend_port'
> drivers/built-in.o: In function
> `pciserial_resume_ports':/usr/src/linux-mm/drivers/serial/8250_pci.c:1706:
> undefined reference to `serial8250_resume_port'
> drivers/built-in.o: In function
> `pciserial_remove_ports':/usr/src/linux-mm/drivers/serial/8250_pci.c:1665:
> undefined reference to `serial8250_unregister_port'
> drivers/built-in.o: In function
> `pciserial_init_ports':/usr/src/linux-mm/drivers/serial/8250_pci.c:1640:
> undefined reference to `serial8250_register_port'
> make[1]: *** [.tmp_vmlinux1] B??d 1
> make: *** [_all] B??d 2
>
> Here is config http://www.stardust.webpages.pl/files/mm/2.6.16-mm1/mm-config
CONFIG_SERIAL_8250=m
CONFIG_SERIAL_8250_PCI=y
CONFIG_SERIAL_8250_PNP=y
That's an illegal configuration.
+config SERIAL_8250_PCI
+ tristate "8250/16550 PCI device support" if EMBEDDED
+ depends on SERIAL_8250 && PCI
+ default y
if SERIAL_8250 is 'm' there's no way that SERIAL_8250_PCI should be 'y'.
Maybe it's a bug in kconfig - seems like it. Let's try some experiments:
config SYM_Y
bool
default y
config SYM_M
tristate
default m
config SYM_D
tristate 'SYM_D'
depends on SYM_M && SYM_Y
With this I'm offered:
SYM_D (SYM_D) [N/m] (NEW)
so Kconfig thinks the only legal values for SYM_D are 'n' and 'm', and
the default is 'n'.
If I add a default line to SYM_D thusly:
config SYM_D
tristate 'SYM_D'
depends on SYM_M && SYM_Y
default y
I'm now offered:
SYM_D (SYM_D) [M/n] (NEW)
Okay, so the default is now 'm', but the legal values are still only 'n'
and 'm'. I can only select 'm' or 'n', and this is what I end up with in
the config file. Now, if I remove the prompt text:
config SYM_D
tristate
depends on SYM_M && SYM_Y
default y
and hey presto, suddenly 'y' becomes a legal value.
CONFIG_SYM_Y=y
CONFIG_SYM_M=m
CONFIG_SYM_D=y
So it would seem to be a Kconfig bug.
--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of: 2.6 Serial core
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/