public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* 2.4.5-ac4 es1371.o unresolved symbols
@ 2001-05-30  1:56 Frank Davis
  2001-05-30  2:22 ` Keith Owens
  2001-05-30  4:46 ` Keith Owens
  0 siblings, 2 replies; 10+ messages in thread
From: Frank Davis @ 2001-05-30  1:56 UTC (permalink / raw)
  To: linux-kernel

Hello,
     While 'make modules_install' on 2.4.5-ac4, I received the following error:
depmod: *** Unresolved symbols in /lib/modules/2.4.5-ac4/kernel/drivers/sound/es1371.o
depmod:  gameport_register_port_Rsmp_aa96bd99
depmod:  gameport_unregister_port_Rsmp_ec101047

The previous steps make mrproper, make config, make clean, make bzImage, make modules all appeared to work.
The .config is the same as 2.4.5-ac3 

Regards,
Frank



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

* Re: 2.4.5-ac4 es1371.o unresolved symbols
  2001-05-30  1:56 2.4.5-ac4 es1371.o unresolved symbols Frank Davis
@ 2001-05-30  2:22 ` Keith Owens
  2001-05-30  4:46 ` Keith Owens
  1 sibling, 0 replies; 10+ messages in thread
From: Keith Owens @ 2001-05-30  2:22 UTC (permalink / raw)
  To: Frank Davis; +Cc: linux-kernel

On Tue, 29 May 2001 21:56:51 -0400 (EDT), 
Frank Davis <fdavis112@juno.com> wrote:
>     While 'make modules_install' on 2.4.5-ac4, I received the following error:
>depmod: *** Unresolved symbols in /lib/modules/2.4.5-ac4/kernel/drivers/sound/es1371.o
>depmod:  gameport_register_port_Rsmp_aa96bd99
>depmod:  gameport_unregister_port_Rsmp_ec101047

Need more info.
  cd 2.4.5-ac4
  grep 'gameport_.*register_port' /proc/ksyms System.map
  sed -ne '/^CONFIG/s/CONFIG_//p' .config


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

