BTW, Peter, great work you're doing getting the Autobuild projects up to
date again.

In message <[email protected]>
          Peter Naulls <[email protected]> wrote:

> Peter Naulls wrote:
> > 
> 
> > (ffmpeg)
> > /usr/src/gccsdk/build/ffmpeg/trunk/libavcodec/libavcodec.a(opt.o): In 
> > function `av_set_string3':
> > libavcodec/opt.c:162: undefined reference to `__isnan'
> > /usr/src/gccsdk/build/ffmpeg/trunk/libavcodec/libavcodec.a(aaccoder.o): 
> > In function `search_for_quantizers_anmr':
> > libavcodec/aaccoder.c:558: undefined reference to `__isinff'
> > libavcodec/aaccoder.c:568: undefined reference to `__isinff'
> > libavcodec/aaccoder.c:542: undefined reference to `__isinff'
> > libavcodec/aaccoder.c:542: undefined reference to `__isinff'
> > libavcodec/aaccoder.c:568: undefined reference to `__isinff'
> > /usr/src/gccsdk/build/ffmpeg/trunk/libavcodec/libavcodec.a(ratecontrol.o): 
> > In function `get_qscale':
> > libavcodec/ratecontrol.c:342: undefined reference to `__isnan'
> > /usr/src/gccsdk/build/ffmpeg/trunk/libavcodec/libavcodec.a(nellymoserenc.o):
> >  
> > In function `get_exponent_dynamic':
> > libavcodec/nellymoserenc.c:234: undefined reference to `__isinff'
> 
> So the problem here is to do with symbol visibility.  e.g: in s_isinf:
> 
> #include "math.h"
> #include "math_private.h"
> 
> int
> __isinf (double x)
> {
>          int32_t hx,lx;
>          EXTRACT_WORDS(hx,lx,x);
>          lx |= (hx & 0x7fffffff) ^ 0x7ff00000;
>          lx |= -lx;
>          return ~(lx >> 31) & (hx >> 30);
> }
> hidden_def (__isinf)
> weak_alias (__isinf, isinf)
> #ifdef NO_LONG_DOUBLE
> strong_alias (__isinf, __isinfl)
> weak_alias (__isinf, isinfl)
> #endif
> 
> This is only done in a few of the math files, and I see the SVN comment
> from 2006.  I suspect, and John will have to confirm, that this is no
> longer correct.  I will change it locally and see if it helpss

I'm not sure which commit you're referring to but in the past those
math sources got changes in order to be buildable by Norcroft.  Those
changes were all undone (as far as I know) in UnixLib 5 as we dropped
Norcroft support.  So they are the same versions as Nick checked them
originally in.

*A* fix would be to remove the hidden_def() statements but I'm unsure
why they were in the first place and secondly why a library thinks it
should be able to use __isinff() and not isinff().  I doubt the removal
is the right solution.

John.
-- 
John Tytgat, in his comfy chair at home                                 BASS
[email protected]                             ARM powered, RISC OS driven

_______________________________________________
GCCSDK mailing list [email protected]
Bugzilla: http://www.riscos.info/bugzilla/index.cgi
List Info: http://www.riscos.info/mailman/listinfo/gcc
Main Page: http://www.riscos.info/index.php/GCCSDK

Reply via email to