[U-Boot] [PATCH 2/9] Fix bug when both DFU & ETHER are defined

Marek Vasut marex at denx.de
Thu Nov 29 07:30:07 CET 2012


Dear Pantelis Antoniou,

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

Ah, now I understand the problem at hand.

> 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

Can you not do "or" in conditional expression in Makefile?

> 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
[...]


More information about the U-Boot mailing list