[U-Boot] [PATCH v2] Make linking against libgcc configurable

Daniel Gorsulowski Daniel.Gorsulowski at esd.eu
Thu Jul 23 15:28:06 CEST 2009


Hi Wolfgang,

buid on meesc board (arm) is still broken.
It's roughly the same problem, as Heiko Schocher reported in
4A6854B1.5000205 at denx.de. But his patch doesn't fix the problem either.

danielg at debby:~/git/u-boot$ make USE_PRIVATE_LIBGCC=yes
...
drivers/mtd/nand/libnand.a(nand_base.o): In function `nand_do_write_oob':
/data/home/danielg/git/u-boot/drivers/mtd/nand/nand_base.c:2019: undefined reference to `__lshrdi3'
drivers/mtd/nand/libnand.a(nand_base.o): In function `nand_erase_nand':
/data/home/danielg/git/u-boot/drivers/mtd/nand/nand_base.c:2199: undefined reference to `__lshrdi3'
/data/home/danielg/git/u-boot/drivers/mtd/nand/nand_base.c:2198: undefined reference to `__lshrdi3'
drivers/mtd/nand/libnand.a(nand_base.o): In function `nand_do_read_oob':
/data/home/danielg/git/u-boot/drivers/mtd/nand/nand_base.c:1519: undefined reference to `__lshrdi3'
drivers/mtd/nand/libnand.a(nand_bbt.o): In function `search_bbt':
/data/home/danielg/git/u-boot/drivers/mtd/nand/nand_bbt.c:482: undefined reference to `__lshrdi3'
drivers/mtd/nand/libnand.a(nand_bbt.o):/data/home/danielg/git/u-boot/drivers/mtd/nand/nand_bbt.c:413: more undefined references to `__lshrdi3' follow
lib_generic/libgeneric.a(vsprintf.o): In function `put_dec':
/data/home/danielg/git/u-boot/lib_generic/vsprintf.c:242: undefined reference to `__umoddi3'
/data/home/danielg/git/u-boot/lib_generic/vsprintf.c:242: undefined reference to `__udivdi3'
lib_generic/libgeneric.a(vsprintf.o): In function `number':
/data/home/danielg/git/u-boot/lib_generic/vsprintf.c:306: undefined reference to `__lshrdi3'
make: *** [u-boot] Error 1

Best regards, Daniel


Wolfgang Denk wrote:
> Many (especially ARM) tool chains seem to come with broken or
> otherwise unusable (for the purposes of builing U-Boot) run-time
> support libraries `libgcc.a'. By using the "USE_PRIVATE_LIBGCC"
> setting we allow to use alternative libraries instead.
> 
> "USE_PRIVATE_LIBGCC" can either be set as an environment variable in
> the shell, or as a command line argument when running "make", i. e.
> 	$ make USE_PRIVATE_LIBGCC=yes
> or
> 	$ USE_PRIVATE_LIBGCC=yes
> 	$ export USE_PRIVATE_LIBGCC
> 	$ make
> 
> The value of "USE_PRIVATE_LIBGCC" is the name of the directory which
> contains the alternative run-time support library `libgcc.a'. The
> special value "yes" selects the directory $(OBJTREE)/lib_$(ARCH) .
> 
> Note that not all architectures provide an alternative `libgcc.a' in
> their lib_$(ARCH) directories - so far, only ARM does.
> 
> Signed-off-by: Wolfgang Denk <wd at denx.de>
...


More information about the U-Boot mailing list