* Re: 2.4.5-ac4 es1371.o unresolved symbols
  2001-05-30  1:56 2.4.5-ac4 es1371.o unresolved symbols Frank Davis
  2001-05-30  2:22 ` Keith Owens
@ 2001-05-30  4:46 ` Keith Owens
  2001-05-30 16:15   ` Vojtech Pavlik
  1 sibling, 1 reply; 10+ messages in thread
From: Keith Owens @ 2001-05-30  4:46 UTC (permalink / raw)
  To: Frank Davis; +Cc: linux-kernel, vojtech, Alan Cox

On Tue, 29 May 2001 21:56:51 -0400 (EDT), 
Frank Davis <fdavis112@juno.com> wrote:
>     While 'make modules_install' on 2.4.5-ac4, I received the following error:
>depmod: *** Unresolved symbols in /lib/modules/2.4.5-ac4/kernel/drivers/sound/es1371.o
>depmod:  gameport_register_port_Rsmp_aa96bd99
>depmod:  gameport_unregister_port_Rsmp_ec101047

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 :(.

serio.[ho] has the same problem but I want opinions on this patch
before fixing serio.

Index: 5.7/include/linux/gameport.h
--- 5.7/include/linux/gameport.h Wed, 30 May 2001 11:45:37 +1000 kaos (linux-2.4/V/32_gameport.h 1.2 644)
+++ 5.7(w)/include/linux/gameport.h Wed, 30 May 2001 14:36:09 +1000 kaos (linux-2.4/V/32_gameport.h 1.2 644)
@@ -31,6 +31,8 @@
 
 #include <asm/io.h>
 
+#if defined(CONFIG_INPUT_GAMEPORT) || defined(CONFIG_INPUT_GAMEPORT_MODULE)
+
 struct gameport;
 
 struct gameport {
@@ -68,13 +70,8 @@ int gameport_open(struct gameport *gamep
 void gameport_close(struct gameport *gameport);
 void gameport_rescan(struct gameport *gameport);
 
-#ifdef CONFIG_JOYSTICK
 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
 
 void gameport_register_device(struct gameport_dev *dev);
 void gameport_unregister_device(struct gameport_dev *dev);
@@ -135,5 +132,17 @@ static __inline__ void wait_ms(unsigned 
 	current->state = TASK_UNINTERRUPTIBLE;
 	schedule_timeout(1 + ms * HZ / 1000);
 }
+
+#else	/* !(defined(CONFIG_INPUT_GAMEPORT) || defined(CONFIG_INPUT_GAMEPORT_MODULE)) */
+
+struct gameport {
+       int io;
+       int size;
+};
+
+extern inline void gameport_register_port(struct gameport *gameport) { }
+extern inline void gameport_unregister_port(struct gameport *gameport) { }
+
+#endif	/* defined(CONFIG_INPUT_GAMEPORT) || defined(CONFIG_INPUT_GAMEPORT_MODULE) */
 
 #endif
Index: 5.7/drivers/sound/Config.in
--- 5.7/drivers/sound/Config.in Sun, 27 May 2001 10:30:27 +1000 kaos (linux-2.4/P/b/0_Config.in 1.4.1.1.1.4 644)
+++ 5.7(w)/drivers/sound/Config.in Wed, 30 May 2001 14:06:32 +1000 kaos (linux-2.4/P/b/0_Config.in 1.4.1.1.1.4 644)
@@ -195,3 +195,18 @@ if [ "$CONFIG_SOUND_OSS" = "y" -o "$CONF
 fi
 
 dep_tristate '  TV card (bt848) mixer support' CONFIG_SOUND_TVMIXER $CONFIG_SOUND $CONFIG_I2C
+
+# If CONFIG_INPUT_GAMEPORT is set then gameport.o will be compiled.  If any of
+# the consumers of gameport.o in this directory are built in then force
+# gameport.o to be built in.  See also drivers/char/joystick/Config.in.  KAO
+
+# Extreme ugliness.  Roll on CML2.
+
+if [ "$CONFIG_INPUT_GAMEPORT" != "n" ]; then
+  if [ "$CONFIG_SOUND_ESSSOLO1" = "y" -o \
+       "$CONFIG_SOUND_ES1370" = "y" -o \
+       "$CONFIG_SOUND_ES1371" = "y" -o \
+       "$CONFIG_SOUND_SONICVIBES" = "y" ]; then
+    define_tristate CONFIG_INPUT_GAMEPORT y
+  fi
+fi
Index: 5.7/drivers/char/joystick/Makefile
--- 5.7/drivers/char/joystick/Makefile Wed, 30 May 2001 11:45:37 +1000 kaos (linux-2.4/Y/b/34_Makefile 1.1.1.2 644)
+++ 5.7(w)/drivers/char/joystick/Makefile Wed, 30 May 2001 13:53:00 +1000 kaos (linux-2.4/Y/b/34_Makefile 1.1.1.2 644)
@@ -32,11 +32,11 @@ obj-	:=
 
 obj-$(CONFIG_INPUT_SERPORT)	+= serport.o serio.o
 
-obj-$(CONFIG_INPUT_NS558)	+= ns558.o gameport.o
-obj-$(CONFIG_INPUT_LIGHTNING)	+= lightning.o gameport.o
-obj-$(CONFIG_INPUT_PCIGAME)	+= pcigame.o gameport.o
-obj-$(CONFIG_INPUT_CS461X)	+= cs461x.o gameport.o
-obj-$(CONFIG_INPUT_EMU10K1)	+= emu10k1-gp.o gameport.o
+obj-$(CONFIG_INPUT_NS558)	+= ns558.o
+obj-$(CONFIG_INPUT_LIGHTNING)	+= lightning.o
+obj-$(CONFIG_INPUT_PCIGAME)	+= pcigame.o
+obj-$(CONFIG_INPUT_CS461X)	+= cs461x.o
+obj-$(CONFIG_INPUT_EMU10K1)	+= emu10k1-gp.o
 
 obj-$(CONFIG_INPUT_WARRIOR)	+= warrior.o serio.o
 obj-$(CONFIG_INPUT_MAGELLAN)	+= magellan.o serio.o
@@ -46,21 +46,23 @@ obj-$(CONFIG_INPUT_STINGER)	+= stinger.o
 obj-$(CONFIG_INPUT_IFORCE_232)	+= iforce.o serio.o
 obj-$(CONFIG_INPUT_IFORCE_USB)	+= iforce.o
 
-obj-$(CONFIG_INPUT_ANALOG)	+= analog.o gameport.o
-obj-$(CONFIG_INPUT_A3D)		+= a3d.o gameport.o
-obj-$(CONFIG_INPUT_ADI)		+= adi.o gameport.o
-obj-$(CONFIG_INPUT_COBRA)	+= cobra.o gameport.o
-obj-$(CONFIG_INPUT_GF2K)	+= gf2k.o gameport.o
-obj-$(CONFIG_INPUT_GRIP)	+= grip.o gameport.o
-obj-$(CONFIG_INPUT_INTERACT)	+= interact.o gameport.o
-obj-$(CONFIG_INPUT_TMDC)	+= tmdc.o gameport.o
-obj-$(CONFIG_INPUT_SIDEWINDER)	+= sidewinder.o gameport.o
+obj-$(CONFIG_INPUT_ANALOG)	+= analog.o
+obj-$(CONFIG_INPUT_A3D)		+= a3d.o
+obj-$(CONFIG_INPUT_ADI)		+= adi.o
+obj-$(CONFIG_INPUT_COBRA)	+= cobra.o
+obj-$(CONFIG_INPUT_GF2K)	+= gf2k.o
+obj-$(CONFIG_INPUT_GRIP)	+= grip.o
+obj-$(CONFIG_INPUT_INTERACT)	+= interact.o
+obj-$(CONFIG_INPUT_TMDC)	+= tmdc.o
+obj-$(CONFIG_INPUT_SIDEWINDER)	+= sidewinder.o
 
 obj-$(CONFIG_INPUT_DB9)		+= db9.o
 obj-$(CONFIG_INPUT_GAMECON)	+= gamecon.o
 obj-$(CONFIG_INPUT_TURBOGRAFX)	+= turbografx.o
 
 obj-$(CONFIG_INPUT_AMIJOY)	+= amijoy.o
+
+obj-$(CONFIG_INPUT_GAMEPORT)	+= gameport.o
 
 # The global Rules.make.
 
Index: 5.7/drivers/char/joystick/Config.in
--- 5.7/drivers/char/joystick/Config.in Wed, 30 May 2001 11:45:37 +1000 kaos (linux-2.4/Y/b/35_Config.in 1.1.1.2 644)
+++ 5.7(w)/drivers/char/joystick/Config.in Wed, 30 May 2001 14:26:17 +1000 kaos (linux-2.4/Y/b/35_Config.in 1.1.1.2 644)
@@ -5,6 +5,8 @@
 mainmenu_option next_comment
 comment 'Joysticks'
 
+define_tristate CONFIG_INPUT_GAMEPORT n
+
 dep_mbool 'Joystick support' CONFIG_JOYSTICK $CONFIG_INPUT
 if [ "$CONFIG_JOYSTICK" != "n" ]; then
    comment 'Game port support'
@@ -51,6 +53,49 @@ if [ "$CONFIG_JOYSTICK" != "n" ]; then
    comment 'System joysticks'
       dep_tristate '  Amiga joysticks' CONFIG_INPUT_AMIJOY $CONFIG_INPUT
    fi
+
+   # gameport.h is included in code outside the joystick directory, we need to know
+   # if gameport.o is being compiled in order to select a full or partial expansion
+   # of gameport.h.  We also need to know if gameport.o is to be built in or
+   # compiled as a module, it depends on the combination of input devices.
+   # See also drivers/sound/Config.in.  KAO
+
+   # Extreme ugliness.  Roll on CML2.
+
+   if [ "$CONFIG_INPUT_NS558" = "y" -o \
+	"$CONFIG_INPUT_LIGHTNING" = "y" -o \
+	"$CONFIG_INPUT_PCIGAME" = "y" -o \
+	"$CONFIG_INPUT_CS461X" = "y" -o \
+	"$CONFIG_INPUT_EMU10K1" = "y" -o \
+	"$CONFIG_INPUT_ANALOG" = "y" -o \
+	"$CONFIG_INPUT_A3D" = "y" -o \
+	"$CONFIG_INPUT_ADI" = "y" -o \
+	"$CONFIG_INPUT_COBRA" = "y" -o \
+	"$CONFIG_INPUT_GF2K" = "y" -o \
+	"$CONFIG_INPUT_GRIP" = "y" -o \
+	"$CONFIG_INPUT_INTERACT" = "y" -o \
+	"$CONFIG_INPUT_TMDC" = "y" -o \
+	"$CONFIG_INPUT_SIDEWINDER" = "y" ]; then
+      define_tristate CONFIG_INPUT_GAMEPORT y
+   else
+      if [ "$CONFIG_INPUT_NS558" = "m" -o \
+	   "$CONFIG_INPUT_LIGHTNING" = "m" -o \
+	   "$CONFIG_INPUT_PCIGAME" = "m" -o \
+	   "$CONFIG_INPUT_CS461X" = "m" -o \
+	   "$CONFIG_INPUT_EMU10K1" = "m" -o \
+	   "$CONFIG_INPUT_ANALOG" = "m" -o \
+	   "$CONFIG_INPUT_A3D" = "m" -o \
+	   "$CONFIG_INPUT_ADI" = "m" -o \
+	   "$CONFIG_INPUT_COBRA" = "m" -o \
+	   "$CONFIG_INPUT_GF2K" = "m" -o \
+	   "$CONFIG_INPUT_GRIP" = "m" -o \
+	   "$CONFIG_INPUT_INTERACT" = "m" -o \
+	   "$CONFIG_INPUT_TMDC" = "m" -o \
+	   "$CONFIG_INPUT_SIDEWINDER" = "m" ]; then
+	 define_tristate CONFIG_INPUT_GAMEPORT m
+      fi
+   fi
+
 else
    comment 'Input core support is needed for joysticks'
 fi


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

* Re: 2.4.5-ac4 es1371.o unresolved symbols
  2001-05-30  4:46 ` Keith Owens
