I got the following link error in 2.4.23-rc1:
<-- snip -->
...
ld -m elf_i386 -r -o built-in.o net2280.o g_zero.o g_ether.o
g_ether.o(.text+0x1bc0): In function `usb_gadget_get_string':
: multiple definition of `usb_gadget_get_string'
g_zero.o(.text+0x1100): first defined here
make[3]: *** [built-in.o] Error 1
make[3]: Leaving directory
`/home/bunk/linux/kernel-2.4/linux-2.4.23-rc1-full/drivers/usb/gadget'
<-- snip -->
.config contained the following:
<-- snip -->
...
#
# Support for USB gadgets
#
CONFIG_USB_GADGET=y
#
# USB Peripheral Controller Drivers
#
# CONFIG_USB_GADGET_CONTROLLER is not set
CONFIG_USB_NET2280=y
CONFIG_USB_GADGET_CONTROLLER=y
#
# USB Gadget Drivers
#
CONFIG_USB_ZERO=y
CONFIG_USB_ZERO_NET2280=y
CONFIG_USB_ETH=y
CONFIG_USB_ETH_NET2280=y
...
<-- snip -->
The patch below fixes this issue.
The main change is to remove the problematic
define_tristate CONFIG_USB_GADGET_CONTROLLER n
and solving it different, and allowing a statically CONFIG_USB_ETH only
when CONFIG_USB_ZERO isn't statically.
cu
Adrian
--- linux-2.4.23-rc1-full/drivers/usb/gadget/Config.in.old 2003-11-18
02:39:48.000000000 +0100
+++ linux-2.4.23-rc1-full/drivers/usb/gadget/Config.in 2003-11-18 12:06:12.000000000
+0100
@@ -5,8 +5,7 @@
# Long term, this likely doesn't all belong in one directory
# Plan to split it up eventually.
#
-# CAREFUL! Some versions of "xconfig" don't execute this correctly.
-#
+
mainmenu_option next_comment
comment 'Support for USB gadgets'
@@ -19,16 +18,15 @@
#
comment 'USB Peripheral Controller Drivers'
- # assume all the dependencies may be undefined ("== true", yeech)
- define_tristate CONFIG_USB_GADGET_CONTROLLER n
- if [ "$CONFIG_PCI" = "y" ] ; then
- tristate ' NetChip 2280 support' CONFIG_USB_NET2280
+ dep_tristate ' NetChip 2280 support' CONFIG_USB_NET2280 $CONFIG_PCI
+
+ if [ "$CONFIG_USB_NET2280" = "y" -o "$CONFIG_USB_NET2280" = "m" ]; then
define_tristate CONFIG_USB_GADGET_CONTROLLER $CONFIG_USB_NET2280
+ else
+ define_tristate CONFIG_USB_GADGET_CONTROLLER n
fi
- # pxa2xx_udc, goku_udc, and others also work on 2.4 ...
-
- if [ "$CONFIG_USB_GADGET_CONTROLLER" = "y" -o "$CONFIG_USB_GADGET_CONTROLLER" = "m"
] ; then
+ if [ "$CONFIG_USB_GADGET_CONTROLLER" != "n" ]; then
#
# no reason not to enable more than one gadget driver module, but
@@ -43,9 +41,20 @@
#
# (b) specific hardware features like iso endpoints may be required
#
+ # at most one gadget driver is allowed to be compiled statically
+ # into the kernel
+ #
+
comment 'USB Gadget Drivers'
- dep_tristate ' Gadget Zero (DEVELOPMENT)' CONFIG_USB_ZERO
$CONFIG_USB_GADGET_CONTROLLER
+ dep_tristate ' Gadget Zero (DEVELOPMENT)' CONFIG_USB_ZERO
$CONFIG_USB_GADGET_CONTROLLER
+
+ if [ "$CONFIG_USB_ZERO" != "y" ]; then
+ dep_tristate ' Ethernet Gadget (EXPERIMENTAL)' CONFIG_USB_ETH
$CONFIG_USB_GADGET_CONTROLLER $CONFIG_NET $CONFIG_EXPERIMENTAL
+ else
+ dep_tristate ' Ethernet Gadget (EXPERIMENTAL)' CONFIG_USB_ETH $CONFIG_NET
$CONFIG_EXPERIMENTAL m
+ fi
+
if [ "$CONFIG_USB_ZERO" = "y" -o "$CONFIG_USB_ZERO" = "m" ]; then
if [ "$CONFIG_USB_NET2280" = "y" -o "$CONFIG_USB_NET2280" = "m" ]; then
define_bool CONFIG_USB_ZERO_NET2280 y
@@ -56,8 +65,7 @@
fi fi fi
# ...
fi
-
- dep_tristate ' Ethernet Gadget (EXPERIMENTAL)' CONFIG_USB_ETH
$CONFIG_USB_GADGET_CONTROLLER $CONFIG_NET
+
if [ "$CONFIG_USB_ETH" = "y" -o "$CONFIG_USB_ETH" = "m" ]; then
if [ "$CONFIG_USB_NET2280" = "y" -o "$CONFIG_USB_NET2280" = "m" ]; then
define_bool CONFIG_USB_ETH_NET2280 y
-------------------------------------------------------
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive? Does it
help you create better code? SHARE THE LOVE, and help us help
YOU! Click Here: http://sourceforge.net/donate/
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel