------- Comment #8 from joseph at codesourcery dot com  2005-11-23 14:54 -------
Subject: Re:  [4.2 Regression] Build failure on
 sparc-sun-solaris2.9/arm: undefined symbol __floatunsitf

On Wed, 23 Nov 2005, rearnsha at gcc dot gnu dot org wrote:

> Not that simple, because the implementation of __floatunsidf is tightly
> integrated with the implementation of __adddf3.  And we don't want to
> override that because the ieee754-df.S implementation does not support
> raising signals.

In that case there's the possibility of a trivial C implementation along 
the lines of

double __floatunsidf (unsigned i)
{
  double r = (double)(int)i;
  if ((int)i < 0)
    r += 0x1p32f;
  return r;
}

(with a bit more complexity for correct rounding in the "float" case, as 
expand_float does).  Adding such implementations to libgcc2.c is the 
simplest workaround for this bug, but I'd hope that most issues can be 
resolved separately so such implementations are only needed in the case of 
__float* in libc.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24998

Reply via email to