linux-next: allyesconfig build failure in drivers/usb/gadget
Hello all,
I'm not sure if this is a known issue or not...
I was trying an allyesconfig build of linux-next (next-20120224) and got this:
drivers/usb/built-in.o: In function `usb_descriptor_fillbuf':/home/bigguiness/src/git/linux-next/drivers/usb/gadget/config.c:38: multiple definition of usb_descriptor_fillbuf' drivers/target/built-in.o:/home/bigguiness/src/git/linux-next/drivers/usb/gadget/config.c:38: first defined here drivers/usb/built-in.o: In function usb_string_ids_n':/home/bigguiness/src/git/linux-next/drivers/usb/gadget/composite.c:994: multiple definition of usb_string_ids_n' drivers/target/built-in.o:/home/bigguiness/src/git/linux-next/drivers/usb/gadget/composite.c:994: first defined here drivers/usb/built-in.o: In function usb_interface_id':/home/bigguiness/src/git/linux-next/drivers/usb/gadget/composite.c:341: multiple definition of usb_interface_id' drivers/target/built-in.o:/home/bigguiness/src/git/linux-next/drivers/usb/gadget/composite.c:341: first defined here drivers/usb/built-in.o: In function usb_string_id':/home/bigguiness/src/git/linux-next/drivers/usb/gadget/composite.c:932: multiple definition of usb_string_id' drivers/target/built-in.o:/home/bigguiness/src/git/linux-next/drivers/usb/gadget/composite.c:932: first defined here drivers/usb/built-in.o: In function usb_string_ids_tab':/home/bigguiness/src/git/linux-next/drivers/usb/gadget/composite.c:960: multiple definition of usb_string_ids_tab' drivers/target/built-in.o:/home/bigguiness/src/git/linux-next/drivers/usb/gadget/composite.c:960: first defined here drivers/usb/built-in.o: In function usb_copy_descriptors':/home/bigguiness/src/git/linux-next/drivers/usb/gadget/config.c:124: multiple definition of usb_copy_descriptors' drivers/target/built-in.o:/home/bigguiness/src/git/linux-next/drivers/usb/gadget/config.c:124: first defined here drivers/usb/built-in.o: In function usb_composite_unregister':/home/bigguiness/src/git/linux-next/drivers/usb/gadget/composite.c:1602: multiple definition of usb_composite_unregister' drivers/target/built-in.o:/home/bigguiness/src/git/linux-next/drivers/usb/gadget/composite.c:1602: first defined here drivers/usb/built-in.o: In function config_ep_by_speed':/home/bigguiness/src/git/linux-next/drivers/usb/gadget/composite.c:119: multiple definition of config_ep_by_speed' drivers/target/built-in.o:/home/bigguiness/src/git/linux-next/drivers/usb/gadget/composite.c:119: first defined here drivers/usb/built-in.o: In function usb_gadget_get_string':/home/bigguiness/src/git/linux-next/drivers/usb/gadget/usbstring.c:41: multiple definition of usb_gadget_get_string' drivers/target/built-in.o:/home/bigguiness/src/git/linux-next/drivers/usb/gadget/usbstring.c:41: first defined here drivers/usb/built-in.o: In function usb_add_function':/home/bigguiness/src/git/linux-next/drivers/usb/gadget/composite.c:209: multiple definition of usb_add_function' drivers/target/built-in.o:/home/bigguiness/src/git/linux-next/drivers/usb/gadget/composite.c:209: first defined here drivers/usb/built-in.o: In function usb_composite_probe':/home/bigguiness/src/git/linux-next/drivers/usb/gadget/composite.c:1576: multiple definition of usb_composite_probe' drivers/target/built-in.o:/home/bigguiness/src/git/linux-next/drivers/usb/gadget/composite.c:1576: first defined here drivers/usb/built-in.o: In function usb_composite_setup_continue':/home/bigguiness/src/git/linux-next/drivers/usb/gadget/composite.c:1619: multiple definition of usb_composite_setup_continue' drivers/target/built-in.o:/home/bigguiness/src/git/linux-next/drivers/usb/gadget/composite.c:1619: first defined here drivers/usb/built-in.o: In function usb_gadget_config_buf':/home/bigguiness/src/git/linux-next/drivers/usb/gadget/config.c:84: multiple definition of usb_gadget_config_buf' drivers/target/built-in.o:/home/bigguiness/src/git/linux-next/drivers/usb/gadget/config.c:84: first defined here drivers/usb/built-in.o: In function usb_ep_autoconfig':/home/bigguiness/src/git/linux-next/drivers/usb/gadget/epautoconf.c:367: multiple definition of usb_ep_autoconfig' drivers/target/built-in.o:/home/bigguiness/src/git/linux-next/drivers/usb/gadget/epautoconf.c:367: first defined here drivers/usb/built-in.o: In function usb_function_activate':/home/bigguiness/src/git/linux-next/drivers/usb/gadget/composite.c:298: multiple definition of usb_function_activate' drivers/target/built-in.o:/home/bigguiness/src/git/linux-next/drivers/usb/gadget/composite.c:298: first defined here drivers/usb/built-in.o: In function usb_ep_autoconfig_reset':/home/bigguiness/src/git/linux-next/drivers/usb/gadget/epautoconf.c:382: multiple definition of usb_ep_autoconfig_reset' drivers/target/built-in.o:/home/bigguiness/src/git/linux-next/drivers/usb/gadget/epautoconf.c:382: first defined here drivers/usb/built-in.o: In function usb_add_config':/home/bigguiness/src/git/linux-next/drivers/usb/gadget/composite.c:713: multiple definition of usb_add_config' drivers/target/built-in.o:/home/bigguiness/src/git/linux-next/drivers/usb/gadget/composite.c:713: first defined here drivers/usb/built-in.o: In function usb_ep_autoconfig_ss':/home/bigguiness/src/git/linux-next/drivers/usb/gadget/epautoconf.c:265: multiple definition of usb_ep_autoconfig_ss' drivers/target/built-in.o:/home/bigguiness/src/git/linux-next/drivers/usb/gadget/epautoconf.c:265: first defined here drivers/usb/built-in.o: In function usb_function_deactivate':/home/bigguiness/src/git/linux-next/drivers/usb/gadget/composite.c:271: multiple definition of `usb_function_deactivate' drivers/target/built-in.o:/home/bigguiness/src/git/linux-next/drivers/usb/gadget/composite.c:271: first defined here make[1]: *** [drivers/built-in.o] Error 1
make: *** [drivers] Error 2
It appears config.c, composite.c, usbstring.c, and epautoconf.c are not actually built separately during the make but are #include'd by various other sources. All of these files have functions that are not marked static so we end up with the 'multiple definition' errors.
Should these files be compiled separately and treated as a gadget library?
Regards,
Hartley
Quoted 3 lines · H Hartley Sweeten
Hello all,
I'm not sure if this is a known issue or not...
<snip>
Yes, it is, see the archives, people are working on it (or I hope they are...)
thanks,
greg k-h