From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeroen Hofstee Date: Sat, 30 May 2015 16:44:32 +0200 Subject: [U-Boot] Query on weak function for board specific initialisation In-Reply-To: <20150430125703.GB22106@Sanchayan-Arch.toradex.int> References: <20150430125703.GB22106@Sanchayan-Arch.toradex.int> Message-ID: <5569CCD0.7000202@myspectrum.nl> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hello Maity, On 30-04-15 14:57, maitysanchayan at gmail.com wrote: > Hello, > > I am trying to use a weak function in able to provide a board specific > initialisation. To be more specific, I am trying to use the __weak > board_ehci_hcd_init function in the usb driver code which is called in > ehci_hcd_init, the strong function being defined in the board file. > This is on lines similar to what I see in the ehci-mx6 driver and some > mx6 board files like nitrogen's. > > Getting a linker error on compiling which is perplexing me at the > moment. > > [snip] > drivers/usb/host/built-in.o: In function `ehci_hcd_init': > /home/sanchayan/uboot/u-boot/drivers/usb/host/ehci-vf.c:185: > undefined reference to `board_echi_hcd_init' > /home/sanchayan/gcc-linaro/bin/arm-linux-gnueabihf-ld.bfd: BFD > (crosstool-NG linaro-1.13.1-2012.09-20120921 - Linaro GCC 2012.09) 2.22 > assertion fail > /cbuild/slaves/oort14/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/src/binutils-2.22/bfd/elf32-arm.c:7498 > /home/sanchayan/gcc-linaro/bin/arm-linux-gnueabihf-ld.bfd: BFD > (crosstool-NG linaro-1.13.1-2012.09-20120921 - Linaro GCC 2012.09) 2.22 > assertion fail > /cbuild/slaves/oort14/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/src/binutils-2.22/bfd/elf32-arm.c:13830 > /bin/sh: line 1: 1110 Segmentation fault (core dumped) > > Perhaps I am overlooking something trivial? I suppose you found this already, but for completeness, you made a typo: board_ehci_hcd_init board_echi_hcd_init To prevent trouble like this, the compiler should actually be set to warn if there is no prototype... Regards, Jeroen