From 5e31b86a7f1d6bf64d76f894c19540efad04da3b Mon Sep 17 00:00:00 2001
From: Rahul Jain <rahulj@apache.org>
Date: Wed, 1 Dec 1999 17:16:18 +0000
Subject: [PATCH] Added support for IRIX 6.5.5 using SGI MIPSpro C++ 7.3 and
 7.21 generating 32 bit objects. Changes submitted by Marc Stuessel

git-svn-id: https://svn.apache.org/repos/asf/xerces/c/trunk@171447 13f79535-47bb-0310-9956-ffa450edef68
---
 src/Makefile.incl                             |  44 +-
 src/configure                                 |   1 +
 src/configure.in                              |   1 +
 src/runConfigure                              |  15 +-
 src/util/AutoSense.hpp                        |  14 +-
 src/util/Compilers/MIPSproDefs.cpp            |  83 +++
 src/util/Compilers/MIPSproDefs.hpp            |  99 +++
 src/util/Compilers/Makefile.in                |   7 +
 src/util/Platforms/IRIX/IRIXDefs.hpp          |  71 ++
 src/util/Platforms/IRIX/IRIXPlatformUtils.cpp | 672 ++++++++++++++++++
 src/util/Platforms/Makefile.in                |   8 +
 src/util/XML4CDefs.hpp                        |  11 +
 12 files changed, 993 insertions(+), 33 deletions(-)
 create mode 100644 src/util/Compilers/MIPSproDefs.cpp
 create mode 100644 src/util/Compilers/MIPSproDefs.hpp
 create mode 100644 src/util/Platforms/IRIX/IRIXDefs.hpp
 create mode 100644 src/util/Platforms/IRIX/IRIXPlatformUtils.cpp

diff --git a/src/Makefile.incl b/src/Makefile.incl
index 476b3315c..8cb16f4b6 100644
--- a/src/Makefile.incl
+++ b/src/Makefile.incl
@@ -55,6 +55,9 @@
 # 
 #
 # $Log$
+# Revision 1.6  1999/12/01 17:16:15  rahulj
+# Added support for IRIX 6.5.5 using SGI MIPSpro C++ 7.3 and 7.21 generating 32 bit objects. Changes submitted by Marc Stuessel
+#
 # Revision 1.5  1999/11/23 01:59:28  rahulj
 # Code now works under HPUX 11. Tested inmemory message loader.
 Revamped makefiles. Builds with both DCE threads as well as pthread libraries.
@@ -105,7 +108,7 @@ Revamped makefiles. Builds with both DCE threads as well as pthread libraries.
 
 ALL:    all
 
-ALL_OBJECTS_DIR = ${XERCESCROOT}/obj
+ALL_OBJECTS_DIR   = ${XERCESCROOT}/obj
 
 XML_BUILD_OPTIONS = ${CXXFLAGS}
 
@@ -151,8 +154,6 @@ endif
 
 #=============== LINUX SPECIFIC OPTIONS =========================
 ifeq (${PLATFORM}, LINUX)
-#PLATFORM_CPP_COMPILER = g++
-#PLATFORM_C_COMPILER = gcc
 PLATFORM_COMPILE_OPTIONS = -fpic -instances=static -D${PLATFORM} -D_REENTRANT
 MAKE_SHARED = ${CXX} -D${PLATFORM} -shared -fpic
 MAKE_SHARED_C = ${CC} -D${PLATFORM} -shared -fpic
@@ -160,6 +161,19 @@ ALLLIBS = ${LIBS} -L/usr/lib -L/usr/local/lib -L/usr/ccs/lib -lc
 SHLIBSUFFIX=.so
 endif
 
+#=============== IRIX SPECIFIC OPTIONS ============================
+ifeq (${PLATFORM}, IRIX)
+PLATFORM_COMPILE_OPTIONS = -mips4 -LANG:pch -LANG:std -O2 \
+                           -D${PLATFORM} -D_REENTRANT \
+                           -I/usr/local/include
+OBJ_OUT=${XML4CROOT}/obj/
+MAKE_SHARED = ${CXX} -D${PLATFORM} -shared
+MAKE_SHARED_C = ${CC} -D${PLATFORM} -shared
+ALLLIBS = -L/usr/lib32 -lC
+SHLIBSUFFIX=.so
+endif
+
+
 #=============== OS2 SPECIFIC OPTIONS =========================
 ifeq (${PLATFORM}, OS/2)
 #PLATFORM_CPP_COMPILER = icc
@@ -192,9 +206,6 @@ ifeq (${PLATFORM}, HPUX)
     ALLLIBS = ${LIBS} -lCsup -lstream
     SHLIBSUFFIX=.sl
   else
-#    ifneq (${DEBUG}, 1)
-#      XML_BUILD_OPTIONS = +O1
-#    endif
     TEMPLATESREPOSITORY = ${ALL_OBJECTS_DIR}/ptrepository
     COMMON_COMPILE_OPTIONS = -D_HP_UX -DXML4C_TMPLSINC \
         -D${OSVERDEFINE} +DAportable +eh +z -z +a1
@@ -253,24 +264,6 @@ ECHO = echo
 CREATE_DEPENDS_FILE = echo "" > depends
 MAKE_DEPEND = ${CC1} -E -xM
 
