I have successfully built Xerces-C 1.1.0, using the Sun Visual Workshop
C++ 5.0 compiler on a Sun Sparc Ultra 2 running Solaris 7.

Note that users of C++ 5.0 cannot use the binaries generated with the
(now obsolete) C++ 4.2 compiler; see
http://docs.sun.com:80/ab2/coll.32.5/CPPMIGRATE/@Ab2PageView/1236?Ab2Lang=C&Ab2Enc=iso-8859-1
.

The port is not straightforward, because there are problems in template
instantiation.

Static template instantiation fails with the following error message:
ld: fatal: symbol
`RefHashTableOfEnumerator<DTDAttDef>::~RefHashTableOfEnumerator
#Nvariant 1()' is multiply defined:
        (file /usr/local/misc/tools/src/xerces-c-src_1_1_0/obj/DTDAttDefList.o
and file
/usr/local/misc/tools/src/xerces-c-src_1_1_0/obj/DTDElementDecl.o);

I do not know why this error occurs; perhaps in C++ 5.0 the scope of a
templated child's destructor must be global to ensure that it is called
(rather than the parent) during garbage collection?

External template instantiation cannot be used because the current build
scheme copies object files are to a new location before library
construction (but does not copy the template database).

My solution uses explicit template instantiation.  I wrote a short C++
file that explicitly instantiates each template needed by the
xerces-c1_1 library.  I would be glad to submit it to the Apache
Software Foundation if there is interest in this port.

I do not subscribe to the xerces-dev mailing list because I do not have
time to read it so please contact me directly.
-- 
      ____
=====/ ___   Dr. Gary M. Heiligman          tel:       650-604-1006
====/ / __   Sterling Software              FAX:       650-604-0985
===/ / /==   NASA Ames Research Center
__/ / /===   Mail Stop 207-1                Sterling SOFIA Projects
___/ /====   Moffett Field, CA 94035-1000     office:  650-604-1100  
____/=====   [EMAIL PROTECTED]

Reply via email to