[U-Boot] [PATCH 2/9] Fix bug when both DFU & ETHER are defined
Pantelis Antoniou
panto at antoniou-consulting.com
Wed Nov 28 09:24:13 CET 2012
Hi Marek,
On Nov 28, 2012, at 4:43 AM, Marek Vasut wrote:
> Dear Pantelis Antoniou,
>
>> When both CONFIG_USB_GADGET & CONFIG_USB_ETHER are defined
>> the makefile links objects twice.
>>
>> Detect this and fix it with a not very elegant way in the
>> makefile. Revisit and clean it later.
>>
>> Signed-off-by: Pantelis Antoniou <panto at antoniou-consulting.com>
>> ---
>> drivers/usb/gadget/Makefile | 13 +++++++++++--
>> 1 file changed, 11 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/usb/gadget/Makefile b/drivers/usb/gadget/Makefile
>> index 040eaba..15206cd 100644
>> --- a/drivers/usb/gadget/Makefile
>> +++ b/drivers/usb/gadget/Makefile
>> @@ -26,14 +26,23 @@ include $(TOPDIR)/config.mk
>> LIB := $(obj)libusb_gadget.o
>>
>> # new USB gadget layer dependencies
>> +
>> +# ugh; ugh; ugh common objects included twice
>> +ifdef CONFIG_USB_GADGET
>> + COBJS-y += epautoconf.o config.o usbstring.o
>> +else
>> + ifdef CONFIG_USB_ETHER
>> + COBJS-y += epautoconf.o config.o usbstring.o
>> + endif
>> +endif
>
> COBJS-$(CONFIG_ST) += st.o
> COBJS-$(CONFIG_ST_ELSE) += st_else.o
>
> if (both selected)
> scream and die.
>
I fail to see how that would work for the problem at hand, namely
that if both CONFIG_USB_GADGET & CONFIG_USB_ETHER are defined
epautoconf.o config.o usbstring.o are linked twice.
The proper thing to do would be to have a config symbol enabled
when either CONFIG_USB_GADGET & CONFIG_USB_ETHER are defined.
Something like
#if defined(CONFIG_USB_GADGET) || defined(CONFIG_USB_ETHER)
#define CONFIG_USB_GADGET_PLUMPING
#endif
in a header file someplace and do
COBJS-$(CONFIG_USB_GADGET_PLUMPING) += epautoconf.o config.o usbstring.o
etc.
This would require putting it either in every board file, or in a core
usb header.
The patch was the least intrusive method.
Regards
-- Pantelis
>> +
>> ifdef CONFIG_USB_GADGET
>> -COBJS-y += epautoconf.o config.o usbstring.o
>> COBJS-$(CONFIG_USB_GADGET_S3C_UDC_OTG) += s3c_udc_otg.o
>> COBJS-$(CONFIG_USBDOWNLOAD_GADGET) += g_dnl.o
>> COBJS-$(CONFIG_DFU_FUNCTION) += f_dfu.o
>> endif
>> ifdef CONFIG_USB_ETHER
>> -COBJS-y += ether.o epautoconf.o config.o usbstring.o
>> +COBJS-y += ether.o
>> COBJS-$(CONFIG_USB_ETH_RNDIS) += rndis.o
>> COBJS-$(CONFIG_MV_UDC) += mv_udc.o
>> COBJS-$(CONFIG_CPU_PXA25X) += pxa25x_udc.o
>
> Best regards,
> Marek Vasut
More information about the U-Boot
mailing list