-########################## DIRECTORIES ############################
-#ifeq (${MESSAGELOADER}, ICU)
-#    INTL_INC_DIR1 = $(ICUROOT)/include
-#endif
-#ifeq (${TRANSCODER}, ICU)
-#    INTL_INC_DIR1 = $(ICUROOT)/include
-#endif
-
-#################### COMPILE/LINK FLAGS ###########################
-#ifeq (${MESSAGELOADER}, ICU)
-#    XML_INCL = -I. -I$(XML_INC_DIR) -I$(INTL_INC_DIR1)
-#else
-#    ifeq (${TRANSCODER}, ICU)
-#        XML_INCL = -I. -I$(XML_INC_DIR) -I$(INTL_INC_DIR1)
-#    else
-#        XML_INCL = -I. -I$(XML_INC_DIR)
-#    endif
-#endif
 
 ##################### HELPER MACROS ###############################
 DEPFILE = depends
@@ -282,6 +275,9 @@ LINKLIB = $(XML_LIB_DIR)
 
 .cpp.o:
 	$(CC1) -c $(XML_BUILD_OPTIONS) $(XML_DEF) $(XML_INCL) $(EXTRA_COMPILE_OPTIONS) -o $(@) $(<)
+ifeq (${PLATFORM}, IRIX)
+	$(CC1) -c $(XML_BUILD_OPTIONS) $(XML_DEF) $(XML_INCL) $(EXTRA_COMPILE_OPTIONS) -o $(OBJ_OUT)$(@) $(<)
+endif
 
 .c.o:
 	$(JUST_CC) -c $(XML_BUILD_OPTIONS) $(XML_DEF) $(XML_INCL) $(EXTRA_COMPILE_OPTIONS) -o $(@) $(<)
diff --git a/src/configure b/src/configure
index 20bc2d1f7..a72877ab0 100755
--- a/src/configure
+++ b/src/configure
@@ -1299,6 +1299,7 @@ echo "$ac_t""$host" 1>&6
 case "${host}" in
         *-*-solaris*)   platform=SOLARIS ;;
         *-*-linux*)     platform=LINUX ;;
+        *-*-irix*)      platform=IRIX ;;
         *-*-aix*)       platform=AIX ;;
         *-*-hp*)        platform=HPUX ;
                         case "${host}" in
diff --git a/src/configure.in b/src/configure.in
index da9b368d8..5891b4431 100644
--- a/src/configure.in
+++ b/src/configure.in
@@ -31,6 +31,7 @@ dnl Platform-specific Makefile setup
 case "${host}" in
         *-*-solaris*)   platform=SOLARIS ;;
         *-*-linux*)     platform=LINUX ;;
+        *-*-irix*)      platform=IRIX ;;
         *-*-aix*)       platform=AIX ;;
         *-*-hp*)        platform=HPUX ;
                         case "${host}" in
diff --git a/src/runConfigure b/src/runConfigure
index edc14a16b..ff9d16b82 100755
--- a/src/runConfigure
+++ b/src/runConfigure
@@ -58,6 +58,9 @@
 # 
 #
 # $Log$
+# Revision 1.7  1999/12/01 17:16:16  rahulj
+# Added support for IRIX 6.5.5 using SGI MIPSpro C++ 7.3 and 7.21 generating 32 bit objects. Changes submitted by Marc Stuessel
+#
 # Revision 1.6  1999/11/24 23:21:42  rahulj
 # Now works under HPUX 10.20 with CC and aCC, with ICU and native
 distclean target now remove and remaining Makefile(s)
@@ -100,12 +103,12 @@ usage()
     echo "runConfigure: Helper script to run \"configure\" for one of the supported platforms"
     echo "Usage: runConfigure \"options\""
     echo "       where options may be any of the following:"
-    echo "       -p <platform> (accepts 'aix', 'linux', 'solaris', 'hp-10', 'hp-11')"
-    echo "       -c <C compiler name> (e.g. gcc or xlc)"
-    echo "       -x <C++ compiler name> (e.g. g++ or xlC)"
+    echo "       -p <platform> (accepts 'aix', 'linux', 'solaris', 'hp-10', 'hp-11', 'irix')"
+    echo "       -c <C compiler name> (e.g. gcc, cc, xlc)"
+    echo "       -x <C++ compiler name> (e.g. g++, CC, xlC)"
     echo "       -d (specifies that you want to build debug version)"
-    echo "       -m <message loader> can be 'inmem', 'icu' or 'iconv'"
-    echo "       -n <net accessor> can be 'fileonly' or 'libwww'"
+    echo "       -m <message loader> can be 'inmem', 'icu', 'iconv'"
+    echo "       -n <net accessor> can be 'fileonly', 'libwww'"
     echo "       -t <transcoder> can be 'icu' or 'native'"
     echo "       -r <thread option> can be 'pthread' or 'dce' (only used on HP-11)"
     echo "       -l <extra linker options>"
@@ -206,7 +209,7 @@ echo "Thread option: $thread"
 #
 
 case $platform in
-   aix | linux | solaris | hp-10 | hp-11)
+   aix | linux | solaris | hp-10 | hp-11 | irix)
        # platform has been recognized
        ;;
    *)
diff --git a/src/util/AutoSense.hpp b/src/util/AutoSense.hpp
index 3295062d1..5b087d6a2 100644
--- a/src/util/AutoSense.hpp
+++ b/src/util/AutoSense.hpp
@@ -56,8 +56,11 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:03:55  twl
- * Initial revision
+ * Revision 1.2  1999/12/01 17:16:16  rahulj
+ * Added support for IRIX 6.5.5 using SGI MIPSpro C++ 7.3 and 7.21 generating 32 bit objects. Changes submitted by Marc Stuessel
+ *
+ * Revision 1.1.1.1  1999/11/09 01:03:55  twl
+ * Initial checkin
  *
  * Revision 1.2  1999/11/08 20:45:03  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -69,7 +72,7 @@
 
 // ---------------------------------------------------------------------------
 //  This section attempts to auto detect the operating system. It will set
