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

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to