@ 2001-05-30 16:15   ` Vojtech Pavlik
  2001-05-31  1:29     ` Keith Owens
  0 siblings, 1 reply; 10+ messages in thread
From: Vojtech Pavlik @ 2001-05-30 16:15 UTC (permalink / raw)
  To: Keith Owens; +Cc: Frank Davis, linux-kernel, Alan Cox

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

On Wed, May 30, 2001 at 02:46:42PM +1000, Keith Owens wrote:
> On Tue, 29 May 2001 21:56:51 -0400 (EDT), 
> Frank Davis <fdavis112@juno.com> wrote:
> >     While 'make modules_install' on 2.4.5-ac4, I received the following error:
> >depmod: *** Unresolved symbols in /lib/modules/2.4.5-ac4/kernel/drivers/sound/es1371.o
> >depmod:  gameport_register_port_Rsmp_aa96bd99
> >depmod:  gameport_unregister_port_Rsmp_ec101047
> 
> 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 :(.
> 
> serio.[ho] has the same problem but I want opinions on this patch
> before fixing serio.

What about this solution? It's a little cleaner.

-- 
Vojtech Pavlik
SuSE Labs

[-- Attachment #2: gameport.config.diff --]
[-- Type: text/plain, Size: 10721 bytes --]

diff -urN linux-2.4.5-ac4/drivers/char/joystick/Config.in linux/drivers/char/joystick/Config.in
--- linux-2.4.5-ac4/drivers/char/joystick/Config.in	Tue May 29 19:48:14 2001
+++ linux/drivers/char/joystick/Config.in	Wed May 30 17:50:45 2001
@@ -5,54 +5,79 @@
 mainmenu_option next_comment
 comment 'Joysticks'
 
-dep_mbool 'Joystick support' CONFIG_JOYSTICK $CONFIG_INPUT
-if [ "$CONFIG_JOYSTICK" != "n" ]; then
-   comment 'Game port support'
-      dep_tristate '  Classic ISA/PnP gameports' CONFIG_INPUT_NS558 $CONFIG_INPUT
-      dep_tristate '  PDPI Lightning 4 gamecard' CONFIG_INPUT_LIGHTNING $CONFIG_INPUT
-      dep_tristate '  Aureal Vortex and Trident 4DWave gameports' CONFIG_INPUT_PCIGAME $CONFIG_INPUT
-      dep_tristate '  Crystal SoundFusion gameports' CONFIG_INPUT_CS461X $CONFIG_INPUT
-      dep_tristate '  SoundBlaster Live! gameports' CONFIG_INPUT_EMU10K1 $CONFIG_INPUT
-      comment '  ESS Solo1, ES1370, ES1371 and SonicVibes gameports are handled by the sound drivers'
-
-   comment 'Gameport joysticks'
-      dep_tristate '  Classic PC analog joysticks and gamepads' CONFIG_INPUT_ANALOG $CONFIG_INPUT
-      dep_tristate '  Assasin 3D and MadCatz Panther devices' CONFIG_INPUT_A3D $CONFIG_INPUT
-      dep_tristate '  Logitech ADI digital joysticks and gamepads' CONFIG_INPUT_ADI $CONFIG_INPUT
-      dep_tristate '  Creative Labs Blaster Cobra gamepad' CONFIG_INPUT_COBRA $CONFIG_INPUT
-      dep_tristate '  Genius Flight2000 Digital joysticks and gamepads' CONFIG_INPUT_GF2K $CONFIG_INPUT
-      dep_tristate '  Gravis GrIP joysticks and gamepads' CONFIG_INPUT_GRIP $CONFIG_INPUT
-      dep_tristate '  InterAct digital joysticks and gamepads' CONFIG_INPUT_INTERACT $CONFIG_INPUT
-      dep_tristate '  ThrustMaster DirectConnect joysticks and gamepads' CONFIG_INPUT_TMDC $CONFIG_INPUT
-      dep_tristate '  Microsoft SideWinder digital joysticks and gamepads' CONFIG_INPUT_SIDEWINDER $CONFIG_INPUT
-
-   comment 'Serial port support'
-      dep_tristate '  Serial port input line discipline' CONFIG_INPUT_SERPORT $CONFIG_INPUT
-
-   comment 'Serial port joysticks'
-      dep_tristate '  Logitech WingMan Warrior joystick' CONFIG_INPUT_WARRIOR $CONFIG_INPUT
-      dep_tristate '  LogiCad3d Magellan/SpaceMouse 6dof controller' CONFIG_INPUT_MAGELLAN $CONFIG_INPUT
-      dep_tristate '  SpaceTec SpaceOrb/Avenger 6dof controller' CONFIG_INPUT_SPACEORB $CONFIG_INPUT
-      dep_tristate '  SpaceTec SpaceBall 4000 FLX 6dof controller' CONFIG_INPUT_SPACEBALL $CONFIG_INPUT
-      dep_tristate '  Gravis Stinger gamepad' CONFIG_INPUT_STINGER $CONFIG_INPUT
-      dep_tristate '  I-Force/Serial controllers' CONFIG_INPUT_IFORCE_232 $CONFIG_INPUT
-      dep_tristate '  I-Force/USB controllers' CONFIG_INPUT_IFORCE_USB $CONFIG_INPUT $CONFIG_USB
-
-   comment 'Parallel port joysticks'
-   if [ "$CONFIG_PARPORT" != "n" ]; then
-      dep_tristate '  Multisystem, Sega Genesis, Saturn joysticks and gamepads' CONFIG_INPUT_DB9 $CONFIG_INPUT $CONFIG_PARPORT
-      dep_tristate '  Multisystem, NES, SNES, N64, PSX joysticks and gamepads' CONFIG_INPUT_GAMECON $CONFIG_INPUT $CONFIG_PARPORT
-      dep_tristate '  Multisystem joysticks via TurboGraFX device' CONFIG_INPUT_TURBOGRAFX $CONFIG_INPUT $CONFIG_PARPORT
+tristate 'Game port support' CONFIG_INPUT_GAMEPORT
+   dep_tristate '  Classic ISA/PnP gameports' CONFIG_INPUT_NS558 $CONFIG_INPUT_GAMEPORT
+   dep_tristate '  PDPI Lightning 4 gamecard' CONFIG_INPUT_LIGHTNING $CONFIG_INPUT_GAMEPORT
+   dep_tristate '  Aureal Vortex and Trident 4DWave gameports' CONFIG_INPUT_PCIGAME $CONFIG_INPUT_GAMEPORT
+   dep_tristate '  Crystal SoundFusion gameports' CONFIG_INPUT_CS461X  $CONFIG_INPUT_GAMEPORT
+   dep_tristate '  SoundBlaster Live! gameports' CONFIG_INPUT_EMU10K1 $CONFIG_INPUT_GAMEPORT
+if [ "$CONFIG_INPUT_GAMEPORT" != "n" ]; then
+   comment '  ES1370, ES1371 (SoundBlaster 64, 128), SonicVibes and'
+   comment '  ESS Solo1 gameports are handled by the sound drivers'
+fi
+
+tristate 'Serial port device support' CONFIG_INPUT_SERIO
+   dep_tristate '  Serial port input line discipline' CONFIG_INPUT_SERPORT $CONFIG_INPUT_SERIO
+
+if [ "$CONFIG_INPUT" == "n" ]; then
+   comment 'Input core support is needed for joysticks'
+else
+   comment 'Joysticks'
+
+   comment '  Gameport joysticks'
+
+   if [ "$CONFIG_INPUT_GAMEPORT" == "n" ]; then
+      comment '    Gameport support is needed for gameport joysticks'
+   fi
+
+   dep_tristate '    Classic PC analog joysticks and gamepads' CONFIG_INPUT_ANALOG $CONFIG_INPUT $CONFIG_INPUT_GAMEPORT
+   dep_tristate '    Assasin 3D and MadCatz Panther devices' CONFIG_INPUT_A3D $CONFIG_INPUT $CONFIG_INPUT_GAMEPORT
+   dep_tristate '    Logitech ADI digital joysticks and gamepads' CONFIG_INPUT_ADI $CONFIG_INPUT $CONFIG_INPUT_GAMEPORT
+   dep_tristate '    Creative Labs Blaster Cobra gamepad' CONFIG_INPUT_COBRA $CONFIG_INPUT $CONFIG_INPUT_GAMEPORT
+   dep_tristate '    Genius Flight2000 Digital joysticks and gamepads' CONFIG_INPUT_GF2K $CONFIG_INPUT $CONFIG_INPUT_GAMEPORT
+   dep_tristate '    Gravis GrIP joysticks and gamepads' CONFIG_INPUT_GRIP $CONFIG_INPUT $CONFIG_INPUT_GAMEPORT
+   dep_tristate '    InterAct digital joysticks and gamepads' CONFIG_INPUT_INTERACT $CONFIG_INPUT $CONFIG_INPUT_GAMEPORT
+   dep_tristate '    ThrustMaster DirectConnect joysticks and gamepads' CONFIG_INPUT_TMDC $CONFIG_INPUT $CONFIG_INPUT_GAMEPORT
+   dep_tristate '    Microsoft SideWinder digital joysticks and gamepads' CONFIG_INPUT_SIDEWINDER $CONFIG_INPUT $CONFIG_INPUT_GAMEPORT
+
+   comment '  Serial port joysticks'
+
+   if [ "$CONFIG_INPUT_SERIO" == "n" ]; then
+      comment '    Serial port device support is needed for serial joysticks'
+   fi
+
+   dep_tristate '    I-Force Serial joysticks and wheels' CONFIG_INPUT_IFORCE_232 $CONFIG_INPUT $CONFIG_INPUT_SERIO
+   dep_tristate '    Logitech WingMan Warrior joystick' CONFIG_INPUT_WARRIOR $CONFIG_INPUT $CONFIG_INPUT_SERIO
+   dep_tristate '    LogiCad3d Magellan/SpaceMouse 6dof controller' CONFIG_INPUT_MAGELLAN $CONFIG_INPUT $CONFIG_INPUT_SERIO
+   dep_tristate '    SpaceTec SpaceOrb/Avenger 6dof controller' CONFIG_INPUT_SPACEORB $CONFIG_INPUT $CONFIG_INPUT_SERIO
+   dep_tristate '    SpaceTec SpaceBall 4000 FLX 6dof controller' CONFIG_INPUT_SPACEBALL $CONFIG_INPUT $CONFIG_INPUT_SERIO
+   dep_tristate '    Gravis Stinger gamepad' CONFIG_INPUT_STINGER $CONFIG_INPUT $CONFIG_INPUT_SERIO
+
+   comment '  USB joysticks'
+
+   if [ "$CONFIG_INPUT_SERIO" == "n" ]; then
+      comment '    USB support is needed for USB joysticks'
    else
-      comment '  Parport support is needed for parallel port joysticks'
+      comment '    Normal USB joystick are handled by USB HID driver'
    fi
 
+   dep_tristate '    I-Force USB joysticks and wheels' CONFIG_INPUT_IFORCE_USB $CONFIG_INPUT $CONFIG_USB
+
+   comment '  Parallel port joysticks'
+
+   if [ "$CONFIG_PARPORT" == "n" ]; then
+      comment '    Parport support is needed for parallel port joysticks'
+   fi
+
+   dep_tristate '    Multisystem, Sega Genesis, Saturn joysticks and gamepads' CONFIG_INPUT_DB9 $CONFIG_INPUT $CONFIG_PARPORT
+   dep_tristate '    Multisystem, NES, SNES, N64, PSX joysticks and gamepads' CONFIG_INPUT_GAMECON $CONFIG_INPUT $CONFIG_PARPORT
+   dep_tristate '    Multisystem joysticks via TurboGraFX device' CONFIG_INPUT_TURBOGRAFX $CONFIG_INPUT $CONFIG_PARPORT
+
    if [ "$CONFIG_AMIGA" = "y" ]; then
-   comment 'System joysticks'
-      dep_tristate '  Amiga joysticks' CONFIG_INPUT_AMIJOY $CONFIG_INPUT
+      comment '  System joysticks'
+      dep_tristate '    Amiga joysticks' CONFIG_INPUT_AMIJOY $CONFIG_INPUT
    fi
-else
-   comment 'Input core support is needed for joysticks'
+
 fi
 
 endmenu
diff -urN linux-2.4.5-ac4/drivers/char/joystick/Makefile linux/drivers/char/joystick/Makefile
--- linux-2.4.5-ac4/drivers/char/joystick/Makefile	Tue May 29 19:48:14 2001
+++ linux/drivers/char/joystick/Makefile	Wed May 30 17:17:08 2001
@@ -30,31 +30,34 @@
 
 # Each configuration option enables a list of files.
 
-obj-$(CONFIG_INPUT_SERPORT)	+= serport.o serio.o
+obj-$(CONFIG_INPUT_GAMEPORT)	+= gameport.o
+obj-$(CONFIG_INPUT_SERIO)	+= serio.o
 
-obj-$(CONFIG_INPUT_NS558)	+= ns558.o gameport.o
-obj-$(CONFIG_INPUT_LIGHTNING)	+= lightning.o gameport.o
-obj-$(CONFIG_INPUT_PCIGAME)	+= pcigame.o gameport.o
-obj-$(CONFIG_INPUT_CS461X)	+= cs461x.o gameport.o
-obj-$(CONFIG_INPUT_EMU10K1)	+= emu10k1-gp.o gameport.o
+obj-$(CONFIG_INPUT_SERPORT)	+= serport.o
 
-obj-$(CONFIG_INPUT_WARRIOR)	+= warrior.o serio.o
-obj-$(CONFIG_INPUT_MAGELLAN)	+= magellan.o serio.o
-obj-$(CONFIG_INPUT_SPACEORB)	+= spaceorb.o serio.o
-obj-$(CONFIG_INPUT_SPACEBALL)	+= spaceball.o serio.o
-obj-$(CONFIG_INPUT_STINGER)	+= stinger.o serio.o
-obj-$(CONFIG_INPUT_IFORCE_232)	+= iforce.o serio.o
+obj-$(CONFIG_INPUT_NS558)	+= ns558.o
+obj-$(CONFIG_INPUT_LIGHTNING)	+= lightning.o
+obj-$(CONFIG_INPUT_PCIGAME)	+= pcigame.o
+obj-$(CONFIG_INPUT_CS461X)	+= cs461x.o
+obj-$(CONFIG_INPUT_EMU10K1)	+= emu10k1-gp.o
+
+obj-$(CONFIG_INPUT_WARRIOR)	+= warrior.o
+obj-$(CONFIG_INPUT_MAGELLAN)	+= magellan.o
+obj-$(CONFIG_INPUT_SPACEORB)	+= spaceorb.o
+obj-$(CONFIG_INPUT_SPACEBALL)	+= spaceball.o
+obj-$(CONFIG_INPUT_STINGER)	+= stinger.o
+obj-$(CONFIG_INPUT_IFORCE_232)	+= iforce.o
 obj-$(CONFIG_INPUT_IFORCE_USB)	+= iforce.o
 
-obj-$(CONFIG_INPUT_ANALOG)	+= analog.o gameport.o
-obj-$(CONFIG_INPUT_A3D)		+= a3d.o gameport.o
-obj-$(CONFIG_INPUT_ADI)		+= adi.o gameport.o
-obj-$(CONFIG_INPUT_COBRA)	+= cobra.o gameport.o
-obj-$(CONFIG_INPUT_GF2K)	+= gf2k.o gameport.o
-obj-$(CONFIG_INPUT_GRIP)	+= grip.o gameport.o
-obj-$(CONFIG_INPUT_INTERACT)	+= interact.o gameport.o
-obj-$(CONFIG_INPUT_TMDC)	+= tmdc.o gameport.o
-obj-$(CONFIG_INPUT_SIDEWINDER)	+= sidewinder.o gameport.o
+obj-$(CONFIG_INPUT_ANALOG)	+= analog.o
+obj-$(CONFIG_INPUT_A3D)		+= a3d.o
+obj-$(CONFIG_INPUT_ADI)		+= adi.o
+obj-$(CONFIG_INPUT_COBRA)	+= cobra.o
+obj-$(CONFIG_INPUT_GF2K)	+= gf2k.o
+obj-$(CONFIG_INPUT_GRIP)	+= grip.o
+obj-$(CONFIG_INPUT_INTERACT)	+= interact.o
+obj-$(CONFIG_INPUT_TMDC)	+= tmdc.o
+obj-$(CONFIG_INPUT_SIDEWINDER)	+= sidewinder.o
 
 obj-$(CONFIG_INPUT_DB9)		+= db9.o
 obj-$(CONFIG_INPUT_GAMECON)	+= gamecon.o
diff -urN linux-2.4.5-ac4/include/linux/gameport.h linux/include/linux/gameport.h
--- linux-2.4.5-ac4/include/linux/gameport.h	Tue May 29 19:49:21 2001
+++ linux/include/linux/gameport.h	Wed May 30 18:03:14 2001
@@ -68,7 +68,7 @@
 void gameport_close(struct gameport *gameport);
 void gameport_rescan(struct gameport *gameport);
 
-#ifdef CONFIG_JOYSTICK
+#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

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

* Re: 2.4.5-ac4 es1371.o unresolved symbols
  2001-05-30 16:15   ` Vojtech Pavlik
@ 2001-05-31  1:29     ` Keith Owens
  2001-05-31  6:08       ` Vojtech Pavlik
  0 siblings, 1 reply; 10+ messages in thread
From: Keith Owens @ 2001-05-31  1:29 UTC (permalink / raw)
  To: Vojtech Pavlik; +Cc: Frank Davis, linux-kernel, Alan Cox

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.


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

* Re: 2.4.5-ac4 es1371.o unresolved symbols
  2001-05-31  1:29     ` Keith Owens
@ 2001-05-31  6:08       ` Vojtech Pavlik
  2001-05-31  7:52         ` Keith Owens
  0 siblings, 1 reply; 10+ messages in thread
From: Vojtech Pavlik @ 2001-05-31  6:08 UTC (permalink / raw)
  To: Keith Owens; +Cc: Frank Davis, linux-kernel, Alan Cox

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

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

* Re: 2.4.5-ac4 es1371.o unresolved symbols
  2001-05-31  6:08       ` Vojtech Pavlik
@ 2001-05-31  7:52         ` Keith Owens
  2001-05-31  8:06           ` Vojtech Pavlik
  0 siblings, 1 reply; 10+ messages in thread
From: Keith Owens @ 2001-05-31  7:52 UTC (permalink / raw)
  To: Vojtech Pavlik; +Cc: Frank Davis, linux-kernel, Alan Cox

On Thu, 31 May 2001 08:08:45 +0200, 
Vojtech Pavlik <vojtech@suse.cz> wrote:
>On Thu, May 31, 2001 at 11:29:06AM +1000, Keith Owens wrote:
>> 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

When the user has gameport hardware compiled it as a module and they
have es1371 bult into the kernel then es1371 silently ignores the
gameport, even if the gameport modules has been loaded.  This violates
the principle of least surprise, a user configuring both gameport and
es1371 expects to use the gameport, kbuild should support that instead
of silently ignoring the combination.


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

* Re: 2.4.5-ac4 es1371.o unresolved symbols
  2001-05-31  7:52         ` Keith Owens
@ 2001-05-31  8:06           ` Vojtech Pavlik
  2001-05-31  8:13             ` Vojtech Pavlik
  2001-05-31  8:34             ` Keith Owens
  0 siblings, 2 replies; 10+ messages in thread
From: Vojtech Pavlik @ 2001-05-31  8:06 UTC (permalink / raw)
  To: Keith Owens; +Cc: Frank Davis, linux-kernel, Alan Cox

On Thu, May 31, 2001 at 05:52:39PM +1000, Keith Owens wrote:

> On Thu, 31 May 2001 08:08:45 +0200, 
> Vojtech Pavlik <vojtech@suse.cz> wrote:
> >On Thu, May 31, 2001 at 11:29:06AM +1000, Keith Owens wrote:
> >> 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
> 
> When the user has gameport hardware compiled it as a module and they
> have es1371 bult into the kernel then es1371 silently ignores the
> gameport, even if the gameport modules has been loaded.  This violates
> the principle of least surprise, a user configuring both gameport and
> es1371 expects to use the gameport, kbuild should support that instead
> of silently ignoring the combination.

True. Is this worse than the ugliness in your patch?

-- 
Vojtech Pavlik
SuSE Labs

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

* Re: 2.4.5-ac4 es1371.o unresolved symbols
  2001-05-31  8:06           ` Vojtech Pavlik
@ 2001-05-31  8:13             ` Vojtech Pavlik
  2001-05-31  8:34             ` Keith Owens
  1 sibling, 0 replies; 10+ messages in thread
From: Vojtech Pavlik @ 2001-05-31  8:13 UTC (permalink / raw)
  To: Keith Owens; +Cc: Frank Davis, linux-kernel, Alan Cox

On Thu, May 31, 2001 at 10:06:54AM +0200, Vojtech Pavlik wrote:
> On Thu, May 31, 2001 at 05:52:39PM +1000, Keith Owens wrote:
> 
> > On Thu, 31 May 2001 08:08:45 +0200, 
> > Vojtech Pavlik <vojtech@suse.cz> wrote:
> > >On Thu, May 31, 2001 at 11:29:06AM +1000, Keith Owens wrote:
> > >> 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
> > 
> > When the user has gameport hardware compiled it as a module and they
> > have es1371 bult into the kernel then es1371 silently ignores the
> > gameport, even if the gameport modules has been loaded.  This violates
> > the principle of least surprise, a user configuring both gameport and
> > es1371 expects to use the gameport, kbuild should support that instead
> > of silently ignoring the combination.
> 
> True. Is this worse than the ugliness in your patch?

How about a warning displayed in the config process?

-- 
Vojtech Pavlik
SuSE Labs

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

* Re: 2.4.5-ac4 es1371.o unresolved symbols
  2001-05-31  8:06           ` Vojtech Pavlik
  2001-05-31  8:13             ` Vojtech Pavlik
@ 2001-05-31  8:34             ` Keith Owens
  1 sibling, 0 replies; 10+ messages in thread
From: Keith Owens @ 2001-05-31  8:34 UTC (permalink / raw)
  To: Vojtech Pavlik; +Cc: Frank Davis, linux-kernel, Alan Cox

On Thu, 31 May 2001 10:06:54 +0200, 
Vojtech Pavlik <vojtech@suse.cz> wrote:
>On Thu, May 31, 2001 at 05:52:39PM +1000, Keith Owens wrote:
>> When the user has gameport hardware compiled it as a module and they
>> have es1371 bult into the kernel then es1371 silently ignores the
>> gameport, even if the gameport modules has been loaded.  This violates
>> the principle of least surprise, a user configuring both gameport and
>> es1371 expects to use the gameport, kbuild should support that instead
>> of silently ignoring the combination.
>
>True. Is this worse than the ugliness in your patch?

Only kernel developers see the ugly patch.  The unexpected presence or
absence of gameport code affects all users.  User always win that
argument.  Adding a warning is just as bad, kbuild either generates a
valid config or nothing at all.  Users never check warnings anyway :(.


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

end of thread, other threads:[~2001-05-31  8:35 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-05-30  1:56 2.4.5-ac4 es1371.o unresolved symbols Frank Davis
2001-05-30  2:22 ` Keith Owens
2001-05-30  4:46 ` Keith Owens
2001-05-30 16:15   ` Vojtech Pavlik
2001-05-31  1:29     ` Keith Owens
2001-05-31  6:08       ` Vojtech Pavlik
2001-05-31  7:52         ` Keith Owens
2001-05-31  8:06           ` Vojtech Pavlik
2001-05-31  8:13             ` Vojtech Pavlik
2001-05-31  8:34             ` Keith Owens

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox