Messages in this thread Patch in this message | | | Date | Tue, 18 Nov 2003 18:28:08 +0100 | From | Adrian Bunk <> | Subject | [2.4 patch] fix USB Gadget Config.in |
| |
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 - 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/
| |