[ 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? Thanks! > 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() > { > #if defined(XALAN_NO_STD_NUMERIC_LIMITS) > // We initialize this at here because some > // platforms have had issues with signals > // if we call sqrt(-2.01) during static > // initialization. > #if defined(XALAN_STRICT_ANSI_HEADERS) > 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: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
