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
