[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <063D6719AE5E284EB5DD2968C1650D6D0F70D180@AcuExch.aculab.com>
Date: Tue, 6 May 2014 13:17:21 +0000
From: David Laight <David.Laight@...LAB.COM>
To: 'Geert Uytterhoeven' <geert@...ux-m68k.org>,
Felipe Balbi <balbi@...com>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Ben Dooks <ben.dooks@...ethink.co.uk>
CC: "linux-usb@...r.kernel.org" <linux-usb@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: RE: [PATCH/RFC] usb: gadget: CONFIG_USB_S3C_HSOTG should depend on
HAS_DMA
From: Geert Uytterhoeven
> If NO_DMA=y:
>
> drivers/built-in.o: In function `s3c_hsotg_map_dma':
> s3c-hsotg.c:(.text+0x375b2c): undefined reference to `usb_gadget_map_request'
> drivers/built-in.o: In function `s3c_hsotg_unmap_dma':
> s3c-hsotg.c:(.text+0x376a32): undefined reference to `usb_gadget_unmap_request'
> make[3]: *** [vmlinux] Error 1
>
> Note that all callers of s3c_hsotg_map_dma()/s3c_hsotg_unmap_dma() are
> protected by a call into the using_dma() checking function:
>
> static inline bool using_dma(struct s3c_hsotg *hsotg)
> {
> return false; /* support is not complete */
> }
>
> but not all versions of gcc manage to optimize the check away, causing a
> link error.
A have seen gcc optimise away a call, but leave the undefined symbol
in the symbol table.
That might be what is happening here.
I don't know a generic solution, I used 'objcopy -N__udivdi3' to remove
the explicit unwanted reference from my driver.
David
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists