> Problem 1. After the changes, this call crashes on AIX
> 5.2. Works finw on hp, linux, solaris and windows. 
> The stack trace shows something thats weird like
> below.  Anybody have any idea
> <---------------------------->
> dbx) where
> .() at 0x0
> __negpow2() at 0xd6b0ef40
> __negpow2() at 0xd6b03ac4
> unnamed block $b3811, line 621 in "arxml.cpp"
> InitXMLParser(0x2ff22828), line 621 in "arxml.cpp"
> Initialization(0x1, 0x2ff22918), line 877 in
> "startup.cpp"
> main(argc = 1, argv = 0x2ff22918), line 9882 in
> "arrpcsvc.c"
> (dbx) q
> <---------------------------->

I can't reproduce this, but it may be related to a call Xalan-C makes to 
get the platform's value for NaN.  You could try to modifying the 
following code in 
xml-xalan/c/src/xalanc/PlatformSupport/DoubleSupport.cpp:

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.
#if defined(XALAN_STRICT_ANSI_HEADERS)
    s_NaN.d = std::sqrt(-2.01);
#else
    s_NaN.d = sqrt(-2.01);
#endif
}

Comment out the call to sqrt() and see if that fixes the crash.  If it 
does, that's a problem, because Xalan-C needs a way to determine this 
value, and it seems to work fine with the Xalan executable.  Did you try 
running the Xalan executable to see if it exhibits the same problem?  If 
it doesn't, perhaps you are linking your application differently, or you 
are modifying signals, or the default floating point behavior.

> Problem2: I am trying to build xalan in debug mode to
> be able to debug through a crash I am seeing on AIX. 
> Release build works fine.  But debug build throws this
> compile error. Is there a known problem with
> XalanVector.hpp. 
...
> line 405.5: 1540-0704 (S) The definitions of "void
> xalanc_1_9::XalanVector<xalanc_1_9::XalanDOMString
> *,struct
> xalanc_1_9::MemoryManagedConstructionTraits<xala..."
> and "void
> xalanc_1_9::XalanVector<xalanc_1_9::XalanDOMString
> *,struct
> xalanc_1_9::MemoryManagedConstructionTraits<xala..."
> have the same linkage signature
> 
"insert__Q2_10xalanc_1_911XalanVectorXTPQ2_10xalanc_1_914XalanDOMStringTQ2_10xalanc_1_931MemoryManagedConstruction...".

This is a nasty compiler bug.  As a work-around, you can add the switch 
-qstaticinline to the xlC command line.  The easiest way to do this is to 
modify the generated Makefile.incl.  You can also use the runConfigure 
switch -z and supply -qstaticinline.

Dave

Reply via email to