From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marek Vasut Date: Thu, 29 Nov 2012 07:30:07 +0100 Subject: [U-Boot] [PATCH 2/9] Fix bug when both DFU & ETHER are defined In-Reply-To: References: <1354106642-4587-1-git-send-email-panto@antoniou-consulting.com> <201211280343.52011.marex@denx.de> Message-ID: <201211290730.07653.marex@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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 > >> --- > >> 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 [...]