Messages in this thread | | | Date | Thu, 31 May 2001 08:08:45 +0200 | From | Vojtech Pavlik <> | Subject | Re: 2.4.5-ac4 es1371.o unresolved symbols |
| |
On Thu, May 31, 2001 at 11:29:06AM +1000, Keith Owens wrote: > On Wed, 30 May 2001 18:15:31 +0200, > Vojtech Pavlik <vojtech@suse.cz> wrote: > >On Wed, May 30, 2001 at 02:46:42PM +1000, Keith Owens wrote: > >> This is messy. gameport.h is included by code outside the joystick > >> directory and it needs to expand differently based on whether > >> gameport.o is compiled or not. Also gameport.o needs to be built in if > >> _any_ consumers are built in (either joystick or sound), it needs to be > >> a module otherwise. Lots of cross config and cross directory > >> dependencies :(. > > > >What about this solution? It's a little cleaner. > > > >diff -urN linux-2.4.5-ac4/drivers/char/joystick/Config.in linux/drivers/char/joystick/Config.in > >+tristate 'Game port support' CONFIG_INPUT_GAMEPORT > >+ dep_tristate ' Classic ISA/PnP gameports' CONFIG_INPUT_NS558 $CONFIG_INPUT_GAMEPORT > > CONFIG_INPUT_GAMEPORT must be a derived symbol, not a user selected > symbol. CONFIG_INPUT_GAMEPORT is 'n' if no gameport drivers are > installed. It is 'm' if all gameport drivers are modules *and* all > users of gameport_register_port() are modules, otherwise it is 'y'. > > With your patch, if a user selects CONFIG_INPUT_GAMEPORT=m and > CONFIG_SOUND_ES1370=y then the built in es1370 driver has unresolved > references to gameport_register_port() which is in a module, vmlinux > will not link. That is why I derived CONFIG_INPUT_GAMEPORT based on > the config options in two separate directories.
Have you tried the patch? Because the gameport.h define has:
#if defined(CONFIG_INPUT_GAMEPORT) || (defined(CONFIG_INPUT_GAMEPORT_MODULE) && defined(MODULE)) void gameport_register_port(struct gameport *gameport); void gameport_unregister_port(struct gameport *gameport); #else void __inline__ gameport_register_port(struct gameport *gameport) { return; } void __inline__ gameport_unregister_port(struct gameport *gameport) { return; } #endif
I think it should work.
-- Vojtech Pavlik SuSE Labs - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |