www.digitalmars.com         C & C++   DMDScript  

D.gnu - Coping with a broken math lib ?

... or at least one that lacks several "long double"
functions, such as the one in Darwin 8.0.1 for x86:


It's OK for "powerpc", but the "i386" version wasn't up
to speed - so you got linker errors for missing symbols...


In other words, it's just like it says in std.c.math module:
     private import gcc.config;
     // unfortunately, these do not always exist in a library

It's been "fixed" in a newer version of Libm (in Darwin 8.4+),
but it would be "nice" if GDC could detect the missing ones ?

Perhaps fall back to using a "double" version, or other such
workaround ? The "real" type isn't 80 bits everywhere anyway.

I also fixed a ppc conditionalizing in the ldcompat part of it:
http://www.algonet.se/~afb/d/ldblcompat.d (a fix for i386/ppc64)

If you hack the references to all the missing math functions out,
*then* GDC works OK for Darwin 8 x86. Also works for Darwin 8 ppc.

But since Darwin 8.0.1 "ships" with gcc-4061 (i.e. gcc-4.0.0 based),
any 4.x based GDC needs to be built using: CC=gcc-3.3 CXX=g++-3.3

The same reason why gdcmac requires Xcode 2.2+, for Mac OS X 10.4...
(There won't be any Darwin binaries in the gdcmac project, just Mac)


Just wanted to know if it worked on "plain" Darwin too... It did. :-)
Feb 28 2006