-//  up XML4C specific defines that are used by the rest of the code.
+//  up XercesC specific defines that are used by the rest of the code.
 // ---------------------------------------------------------------------------
 #if defined(_AIX)
     #define XML_AIX
@@ -85,6 +88,9 @@
 #elif defined(__linux__)
     #define XML_LINUX
     #define XML_UNIX
+#elif defined(IRIX)
+    #define XML_IRIX
+    #define XML_UNIX
 #elif defined(__MVS__)
     #define XML_OE390
     #define XML_UNIX
@@ -149,6 +155,8 @@
     #elif (__cplusplus == 199707 || __cplusplus == 199711)
         #define XML_HPUX_aCC
     #endif
+#elif defined(XML_IRIX)
+    #define XML_MIPSPRO_CC
 #elif defined(XML_TANDEM)
     #define XML_TANDEMCC
 #elif defined(__linux__)
diff --git a/src/util/Compilers/MIPSproDefs.cpp b/src/util/Compilers/MIPSproDefs.cpp
new file mode 100644
index 000000000..1f5373eac
--- /dev/null
+++ b/src/util/Compilers/MIPSproDefs.cpp
@@ -0,0 +1,83 @@
+/*
+ * The Apache Software License, Version 1.1
+ * 
+ * Copyright (c) 1999 The Apache Software Foundation.  All rights 
+ * reserved.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer. 
+ * 
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ * 
+ * 3. The end-user documentation included with the redistribution,
+ *    if any, must include the following acknowledgment:  
+ *       "This product includes software developed by the
+ *        Apache Software Foundation (http://www.apache.org/)."
+ *    Alternately, this acknowledgment may appear in the software itself,
+ *    if and wherever such third-party acknowledgments normally appear.
+ * 
+ * 4. The names "Xerces" and "Apache Software Foundation" must
+ *    not be used to endorse or promote products derived from this
+ *    software without prior written permission. For written 
+ *    permission, please contact apache\@apache.org.
+ * 
+ * 5. Products derived from this software may not be called "Apache",
+ *    nor may "Apache" appear in their name, without prior written
+ *    permission of the Apache Software Foundation.
+ * 
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * ====================================================================
+ * 
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation, and was
+ * originally based on software copyright (c) 1999, International
+ * Business Machines, Inc., http://www.ibm.com .  For more information
+ * on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ */
+
+/**
+ * $Log$
+ * Revision 1.1  1999/12/01 17:16:17  rahulj
+ * Added support for IRIX 6.5.5 using SGI MIPSpro C++ 7.3 and 7.21 generating 32 bit objects. Changes submitted by Marc Stuessel
+ *
+ */
+
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <util/Compilers/MIPSproDefs.hpp>
+#include <strings.h>
+
+
+int stricmp(const char* const str1, const char* const  str2) 
+{
+    return strcasecmp(str1, str2);
+}
+
+int strnicmp(const char* const str1, const char* const  str2, const unsigned int count)
+{
+    if (count == 0)
+        return 0;
+
+    return strncasecmp( str1, str2, (size_t)count);
+}
diff --git a/src/util/Compilers/MIPSproDefs.hpp b/src/util/Compilers/MIPSproDefs.hpp
new file mode 100644
index 000000000..243c95365
--- /dev/null
+++ b/src/util/Compilers/MIPSproDefs.hpp
@@ -0,0 +1,99 @@
+/*
+ * The Apache Software License, Version 1.1
+ * 
+ * Copyright (c) 1999 The Apache Software Foundation.  All rights 
+ * reserved.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer. 
+ * 
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ * 
+ * 3. The end-user documentation included with the redistribution,
+ *    if any, must include the following acknowledgment:  
+ *       "This product includes software developed by the
+ *        Apache Software Foundation (http://www.apache.org/)."
+ *    Alternately, this acknowledgment may appear in the software itself,
+ *    if and wherever such third-party acknowledgments normally appear.
+ * 
+ * 4. The names "Xerces" and "Apache Software Foundation" must
+ *    not be used to endorse or promote products derived from this
+ *    software without prior written permission. For written 
+ *    permission, please contact apache\@apache.org.
+ * 
+ * 5. Products derived from this software may not be called "Apache",
+ *    nor may "Apache" appear in their name, without prior written
+ *    permission of the Apache Software Foundation.
+ * 
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * ====================================================================
+ * 
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation, and was
+ * originally based on software copyright (c) 1999, International
+ * Business Machines, Inc., http://www.ibm.com .  For more information
+ * on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ */
+
+/**
+ * $Log$
+ * Revision 1.1  1999/12/01 17:16:17  rahulj
+ * Added support for IRIX 6.5.5 using SGI MIPSpro C++ 7.3 and 7.21 generating 32 bit objects. Changes submitted by Marc Stuessel
+ *
+ */
+
+
+// ---------------------------------------------------------------------------
+// Define these away for this platform
+// ---------------------------------------------------------------------------
+#define PLATFORM_EXPORT
+#define PLATFORM_IMPORT
+
+
+// ---------------------------------------------------------------------------
+//  Define our version of the XML character
+// ---------------------------------------------------------------------------
+typedef unsigned short XMLCh;
+typedef unsigned short UTF16Ch;
+
+
+// ---------------------------------------------------------------------------
+//  Define unsigned 16 and 32 bits integers
+// ---------------------------------------------------------------------------
+typedef unsigned short  XMLUInt16;
+typedef unsigned int    XMLUInt32;
+
+
+// ---------------------------------------------------------------------------
+//  Provide prototypes for some string methods that are not always available
+//  on all platforms.
+// ---------------------------------------------------------------------------
+int stricmp(const char* const str1, const char* const  str2);
+int strnicmp(const char* const str1, const char* const  str2, const unsigned int count);
+
+// ---------------------------------------------------------------------------
+//  The name of the DSO that is built by the MIPSpro C++ version of the
+//  system. We append a previously defined token which holds the DSO
+//  versioning string. This is defined in XML4CDefs.hpp which is what this
+//  file is included into.
+// ---------------------------------------------------------------------------
+const char* const XML4C_DLLName = "libxerces-c";
diff --git a/src/util/Compilers/Makefile.in b/src/util/Compilers/Makefile.in
index 5069db85f..77ac568f9 100644
--- a/src/util/Compilers/Makefile.in
+++ b/src/util/Compilers/Makefile.in
@@ -55,6 +55,9 @@
 # 
 #
 # $Log$
