[U-Boot] sparc and .udiv/.rem/.urem/.umul/etc... link errors

Mike Frysinger vapier at gentoo.org
Thu Oct 13 17:44:53 CEST 2011


On Thursday 13 October 2011 04:45:27 Daniel Hellstrom wrote:
> On 10/13/2011 07:33 AM, Mike Frysinger wrote:
> > it seems that these symbols are usually implemented in the C library on
> > sparc systems, but under u-boot, we don't have that luxury.  Linux
> > itself simply imports the relevant asm files from glibc into their lib
> > subdir.  without these, building u-boot for sparc targets with sparc
> > linux compilers fail.  any desire to make this work ?  or just continue
> > to force everyone to install a dedicated sparc-elf compiler ?
> 
> The .udiv/.rem ... functions are implemented by libgcc

that is target dependent

> Sparc-linux toolchains will generate ELF binaries for Linux, that is not
> what we want?

the file format is fine, but the supplementary libgcc for sparc-linux targets 
does not include these symbols.  it relies on the C library to provide them.

glibc sparc system:
$ readelf -s /lib/libc.so.6 | grep '[.]u'
  1231: 000f41e0    20 FUNC    GLOBAL DEFAULT   10 .urem@@GLIBC_2.0
  1369: 000f41a0    12 FUNC    GLOBAL DEFAULT   10 .udiv@@GLIBC_2.0
  1557: 000f4160    20 FUNC    GLOBAL DEFAULT   10 .umul@@GLIBC_2.0

and if you look at gcc's source tree in gcc/config/sparc/t-*, you'll see that 
these libgcc routines are included for elf and leon targets, but not linux.

so whenever i build u-boot using a sparc-linux-gnu cross-compiler, it fails to 
link due to missing these symbols.  if i use sparc-elf, it links fine.
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
Url : http://lists.denx.de/pipermail/u-boot/attachments/20111013/471b387d/attachment.pgp 


More information about the U-Boot mailing list