> 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