+# Revision 1.3  1999/12/01 17:16:17  rahulj
+# Added support for IRIX 6.5.5 using SGI MIPSpro C++ 7.3 and 7.21 generating 32 bit objects. Changes submitted by Marc Stuessel
+#
 # Revision 1.2  1999/11/23 02:00:13  rahulj
 # Code now works under HPUX 11. Tested inmemory message loader.
 Revamped makefiles. Builds with both DCE threads as well as pthread libraries.
@@ -96,6 +99,7 @@ CPP_PUBHEADERS = \
 	IBMVAW32Defs.hpp \
 	SunCCDefs.hpp \
 	SunKaiDefs.hpp \
+    MIPSproDefs.hpp \
 	TandemCCDefs.hpp \
 	VCPPDefs.hpp
 
@@ -107,6 +111,9 @@ ifeq (${CXX},CC)
     ifeq (${PLATFORM},HPUX)
         CPP_OBJECTS = HPCCDefs.o
     endif
+    ifeq (${PLATFORM},IRIX)
+        CPP_OBJECTS = MIPSproDefs.o
+    endif
 endif
 ifeq (${CXX},xlC_r)
     CPP_OBJECTS = CSetDefs.o
diff --git a/src/util/Platforms/IRIX/IRIXDefs.hpp b/src/util/Platforms/IRIX/IRIXDefs.hpp
new file mode 100644
index 000000000..b890b3942
--- /dev/null
+++ b/src/util/Platforms/IRIX/IRIXDefs.hpp
@@ -0,0 +1,71 @@
+/*
+ * The Apache Software License, Version 1.1
+ * 
+ * Copyright (c) 1999 The Apache Software Foundation.  All rights 
+ * reserved.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer. 
+ * 
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ * 
+ * 3. The end-user documentation included with the redistribution,
+ *    if any, must include the following acknowledgment:  
+ *       "This product includes software developed by the
+ *        Apache Software Foundation (http://www.apache.org/)."
+ *    Alternately, this acknowledgment may appear in the software itself,
+ *    if and wherever such third-party acknowledgments normally appear.
+ * 
+ * 4. The names "Xerces" and "Apache Software Foundation" must
+ *    not be used to endorse or promote products derived from this
+ *    software without prior written permission. For written 
+ *    permission, please contact apache\@apache.org.
+ * 
+ * 5. Products derived from this software may not be called "Apache",
+ *    nor may "Apache" appear in their name, without prior written
+ *    permission of the Apache Software Foundation.
+ * 
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * ====================================================================
+ * 
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation, and was
+ * originally based on software copyright (c) 1999, International
+ * Business Machines, Inc., http://www.ibm.com .  For more information
+ * on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ */
+
+/**
+ * $Log$
+ * Revision 1.1  1999/12/01 17:16:17  rahulj
+ * Added support for IRIX 6.5.5 using SGI MIPSpro C++ 7.3 and 7.21 generating 32 bit objects. Changes submitted by Marc Stuessel
+ *
+ */
+
+
+// ---------------------------------------------------------------------------
+//  IRIX runs in big endian mode
+// ---------------------------------------------------------------------------
+
+#define ENDIANMODE_BIG
+typedef void* FileHandle;
+
diff --git a/src/util/Platforms/IRIX/IRIXPlatformUtils.cpp b/src/util/Platforms/IRIX/IRIXPlatformUtils.cpp
new file mode 100644
index 000000000..b7ea44377
--- /dev/null
+++ b/src/util/Platforms/IRIX/IRIXPlatformUtils.cpp
@@ -0,0 +1,672 @@
+/*
+ * The Apache Software License, Version 1.1
+ * 
+ * Copyright (c) 1999 The Apache Software Foundation.  All rights 
+ * reserved.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer. 
+ * 
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ * 
+ * 3. The end-user documentation included with the redistribution,
+ *    if any, must include the following acknowledgment:  
+ *       "This product includes software developed by the
+ *        Apache Software Foundation (http://www.apache.org/)."
+ *    Alternately, this acknowledgment may appear in the software itself,
+ *    if and wherever such third-party acknowledgments normally appear.
+ * 
+ * 4. The names "Xerces" and "Apache Software Foundation" must
+ *    not be used to endorse or promote products derived from this
+ *    software without prior written permission. For written 
+ *    permission, please contact apache\@apache.org.
+ * 
+ * 5. Products derived from this software may not be called "Apache",
+ *    nor may "Apache" appear in their name, without prior written
+ *    permission of the Apache Software Foundation.
+ * 
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * ====================================================================
+ * 
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation, and was
+ * originally based on software copyright (c) 1999, International
+ * Business Machines, Inc., http://www.ibm.com .  For more information
+ * on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ */
+
+/**
+ * $Log$
+ * Revision 1.1  1999/12/01 17:16:18  rahulj
+ * Added support for IRIX 6.5.5 using SGI MIPSpro C++ 7.3 and 7.21 generating 32 bit objects. Changes submitted by Marc Stuessel
+ *
+ */
+
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+
+#ifndef APP_NO_THREADS
+#include    <pthread.h>
+#endif
+
+#include    <unistd.h>
+#include    <stdio.h>
+#include    <stdlib.h>
+#include    <errno.h>
+#include    <libgen.h>
+#include    <sys/timeb.h>
+#include    <string.h>
+#include    <util/PlatformUtils.hpp>
+#include    <util/RuntimeException.hpp>
+#include    <util/Janitor.hpp>
+#include    <util/Mutexes.hpp>
+#include    <util/XMLString.hpp>
+#include    <util/XMLUni.hpp>
+
+
+#if defined(XML_USE_ICU_TRANSCODER)
+    #include <util/Transcoders/ICU/ICUTransService.hpp>
+#else
+    // Use native transcoder. Same as -DXML_USE_NATIVE_TRANSCODER
+    #include <util/Transcoders/Iconv/IconvTransService.hpp>
+#endif
+
+
+#if defined(XML_USE_ICU_MESSAGELOADER)
+    #include <util/MsgLoaders/ICU/ICUMsgLoader.hpp>
+
+#else
+    // Same as -DXML_USE_INMEM_MESSAGELOADER
+    #include <util/MsgLoaders/InMemory/InMemMsgLoader.hpp>
+#endif
+
+
+
+// ---------------------------------------------------------------------------
+//  Local Methods
+// ---------------------------------------------------------------------------
+
+static void WriteCharStr( FILE* stream, const char* const toWrite)
+{
+    if (fputs(toWrite, stream) == EOF)
+    {
+        ThrowXML(XMLPlatformUtilsException,
+                 XML4CExcepts::Strm_StdErrWriteFailure);
+    }
+}
+
+static void WriteUStrStdErr( const XMLCh* const toWrite)
+{
+    char* tmpVal = XMLString::transcode(toWrite);
+    ArrayJanitor<char> janText(tmpVal);
+    if (fputs(tmpVal, stderr) == EOF)
+    {
+       ThrowXML(XMLPlatformUtilsException,
+                XML4CExcepts::Strm_StdErrWriteFailure);
+   }
+}
+
+static void WriteUStrStdOut( const XMLCh* const toWrite)
+ {
+    char* tmpVal = XMLString::transcode(toWrite);
+    ArrayJanitor<char> janText(tmpVal);
+    if (fputs(tmpVal, stdout) == EOF)
+    {
+        ThrowXML(XMLPlatformUtilsException,
+                 XML4CExcepts::Strm_StdOutWriteFailure);
+    }
+}
+
+XMLNetAccessor* XMLPlatformUtils::makeNetAccessor()
+{
+    return 0;
+}
+
+
+// -----------------------------------------------------------------------
+//  Standard out/error support
+// -----------------------------------------------------------------------
+
+void XMLPlatformUtils::writeToStdErr(const char* const toWrite)
+{
+    WriteCharStr(stderr, toWrite);
+}
+void XMLPlatformUtils::writeToStdErr(const XMLCh* const toWrite)
+{
+    WriteUStrStdErr(toWrite);
+}
+void XMLPlatformUtils::writeToStdOut(const XMLCh* const toWrite)
+{
+    WriteUStrStdOut(toWrite);
+}
+void XMLPlatformUtils::writeToStdOut(const char* const toWrite)
+{
+    WriteCharStr(stdout, toWrite);
+}
+
+
+// ---------------------------------------------------------------------------
+//  XMLPlatformUtils: Platform init method
+// ---------------------------------------------------------------------------
+
+static XMLMutex atomicOpsMutex;
+
+
+
+void XMLPlatformUtils::platformInit()
+{
+    //
+    // The atomicOps mutex needs to be created early.
+    // Normally, mutexes are created on first use, but there is a
+    // circular dependency between compareAndExchange() and
+    // mutex creation that must be broken.
+    atomicOpsMutex.fHandle = XMLPlatformUtils::makeMutex();
+
+    // Here you would also set the fgLibLocation global variable
+    // XMLPlatformUtils::fgLibLocation is the variable to be set
+
+    static const char*  libEnvVar = "LD_LIBRARY_PATH";
+    char*               libraryPath = 0;
+    char                libName[256];
+
+    // Construct the library name from the global variables
+
+    strcpy(libName, XML4C_DLLName);
+    strcat(libName, gXML4CVersionStr);
+    strcat(libName, ".so");
+
+    char* libEnvVar = getenv(sharedLibEnvVar);
+    char* libPath = NULL;
+
+    if (libEnvVar == NULL)
+    {
+        panic(XMLPlatformUtils::Panic_CantFindLib);
+    }
+
+    //
+    // Its necessary to create a copy because strtok() modifies the
+    // string as it returns tokens. We don't want to modify the string
+    // returned to by getenv().
+    //
+
+    libPath = new char[strlen(libEnvVar) + 1];
+    strcpy(libPath, libEnvVar);
+
+
+    // First do the searching process for the first directory listing
+
+    char*  allPaths = libPath;
+    char*  libPathName;
+
+    while ((libPathName = strtok(allPaths, ":")) != NULL)
+    {
+        FILE*  dummyFptr = 0;
+        allPaths = 0;
+
+        char* libfile = new char[strlen(libPathName) + strlen(libName) + 2];
+        strcpy(libfile, libPathName);
+        strcat(libfile, "/");
+        strcat(libfile, libName);
+
+        dummyFptr = (FILE *) fopen(libfile, "rb");
+        delete [] libfile;
+        if (dummyFptr != NULL)
+        {
+            fclose(dummyFptr);
+            libraryPath = new char[strlen(libPathName)+1];
+            strcpy((char *) libraryPath, libPathName);
+            break;
+        }
+
+    } // while
+
+    delete libPath;
+
+    XMLPlatformUtils::fgLibLocation = libraryPath;
+
+    if (XMLPlatformUtils::fgLibLocation == NULL)
+    {
+        panic(XMLPlatformUtils::Panic_CantFindLib);
+    }
+
+}
+
+
+// ---------------------------------------------------------------------------
+//  XMLPlatformUtils: Private Static Methods
+// ---------------------------------------------------------------------------
+
+//
+//  This method is called by the platform independent part of this class
+//  when client code asks to have one of the supported message sets loaded.
+//
+
+XMLMsgLoader* XMLPlatformUtils::loadAMsgSet(const XMLCh* const msgDomain)
+{
+    XMLMsgLoader* retVal;
+    try
+    {
+#if defined (XML_USE_ICU_MESSAGELOADER)
+        retVal = new ICUMsgLoader(msgDomain);
+#else
+        // same as -DXML_USE_INMEM_MESSAGELOADER
+        retVal = new InMemMsgLoader(msgDomain);
+#endif
+    }
+
+    catch(...)
+    {
+        panic(XMLPlatformUtils::Panic_CantLoadMsgDomain);
+    }
+    return retVal;
+}
+
+
+//
+//  This method is called very early in the bootstrapping process. This guy
+//  must create a transcoding service and return it. It cannot use any string
+//  methods, any transcoding services, throw any exceptions, etc... It just
+//  makes a transcoding service and returns it, or returns zero on failure.
+//
+
+XMLTransService* XMLPlatformUtils::makeTransService()
+{
+#if defined (XML_USE_ICU_TRANSCODER)
+    //
+    //  We need to figure out the path to the Intl converter files.
+    //
+
+    static const char * icuDataEnvVar   = "ICU_DATA";
+    char *              intlPath        = 0;
+
+    char* envVal = getenv(icuDataEnvVar);
+
+    // Check if environment variable is set...
+    if (envVal != NULL)
+    {
+        unsigned int pathLen = strlen(envVal);
+        intlPath = new char[pathLen + 2];
+
+        strcpy((char *) intlPath, envVal);
+        if (envVal[pathLen - 1] != '/')
+        {
+            strcat((char *) intlPath, "/");
+        }
+
+        ICUTransService::setICUPath(intlPath);
+        delete intlPath;
+
+        return new ICUTransService;
+    }
+
+    //
+    //  If the environment variable ICU_DATA is not set, assume that the
+    //  converter files are stored relative to the Xerces-C library.
+    //
+
+    unsigned int  lent = strlen(XMLPlatformUtils::fgLibLocation) +
+                         strlen("/icu/data/") + 1;
+    intlPath = new char[lent];
+    strcpy(intlPath, XMLPlatformUtils::fgLibLocation);
+    strcat(intlPath, "/icu/data/");
+
+    ICUTransService::setICUPath(intlPath);
+    delete intlPath;
+
+    return new ICUTransService;
+
+
+#else
+
+    // Use native transcoding services.
+    // same as -DXML_USE_INMEM_MESSAGELOADER
+    return new IconvTransService;
+
+#endif
+
+} // XMLPlatformUtils::makeTransService
+
+
+
+// ---------------------------------------------------------------------------
+//  XMLPlatformUtils: The panic method
+// ---------------------------------------------------------------------------
+void XMLPlatformUtils::panic(const PanicReasons reason)
+{
+    //
+    //  We just print a message and exit
+    //
+    
+    fprintf(stderr,
+        "The Xerces-C system could not be initialized.\n");
+    fprintf(stderr,
+        "If you are using ICU, then the most likely reason for this failure\n");
+    fprintf(stderr,
+        "is the inability to find the ICU coverter files. The converter files\n");
+    fprintf(stderr,
+        "have the extension .cnv and exist in a directory 'icu/data' relative\n");
+    fprintf(stderr,
+        "to the Xerces-C shared library. If you have installed the converter files\n");
+    fprintf(stderr,
+        "in a different location, you need to set up the environment variable\n");
+    fprintf(stderr,
+        "'ICU_DATA' to point directly to the directory containing the\n");
+    fprintf(stderr,
+        "converter files.\n");
+    
+    exit(-1);
+}
+
+
+// ---------------------------------------------------------------------------
+//  XMLPlatformUtils: File Methods
+// ---------------------------------------------------------------------------
+unsigned int XMLPlatformUtils::curFilePos(FileHandle theFile)
+{
+    int curPos = ftell( (FILE*)theFile);
+    if (curPos == -1)
+        ThrowXML(XMLPlatformUtilsException,
+                 XML4CExcepts::File_CouldNotGetSize);
+
+    return (unsigned int)curPos;
+}
+
+void XMLPlatformUtils::closeFile(FileHandle theFile)
+{
+    if (fclose((FILE*)theFile))
+        ThrowXML(XMLPlatformUtilsException,
+                 XML4CExcepts::File_CouldNotCloseFile);
+}
+
+unsigned int XMLPlatformUtils::fileSize(FileHandle theFile)
+{
+    // Get the current position
+    long  int curPos = ftell((FILE*) theFile);
+    if (curPos == -1)
+        ThrowXML(XMLPlatformUtilsException,
+                 XML4CExcepts::File_CouldNotGetCurPos);
+
+    // Seek to the end and save that value for return
+     if (fseek((FILE*) theFile, 0, SEEK_END))
+        ThrowXML(XMLPlatformUtilsException,
+                 XML4CExcepts::File_CouldNotSeekToEnd);
+
+    long int retVal = ftell((FILE*)theFile);
+    if (retVal == -1)
+        ThrowXML(XMLPlatformUtilsException,
+                 XML4CExcepts::File_CouldNotSeekToEnd);
+
+    // And put the pointer back
+
+    if (fseek( (FILE*)theFile, curPos, SEEK_SET) )
+        ThrowXML(XMLPlatformUtilsException,
+                 XML4CExcepts::File_CouldNotSeekToPos);
+
+    return (unsigned int)retVal;
+}
+
+FileHandle XMLPlatformUtils::openFile(const unsigned short* const fileName)
+{
+    const char* tmpFileName = XMLString::transcode(fileName);
+    ArrayJanitor<char> janText((char*)tmpFileName);
+    FileHandle retVal = (FILE*)fopen( tmpFileName , "rb" );
+
+    if (retVal == NULL)
+        return 0;
+    return retVal;
+}
+
+
+
+FileHandle XMLPlatformUtils::openStdInHandle()
+{
+    return (FileHandle) fdopen(dup(0), "rb");
+}
+
+
+unsigned int
+XMLPlatformUtils::readFileBuffer( FileHandle          theFile
+                                , const unsigned int  toRead
+                                , XMLByte* const      toFill)
+{
+    size_t noOfItemsRead = fread((void*) toFill, 1, toRead, (FILE*)theFile);
+
+    if(ferror((FILE*)theFile))
+    {
+        ThrowXML(XMLPlatformUtilsException,
+                 XML4CExcepts::File_CouldNotReadFromFile);
+    }
+
+    return (unsigned int)noOfItemsRead;
+}
+
+
+void XMLPlatformUtils::resetFile(FileHandle theFile)
+{
+    // Seek to the start of the file
+    if (fseek((FILE*)theFile, 0, SEEK_SET))
+        ThrowXML(XMLPlatformUtilsException,
+                 XML4CExcepts::File_CouldNotResetFile);
+}
+
+
+// ---------------------------------------------------------------------------
+//  XMLPlatformUtils: Timing Methods
+// ---------------------------------------------------------------------------
+
+unsigned long XMLPlatformUtils::getCurrentMillis()
+{
+    timeb aTime;
+    ftime(&aTime);
+    return (unsigned long)(aTime.time*1000 + aTime.millitm);
+
+}
+
+
+XMLCh* XMLPlatformUtils::getBasePath(const XMLCh* const srcPath)
+{
+
+    //
+    //  NOTE: THe path provided has always already been opened successfully,
+    //  so we know that its not some pathological freaky path. It comes in
+    //  in native format, and goes out as Unicode always
+    //
+    char* newSrc = XMLString::transcode(srcPath);
+    ArrayJanitor<char> janText(newSrc);
+
+    // Use a local buffer that is big enough for the largest legal path
+    // Note #1186: dirName() is not thread safe.
+    char* tmpPath = dirname(newSrc);
+    if (!tmpPath)
+    {
+        ThrowXML(XMLPlatformUtilsException,
+                 XML4CExcepts::File_CouldNotGetBasePathName);
+    }
+
+    char* newXMLString = new char [strlen(tmpPath) +2];
+    ArrayJanitor<char> newJanitor(newXMLString);
+    strcpy(newXMLString, tmpPath);
+    strcat(newXMLString , "/");
+
+    // Return a copy of the path, in Unicode format
+    return XMLString::transcode(newXMLString);
+}
+
+
+bool XMLPlatformUtils::isRelative(const XMLCh* const toCheck)
+{
+    // Check for pathological case of empty path
+    if (!toCheck[0])
+        return false;
+
+    //
+    //  If it starts with a slash, then it cannot be relative. This covers
+    //  both something like "\Test\File.xml" and an NT Lan type remote path
+    //  that starts with a node like "\\MyNode\Test\File.xml".
+    //
+    if (toCheck[0] == XMLCh('/'))
+        return false;
+
+    // Else assume its a relative path
+    return true;
+}
+
+
+// -----------------------------------------------------------------------
+//  Mutex methods
+// -----------------------------------------------------------------------
+
+#if !defined(APP_NO_THREADS)
+
+void* XMLPlatformUtils::makeMutex()
+{
+    pthread_mutex_t* mutex = new pthread_mutex_t;
+    pthread_mutexattr_t*  attr = new pthread_mutexattr_t;
+    pthread_mutexattr_init(attr);
+    pthread_mutexattr_setkind_np(attr, PTHREAD_MUTEX_RECURSIVE_NP);
+    if (pthread_mutex_init(mutex, attr))
+    {
+        ThrowXML(XMLPlatformUtilsException,
+                 XML4CExcepts::Mutex_CouldNotCreate);
+    }
+    pthread_mutexattr_destroy(attr);
+    delete attr;
+    return (void*)(mutex);
+
+}
+
+
+void XMLPlatformUtils::closeMutex(void* const mtxHandle)
+{
+    if (mtxHandle != NULL)
+    {
+        if (pthread_mutex_destroy((pthread_mutex_t*) mtxHandle))
+        {
+            ThrowXML(XMLPlatformUtilsException,
+                     XML4CExcepts::Mutex_CouldNotDestroy);
+        }
+        delete mtxHandle;
+    }
+}
+
+
+void XMLPlatformUtils::lockMutex(void* const mtxHandle)
+{
+    if (mtxHandle != NULL)
+    {
+        if (pthread_mutex_lock((pthread_mutex_t*) mtxHandle))
+        {
+            ThrowXML(XMLPlatformUtilsException,
+                     XML4CExcepts::Mutex_CouldNotLock);
+        }
+    }
+}
+
+
+void XMLPlatformUtils::unlockMutex(void* const mtxHandle)
+{
+    if (mtxHandle != NULL)
+    {
+        if (pthread_mutex_unlock((pthread_mutex_t*) mtxHandle))
+        {
+            ThrowXML(XMLPlatformUtilsException,
+                     XML4CExcepts::Mutex_CouldNotUnlock);
+        }
+    }
+}
+
+
+// -----------------------------------------------------------------------
+//  Miscellaneous synchronization methods
+// -----------------------------------------------------------------------
+
+void* XMLPlatformUtils::compareAndSwap(void**            toFill
+                                     , const void* const newValue
+                                     , const void* const toCompare)
+{
+    XMLMutexLock lockMutex(&atomicOpsMutex);
+
+    void *retVal = *toFill;
+    if (*toFill == toCompare)
+        *toFill = (void *)newValue;
+
+    return retVal;
+}
+
+int XMLPlatformUtils::atomicIncrement(int &location)
+{
+    XMLMutexLock localLock(&atomicOpsMutex);
+
+    return ++location;
+}
+
+int XMLPlatformUtils::atomicDecrement(int &location)
+{
+    XMLMutexLock localLock(&atomicOpsMutex);
+
+    return --location;
+}
+
+#else // #if !defined (APP_NO_THREADS)
+
+void* XMLPlatformUtils::makeMutex()
+{
+        return 0;
+}
+
+void XMLPlatformUtils::closeMutex(void* const mtxHandle)
+{
+}
+
+void XMLPlatformUtils::lockMutex(void* const mtxHandle)
+{
+}
+
+void XMLPlatformUtils::unlockMutex(void* const mtxHandle)
+{
+}
+
+void* XMLPlatformUtils::compareAndSwap (void**             toFill,
+                                        const void* const  newValue,
+                                        const void* const  toCompare)
+{
+    void *retVal = *toFill;
+    if (*toFill == toCompare)
+       *toFill = (void *)newValue;
+    return retVal;
+}
+
+int XMLPlatformUtils::atomicIncrement(int &location)
+{
+    return ++location;
+}
+
+int XMLPlatformUtils::atomicDecrement(int &location)
+{
+    return --location;
+}
+
+#endif // APP_NO_THREADS
+
+
diff --git a/src/util/Platforms/Makefile.in b/src/util/Platforms/Makefile.in
index fda51b548..224692e89 100644
--- a/src/util/Platforms/Makefile.in
+++ b/src/util/Platforms/Makefile.in
@@ -55,6 +55,9 @@
 # 
 #
 # $Log$
