xml-xalan-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "David Bertoni (JIRA)" <xalan-...@xml.apache.org>
Subject [jira] Commented: (XALANC-588) Floating point exceptions in DoubleSupport::initialize() on Solaris 10 (x86)
Date Sat, 03 Dec 2005 01:57:30 GMT
    [ http://issues.apache.org/jira/browse/XALANC-588?page=comments#action_12359195 ] 

David Bertoni commented on XALANC-588:

The problem here is Sun's compiler and standard library are wildly inconsistent.  Solaris
SPARC _requires_ XALAN_NO_STD_NUMERIC_LIMITS while their x86 compiler doesn't.  In addition,
SPARC does not generate a floating point exception, while apparently the x86 compiler does.
 This behavior also seems different from building with the 32-bit x86 Sun compiler, which
does not exhibit this problem.

There are two things we need to investigate:

1. Can you please verify that your application does not make any changes to the default floating
point behavior of the application.

2. If your application does not explicitly modify the default floating point behavior, the
best choice here would be to determine if  a compiler option exists to change this behavior.
 Since XPath conformance requires arbitrary floating point calculation, and NaN is a valid
result in many cases, Xalan-C would not be conformant this behavior is not changed..

If possible, could you investigate whether the compiler supports such an option?


> Floating point exceptions in DoubleSupport::initialize() on Solaris 10 (x86)
> ----------------------------------------------------------------------------
>          Key: XALANC-588
>          URL: http://issues.apache.org/jira/browse/XALANC-588
>      Project: XalanC
>         Type: Bug
>   Components: XalanC
>     Versions: 1.10
>  Environment: Sun Solaris 10, Opteron chipset (x86/i386). XercesC++ 2.7  XalanC 1.10
> $ CC -V
> CC: Sun C++ 5.7 Patch 117831-02 2005/03/30
> $ cc -V
> cc: Sun C 5.7 Patch 117837-04 2005/05/11
> usage: cc [ options] files.  Use 'cc -flags' for details
>     Reporter: Sean Pearce

> A couple of issues.
> Prior to compiling, XERCESCROOT and XALANCROOT are configured to point the their respective
foliders, and the configurations used as follows:
> Xerces: ./runConfigure -p solaris -c cc -x CC -b 64 -P $P4SRCROOT/Tools/libs/64/SUN/xerces-c_2_7_0
> Xalan:   ./runConfigure -p solaris -c cc -x CC -b 64 -P $P4SRCROOT/Tools/libs/64/SUN/xalanc_1_10
> 1) To compile on this platform, the 'solaris' entries in runConfigure had to be changed
to use option '-xarch=amd64' in place of '-xarch=v9' (for XercesC and XalanC)
> 2) After building the libraries, our program was crashing in XalanTransformer::initialize();
(after calling XMLPlatformUtils::Initialize(); of course), with a Floating Point Exception
(FPE) in:
> void
> DoubleSupport::initialize()
> {
>     // We initialize this at here because some
>     // platforms have had issues with signals
>     // if we call sqrt(-2.01) during static
>     // initialization.
>     s_NaN.d = std::sqrt(-2.01);
> #else
>     s_NaN.d = sqrt(-2.01);
> #endif
> #elif !defined(XALAN_NO_STD_NAMESPACE)
>     // There seems to be problems with various standard libraries, so
>     // this is disabled for now.  We need to revisit this when we
>     // update our autoconf/automake system to detect the right value
>     // for NaN at configuration time.
>     // XALAN_STATIC_ASSERT(std::numeric_limits<double>::has_quiet_NaN);
> #endif
> Removing  #define XALAN_NO_STD_NUMERIC_LIMITS from the Include/SolarisDefinitions.hpp
fixes this problem.

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators:
For more information on JIRA, see:

To unsubscribe, e-mail: xalan-dev-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-dev-help@xml.apache.org

View raw message