This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug middle-end/24998] [4.2 Regression] Build failure on sparc-sun-solaris2.9/arm: undefined symbol __floatunsitf



------- 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]