diff --git a/src/xercesc/util/AutoSense.hpp b/src/xercesc/util/AutoSense.hpp index f7a44e29d5ef0e881e8b1746d0c5caccc57d28f0..d9c30250697aa6357c245a793911637f66025daa 100644 --- a/src/xercesc/util/AutoSense.hpp +++ b/src/xercesc/util/AutoSense.hpp @@ -1,7 +1,7 @@ /* * The Apache Software License, Version 1.1 * - * Copyright (c) 1999-2001 The Apache Software Foundation. All rights + * Copyright (c) 1999-2002 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.3 2002/03/04 20:31:14 tng + * [Bug 2868] AIX 4.3.3 mutex/atomic-operation changes for build. + * * Revision 1.2 2002/02/27 22:38:34 peiyongz * Bug# 6445 Caldera (SCO) OpenServer Port : patch from Martin Kalen * @@ -152,6 +155,9 @@ #if defined(_AIX) #define XML_AIX #define XML_UNIX + #if defined(_AIXVERSION_430) + #define XML_AIX43 // for use of POSIX compliant pthread functions + #endif #elif defined(_SEQUENT_) #define XML_PTX #define XML_UNIX diff --git a/src/xercesc/util/Platforms/AIX/AIXPlatformUtils.cpp b/src/xercesc/util/Platforms/AIX/AIXPlatformUtils.cpp index e9c6e5a059b591f1f5e9975f5cdc0fb23000ed90..68f15d8e7e6964d1ff4c1e663ea2f5c031bf07ab 100644 --- a/src/xercesc/util/Platforms/AIX/AIXPlatformUtils.cpp +++ b/src/xercesc/util/Platforms/AIX/AIXPlatformUtils.cpp @@ -1,37 +1,37 @@ /* * The Apache Software License, Version 1.1 - * - * Copyright (c) 1999-2000 The Apache Software Foundation. All rights + * + * Copyright (c) 1999-2002 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. - * + * 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: + * 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 + * 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 @@ -45,7 +45,7 @@ * 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 @@ -335,9 +335,9 @@ XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) // Use a local buffer that is big enough for the largest legal path char *absPath = new char[PATH_MAX]; ArrayJanitor<char> janText2(absPath); - //get the absolute path - char* retPath = realpath(newSrc, absPath); - + //get the absolute path + char* retPath = realpath(newSrc, absPath); + if (!retPath) { ThrowXML(XMLPlatformUtilsException, @@ -518,7 +518,11 @@ void* XMLPlatformUtils::makeMutex() pthread_mutexattr_delete(attr); #else pthread_mutexattr_init(attr); - pthread_mutexattr_setkind_np(attr, MUTEX_RECURSIVE_NP); + #if defined(XML_AIX43) + pthread_mutexattr_settype(attr, PTHREAD_MUTEX_RECURSIVE); + #else + pthread_mutexattr_setkind_np(attr, MUTEX_RECURSIVE_NP); + #endif if (pthread_mutex_init(mutex, attr)) { ThrowXML(XMLPlatformUtilsException,