Re: 2.3.13 CONFIG_SX=m brokenness

Rogier Wolff (R.E.Wolff@BitWizard.nl)
Tue, 10 Aug 1999 07:55:49 +0200 (MEST)


Bernhard Rosenkraenzer wrote:
> drivers/char/tty_io.c does:
> #ifdef CONFIG_SX
> extern int sx_init (void);
> #endif

> drivers/char/sx.c does:
> #ifdef MODULE
> #define sx_init init_module
> #endif
>
> So if CONFIG_SX = m, tty_io tries to get sx_init as an extern, but sx_init
> is actually a C macro, therefore we get an undefined reference.

I think you screwed up your dependencies: sx_init would also get
-=called=- if this were the normal situation. Somehow, you first set
CONFIG_SX = y, then switched to config_SX=M, and one way or another
tty_io.c didn't get recompiled.

Near the end of tty_io.c we have:

#ifdef CONFIG_RISCOM8
riscom8_init();
#endif
#ifdef CONFIG_SPECIALIX
specialix_init();
#endif
#ifdef CONFIG_SX
sx_init();
#endif

which is supposed to "evaporate" (i.e. evaluate to "nothing") if we
don't have the RISCOM8, specialix IO8+ or SX support compiled into the
kernel. If a driver is a module, as far as the rest of the kernel is
concerned, it isn't there....

Linus shall I make you a patch that moves all these to "__initcall"?
The problem is that it involves lots of drivers maintained by others.

Roger.

-- 
** R.E.Wolff@BitWizard.nl ** http://www.BitWizard.nl/ ** +31-15-2137555 **
*-- BitWizard writes Linux device drivers for any device you may have! --*
------ Microsoft SELLS you Windows, Linux GIVES you the whole house ------

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/