+# Revision 1.4  1999/12/01 17:16:17  rahulj
+# Added support for IRIX 6.5.5 using SGI MIPSpro C++ 7.3 and 7.21 generating 32 bit objects. Changes submitted by Marc Stuessel
+#
 # Revision 1.3  1999/11/23 02:00:28  rahulj
 # Code now works under HPUX 11. Tested inmemory message loader.
 Revamped makefiles. Builds with both DCE threads as well as pthread libraries.
@@ -113,6 +116,11 @@ ifeq (${PLATFORM}, OS390)
     CPP_PUBHEADERS = OS390/OS390Defs.hpp
     CPP_OBJECTS = OS390/OS390PlatformUtils.o
 endif
+ifeq (${PLATFORM}, IRIX)
+    SUBMODULE = Platforms/IRIX
+    CPP_PUBHEADERS = IRIX/IRIXDefs.hpp
+    CPP_OBJECTS = IRIX/IRIXPlatformUtils.o
+endif
 
 include ../Makefile.util.submodule
 
diff --git a/src/util/XML4CDefs.hpp b/src/util/XML4CDefs.hpp
index cb4b3db51..ed65b0897 100644
--- a/src/util/XML4CDefs.hpp
+++ b/src/util/XML4CDefs.hpp
@@ -56,6 +56,9 @@
 
 /**
  * $Log$
+ * Revision 1.3  1999/12/01 17:16:16  rahulj
+ * Added support for IRIX 6.5.5 using SGI MIPSpro C++ 7.3 and 7.21 generating 32 bit objects. Changes submitted by Marc Stuessel
+ *
  * Revision 1.2  1999/11/10 02:02:51  abagchi
  * Changed version numbers
  *
@@ -113,6 +116,10 @@ static const unsigned int   gXML4CRevision   = 0;
 #include    <util/Platforms/HPUX/HPUXDefs.hpp>
 #endif
 
+#if defined(XML_IRIX)
+#include    <util/Platforms/IRIX/IRIXDefs.hpp>
+#endif
+
 #if defined(XML_TANDEM)
 #include    <util/Platforms/Tandem/TandemDefs.hpp>
 #endif
@@ -167,6 +174,10 @@ static const unsigned int   gXML4CRevision   = 0;
 #include    <util/Compilers/HPCCDefs.hpp>
 #endif
 
+#if defined(XML_MIPSPRO_CC)
+#include    <util/Compilers/MIPSproDefs.hpp>
+#endif
+
 #if defined(XML_TANDEMCC)
 #include    <util/Compilers/TandemCCDefs.hpp>
 #endif
-- 
GitLab