Sparc32 compile errors

Rob Landley rob at landley.net
Thu Jul 12 18:49:46 UTC 2007


On Thursday 12 July 2007 1:02:29 pm Blue Swirl wrote:
> Hi,
>
> I'm trying to compile uClibc using buildroot, but I get these error
> messages: CC libc/sysdeps/linux/common/mmap64.os
> libc/sysdeps/linux/common/mmap64.c: In function 'mmap64':
> libc/sysdeps/linux/common/mmap64.c:66: error: '__ulong_t' undeclared
> (first use in this function)
> libc/sysdeps/linux/common/mmap64.c:66: error: (Each undeclared
> identifier is reported only once
> libc/sysdeps/linux/common/mmap64.c:66: error: for each function it appears
> in.) libc/sysdeps/linux/common/mmap64.c:66: error: expected ')' before
> 'offset'
>
> For this problem I made the attached patch, after applying that mmap64
> compiles fine.

I need to fix my mercurial mirror so I can see what has and hasn't already 
been applied...

> But I still get other errors:
> libc/libc_so.a(_fpmaxtostr.os): In function `_fpmaxtostr':
> _fpmaxtostr.c:(.text+0xf0): undefined reference to `_Q_fne'
> _fpmaxtostr.c:(.text+0x13c): undefined reference to `_Q_feq'
> _fpmaxtostr.c:(.text+0x188): undefined reference to `_Q_div'
> _fpmaxtostr.c:(.text+0x1b0): undefined reference to `_Q_flt'
> _fpmaxtostr.c:(.text+0x2a0): undefined reference to `_Q_mul'
> _fpmaxtostr.c:(.text+0x53c): undefined reference to `_Q_fge'
> _fpmaxtostr.c:(.text+0x634): undefined reference to `_Q_qtou'
> _fpmaxtostr.c:(.text+0x644): undefined reference to `_Q_utoq'
> _fpmaxtostr.c:(.text+0x67c): undefined reference to `_Q_sub'
> libc/libc_so.a(vfprintf.os): In function `vfprintf':
> vfprintf.c:(.text+0x504): undefined reference to `_Q_dtoq'
> libc/libc_so.a(__psfs_do_numeric.os): In function `__psfs_do_numeric':
> __psfs_do_numeric.c:(.text+0x604): undefined reference to `_Q_qtod'
> __psfs_do_numeric.c:(.text+0x61c): undefined reference to `_Q_qtos'
> libc/libc_so.a(strtof.os): In function `strtof':
> strtof.c:(.text+0x44): undefined reference to `_Q_stoq'
> libc/libc_so.a(__strtofpmax.os): In function `__strtofpmax':
> __strtofpmax.c:(.text+0x19c): undefined reference to `_Q_itoq'
> __strtofpmax.c:(.text+0x20c): undefined reference to `_Q_add'
>
> These are 128-bit float functions, right? Can I disable 128-bit
> floating point arithmetic somehow? No Sparc CPUs implement the
> instructions anyway.

In theory gcc should be supplying them as soft float in libgcc.a (or 
libgcc_s.so).  On a 64 bit platform, "long long" is 128 bits.

Rob
-- 
"One of my most productive days was throwing away 1000 lines of code."
  - Ken Thompson.



More information about the uClibc mailing list