Andy Dougherty wrote:
On Mon, Mar 23, 2009 at 8:26 AM, Reini Urban <[email protected]> wrote:
2009/3/22 Andy Dougherty via RT <[email protected]>:
Well, it's not really completely resolved, but I couldn't think  of a
better status for it.  The *BSD versions are resolved, and Solaris is
half-resolved (works with Sun's cc, fails with gcc).

This issue is now listed in Trac as TT #205, so we can close the RT
version of the ticket and keep the Trac version open.
IMHO it should have be solved by this config/gen/platform/solaris/math.c entry:

#include <math.h>
#if defined(__GNUC__) && defined(_LIB_VERSION)
   _LIB_VERSION_TYPE _LIB_VERSION = _IEEE_;
#endif

Maybe _LIB_VERSION is not defined?

It is not solved by that bit of code. At least on Solaris 8, _LIB_VERSION is not defined. Nor is _LIB_VERSION_TYPE. That bit of code is just irrelevant. It has never been useful there. It was worth trying, but it doesn't do anything.

But that bit of code might be the hint we're looking for. In my math.h on Solaris 10 there are these definitions:

enum version {libm_ieee = -1, c_issue_4, ansi_1, strict_ansi};
extern const enum version _lib_version;

wrapped in

#if defined(__EXTENSIONS__) || !defined(_XOPEN_SOURCE)

So I've verified that Solaris cc has a method of either setting or linking against a correct constant for _lib_version with -xlibmieee. Unfortunately it really is constant, so trying to trick it just results in a segfault :( A quick Google search didn't give me any hints either and I haven't had the time to dig deeper, yet.

RG.

_______________________________________________
http://lists.parrot.org/mailman/listinfo/parrot-dev

Reply via email to