Message:

  A new issue has been created in JIRA.

---------------------------------------------------------------------
View the issue:
  http://issues.apache.org/jira/browse/XERCESC-1252

Here is an overview of the issue:
---------------------------------------------------------------------
        Key: XERCESC-1252
    Summary: Compilation problem on IRIX 6.5 with MIPSpro Compilers: Version 7.41
       Type: Bug

     Status: Unassigned
   Priority: Major

    Project: Xerces-C++
 Components: 
             Build
   Versions:
             2.5.0

   Assignee: 
   Reporter: Marcus Mohr

    Created: Tue, 10 Aug 2004 10:14 AM
    Updated: Tue, 10 Aug 2004 10:14 AM
Environment: IRIX 6.5
MIPSpro Compilers: Version 7.41

Description:
Hi,

I was trying to built xerces-c version 2.5.0 on an IRIX 6.5 using MIPSpro compilers 
version 7.41. 

After having enabled namespace support in MIPSproDefs.hpp by commenting in #define 
XERCES_HAS_CPP_NAMESPACE, I configured xerces using the following command line

./runConfigure -pirix -ccc -xCC -b64 -P<myPrefix>

This went fine. The successive gmake, however, ran into problems. CC reported six 
errors of the following type when compiling 
DOMDocumentImpl.cpp:

using precompiled header file "DOMDocumentImpl.pch".
cc-1220 CC: ERROR File = DOMDeepNodeListPool.c, Line = 78
  The function
          "xercesc_2_5::DOMDeepNodeListPool<TVal>::DOMDeepNodeListPool(XMLSize_
          t, bool, XMLSize_t)" has already been defined.

Checking the sources a little bit, I think that the problem is the
following. DOMDocumentImpl.cpp explicitely includes both, DOMDeepNodeListPool.c and 
DOMDeepNodeListPool.hpp. Since XERCES_TMPSINC was not defined during inclusion 
DOMDeepNodeListPool.hpp did not in turn include DOMDeepNodeListPool.c.

However, now a feature of the IRIX C++ compiler comes into play. By
default the compiler uses auto inclusion. This means that it will
try to include template definition files, if necessary. Thus, it will
include DOMDeepNodeListPool.c twice, once explicitely and once implicitely via 
automatic inclusion through DOMDeepNodeList.hpp.

Fortunately this behaviour of the compiler can be changed by the
-no_auto_include option. If this is specified in ./runConfigure
compilation goes fine. And the samples I tested work also.

My suggestions are the following:

1) Make XERCES_HAS_CPP_NAMESPACE the default in MIPSproDefs.hpp
2) Add -no_auto_include to PLATFORM_COMPILE_OPTIONS for IRIX

Another point that I did not recognise in the beginning was that
specifying -b64 will define things like the -DXML_BITSTOBUILD_64
macro, but a little bit surprisingly :) it will not instruct the compiler to generate 
64-bit objects. I only noted that when trying
to link the library with our application code.

The remedy of course is to specify -z -64 -l -64 to runConfigure,
but it might be worth trying to handle this automatically.

Cheers
Marcus



---------------------------------------------------------------------
JIRA INFORMATION:
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

If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to