summaryrefslogtreecommitdiff
path: root/ace
diff options
context:
space:
mode:
Diffstat (limited to 'ace')
-rw-r--r--ace/OS.cpp37
-rw-r--r--ace/OS.h18
-rw-r--r--ace/OS.i72
-rw-r--r--ace/README6
-rw-r--r--ace/SOCK_Acceptor.cpp6
-rw-r--r--ace/Synch.h4
-rw-r--r--ace/Timer_Queue.h2
-rw-r--r--ace/config-aix-3.2.5.h2
-rw-r--r--ace/config-aix-4.1.x.h2
-rw-r--r--ace/config-irix6.2-sgic++.h15
-rw-r--r--ace/config-linux-lxpthreads.h37
-rw-r--r--ace/config-osf1-4.0-g++.h2
-rw-r--r--ace/config-osf1-4.0.h2
-rw-r--r--ace/config-unixware-2.01-g++.h2
14 files changed, 163 insertions, 44 deletions
diff --git a/ace/OS.cpp b/ace/OS.cpp
index 7eb318d9374..2359523a971 100644
--- a/ace/OS.cpp
+++ b/ace/OS.cpp
@@ -14,6 +14,43 @@
#include "ace/OS.i"
#endif /* ACE_HAS_INLINED_OS_CALLS */
+#if defined(ACE_MT_SAFE) && defined(ACE_LACKS_NETDB_REENTRANT_FUNCTIONS)
+
+int ACE_OS::netdb_mutex_inited_ = 0;
+
+ACE_mutex_t ACE_OS::netdb_mutex_;
+
+int
+ACE_OS::netdb_acquire (void)
+{
+ if (ACE_OS::netdb_mutex_inited_ == 0)
+ {
+ if (ACE_OS::thread_mutex_init (&ACE_OS::netdb_mutex_) != 0)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n",
+ "ACE_OS::netdb_acquire[init]"), -1);
+ ACE_OS::netdb_mutex_inited_ = 1;
+ }
+
+ if (ACE_OS::thread_mutex_lock (&ACE_OS::netdb_mutex_) != 0)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n",
+ "ACE_OS::netdb_acquire[lock]"), -1);
+ return 0;
+}
+
+int
+ACE_OS::netdb_release (void)
+{
+ if (ACE_OS::netdb_mutex_inited_ == 0)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n",
+ "ACE_OS::netdb_release[inited]"), -1);
+
+ if (ACE_OS::thread_mutex_unlock (&ACE_OS::netdb_mutex_) != 0)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n",
+ "ACE_OS::netdb_release[unlock]"), -1);
+ return 0;
+}
+#endif /* defined(ACE_MT_SAFE) && defined(ACE_LACKS_NETDB_REENTRANT_FUNCTIONS) */
+
void
ACE_OS::flock_t::dump (void) const
{
diff --git a/ace/OS.h b/ace/OS.h
index f7eac800801..9973cb2c7e4 100644
--- a/ace/OS.h
+++ b/ace/OS.h
@@ -238,6 +238,11 @@ typedef int key_t;
#define ACE_SOCK_CONNECTOR ACE_SOCK_Connector
#define ACE_SOCK_STREAM ACE_SOCK_Stream
+// Handle ACE_LSOCK_*
+#define ACE_LSOCK_ACCEPTOR ACE_LSOCK_Acceptor
+#define ACE_LSOCK_CONNECTOR ACE_LSOCK_Connector
+#define ACE_LSOCK_STREAM ACE_LSOCK_Stream
+
// Handle ACE_TLI_*
#define ACE_TLI_ACCEPTOR ACE_TLI_Acceptor
#define ACE_TLI_CONNECTOR ACE_TLI_Connector
@@ -291,6 +296,11 @@ typedef int key_t;
#define ACE_SOCK_CONNECTOR ACE_SOCK_Connector, ACE_INET_Addr
#define ACE_SOCK_STREAM ACE_SOCK_Stream, ACE_INET_Addr
+// Handle ACE_LSOCK_*
+#define ACE_LSOCK_ACCEPTOR ACE_LSOCK_Acceptor, ACE_UNIX_Addr
+#define ACE_LSOCK_CONNECTOR ACE_LSOCK_Connector, ACE_UNIX_Addr
+#define ACE_LSOCK_STREAM ACE_LSOCK_Stream, ACE_UNIX_Addr
+
// Handle ACE_TLI_*
#define ACE_TLI_ACCEPTOR ACE_TLI_Acceptor, ACE_INET_Addr
#define ACE_TLI_CONNECTOR ACE_TLI_Connector, ACE_INET_Addr
@@ -2448,6 +2458,14 @@ public:
private:
ACE_OS (void);
// Ensure we can't define an instance of this class.
+
+#if defined (ACE_MT_SAFE) && defined (ACE_LACKS_NETDB_REENTRANT_FUNCTIONS)
+ static int netdb_acquire (void);
+ static int netdb_release (void);
+
+ static int netdb_mutex_inited_;
+ static ACE_mutex_t netdb_mutex_;
+#endif /* defined (ACE_MT_SAFE) && defined (ACE_LACKS_NETDB_REENTRANT_FUNCTIONS) */
};
// A useful abstraction for expressions involving operator new since
diff --git a/ace/OS.i b/ace/OS.i
index 7bf1bf6ad70..bf83c6100f6 100644
--- a/ace/OS.i
+++ b/ace/OS.i
@@ -2145,6 +2145,24 @@ ACE_OS::event_reset (ACE_event_t *event)
#define ACE_SOCKCALL_RETURN(OP,TYPE,FAILVALUE) ACE_OSCALL_RETURN(OP,TYPE,FAILVALUE)
#endif /* ACE_WIN32 */
+#if defined (ACE_MT_SAFE) && defined (ACE_LACKS_NETDB_REENTRANT_FUNCTIONS)
+#define ACE_NETDBCALL_RETURN(OP,TYPE,FAILVALUE,TARGET,SIZE) \
+ do \
+ { \
+ if (ACE_OS::netdb_acquire ()) \
+ return FAILVALUE; \
+ else \
+ { \
+ TYPE ace_result_; \
+ ACE_OSCALL(OP,TYPE,FAILVALUE,ace_result_); \
+ if (ace_result_ != FAILVALUE) \
+ ::memcpy (TARGET, ace_result_, SIZE); \
+ ACE_OS::netdb_release (); \
+ return ace_result_; \
+ } \
+ } while(0)
+#endif /* defined (ACE_MT_SAFE) && defined (ACE_LACKS_NETDB_REENTRANT_FUNCTIONS) */
+
ACE_INLINE char *
ACE_OS::strcat (char *s, const char *t)
{
@@ -2428,8 +2446,14 @@ ACE_OS::getprotobyname_r (const char *name,
else
return 0;
#else
- ACE_SOCKCALL_RETURN (::getprotobyname_r (name, result, buffer, sizeof (ACE_PROTOENT_DATA)),
- struct protoent *, 0);
+#if defined(ACE_LACKS_NETDB_REENTRANT_FUNCTIONS)
+ ACE_NETDBCALL_RETURN (::getprotobyname (name),
+ struct protoent *, 0,
+ buffer, sizeof (ACE_PROTOENT_DATA));
+#else
+ ACE_SOCKCALL_RETURN (::getprotobyname_r (name, result, buffer, sizeof (ACE_PROTOENT_DATA)),
+ struct protoent *, 0);
+#endif /* ACE_LACKS_NETDB_REENTRANT_FUNCTIONS */
#endif /* defined (AIX) || defined (DIGITAL_UNIX) */
#else
ACE_UNUSED_ARG(buffer);
@@ -2465,8 +2489,14 @@ ACE_OS::getprotobynumber_r (int proto,
else
return 0;
#else
+#if defined(ACE_LACKS_NETDB_REENTRANT_FUNCTIONS)
+ ACE_NETDBCALL_RETURN (::getprotobynumber (proto),
+ struct protoent *, 0,
+ buffer, sizeof (ACE_PROTOENT_DATA));
+#else
ACE_SOCKCALL_RETURN (::getprotobynumber_r (proto, result, buffer, sizeof (ACE_PROTOENT_DATA)),
- struct protoent *, 0);
+ struct protoent *, 0);
+#endif /* ACE_LACKS_NETDB_REENTRANT_FUNCTIONS */
#endif /* defined (AIX) || defined (DIGITAL_UNIX) */
#else
ACE_UNUSED_ARG(buffer);
@@ -2697,10 +2727,16 @@ ACE_OS::gethostbyaddr_r (const char *addr, int length, int type,
return (struct hostent *) 0;
}
#else
+#if defined(ACE_LACKS_NETDB_REENTRANT_FUNCTIONS)
+ ACE_NETDBCALL_RETURN (::gethostbyaddr (addr, (ACE_SOCKET_LEN) length, type),
+ struct hostent *, 0,
+ buffer, sizeof (ACE_HOSTENT_DATA));
+#else
ACE_SOCKCALL_RETURN (::gethostbyaddr_r (addr, length, type, result,
- buffer, sizeof (ACE_HOSTENT_DATA),
- h_errnop),
- struct hostent *, 0);
+ buffer, sizeof (ACE_HOSTENT_DATA),
+ h_errnop),
+ struct hostent *, 0);
+#endif /* ACE_LACKS_NETDB_REENTRANT_FUNCTIONS */
#endif /* defined (AIX) || defined (DIGITAL_UNIX) */
#elif defined (ACE_HAS_NONCONST_GETBY)
char laddr[length];
@@ -2740,9 +2776,15 @@ ACE_OS::gethostbyname_r (const char *name, hostent *result,
return (struct hostent *) 0;
}
#else
+#if defined(ACE_LACKS_NETDB_REENTRANT_FUNCTIONS)
+ ACE_NETDBCALL_RETURN (::gethostbyname (name),
+ struct hostent *, 0,
+ buffer, sizeof (ACE_HOSTENT_DATA));
+#else
ACE_SOCKCALL_RETURN (::gethostbyname_r (name, result, buffer,
sizeof (ACE_HOSTENT_DATA), h_errnop),
struct hostent *, 0);
+#endif /* ACE_LACKS_NETDB_REENTRANT_FUNCTIONS */
#endif /* defined (AIX) || defined (DIGITAL_UNIX) */
#elif defined (ACE_HAS_NONCONST_GETBY)
char lname[::strlen (name) + 1];
@@ -2780,9 +2822,15 @@ ACE_OS::getservbyname_r (const char *svc, const char *proto,
else
return (struct servent *) 0;
#else
+#if defined(ACE_LACKS_NETDB_REENTRANT_FUNCTIONS)
+ ACE_NETDBCALL_RETURN (::getservbyname (svc, proto),
+ struct servent *, 0,
+ buf, sizeof (ACE_SERVENT_DATA));
+#else
ACE_SOCKCALL_RETURN (::getservbyname_r (svc, proto, result, buf,
- sizeof (ACE_SERVENT_DATA)),
- struct servent *, 0);
+ sizeof (ACE_SERVENT_DATA)),
+ struct servent *, 0);
+#endif /* ACE_LACKS_NETDB_REENTRANT_FUNCTIONS */
#endif /* defined (AIX) || defined (DIGITAL_UNIX) */
#elif defined (ACE_HAS_NONCONST_GETBY)
char lsvc[::strlen (svc) + 1];
@@ -5142,7 +5190,7 @@ ACE_OS::ctime_r (const time_t *t, char *buf, int buflen)
{
// ACE_TRACE ("ACE_OS::ctime_r");
#if defined (ACE_HAS_REENTRANT_FUNCTIONS) && defined (ACE_MT_SAFE)
-#if defined (ACE_HAS_ONLY_TWO_PARAMS_FOR_ASCTIME_R_AND_CTIME_R)
+#if defined (ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R)
char *result;
#if defined (DIGITAL_UNIX)
ACE_OSCALL (::_Pctime_r (t, buf), char *, 0, result);
@@ -5153,7 +5201,7 @@ ACE_OS::ctime_r (const time_t *t, char *buf, int buflen)
return buf;
#else
ACE_OSCALL_RETURN (::ctime_r (t, buf, buflen), char *, 0);
-#endif /* defined (ACE_HAS_ONLY_TWO_PARAMS_FOR_ASCTIME_R_AND_CTIME_R) */
+#endif /* defined (ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R) */
#else
char *result;
ACE_OSCALL (::ctime (t), char *, 0, result);
@@ -5198,7 +5246,7 @@ ACE_OS::asctime_r (const struct tm *t, char *buf, int buflen)
{
// ACE_TRACE ("ACE_OS::asctime_r");
#if defined (ACE_HAS_REENTRANT_FUNCTIONS) && defined (ACE_MT_SAFE)
-#if defined (ACE_HAS_ONLY_TWO_PARAMS_FOR_ASCTIME_R_AND_CTIME_R)
+#if defined (ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R)
char *result;
#if defined (DIGITAL_UNIX)
ACE_OSCALL (::_Pasctime_r(t, buf), char *, 0, result);
@@ -5209,7 +5257,7 @@ ACE_OS::asctime_r (const struct tm *t, char *buf, int buflen)
return buf;
#else
ACE_OSCALL_RETURN (::asctime_r (t, buf, buflen), char *, 0);
-#endif /* ACE_HAS_ONLY_TWO_PARAMS_FOR_ASCTIME_R_AND_CTIME_R */
+#endif /* ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R */
#else
char *result;
ACE_OSCALL (::asctime (t), char *, 0, result);
diff --git a/ace/README b/ace/README
index 69e94db353d..398e1f390d8 100644
--- a/ace/README
+++ b/ace/README
@@ -49,6 +49,7 @@ ACE_HAS_MT_SAFE_SOCKETS Sockets may be called in multi-threaded programs
ACE_HAS_NONCONST_GETBY Platform uses non-const char * in calls to gethostbyaddr, gethostbyname, getservbyname
ACE_HAS_OLD_MALLOC Compiler/platform uses old malloc()/free() prototypes (ugh)
ACE_HAS_ONEARG_SIGWAIT sigwait() takes only one argument.
+ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R Uses ctime_r & asctime_r with only two parameters vs. three.
ACE_HAS_ORBIX Platform has Orbix CORBA implementation
ACE_HAS_OSF_TIMOD_H Platform supports the OSF TLI timod STREAMS module
ACE_HAS_POLL Platform contains <poll.h>
@@ -143,11 +144,14 @@ ACE_LACKS_MODE_MASKS Platform/compiler doesn't have open() mode masks.
ACE_LACKS_MPROTECT The platform doesn't have mprotect(2) (e.g., EPLX real time OS from CDC (based on LYNX))
ACE_LACKS_MSGBUF_T Platform lacks struct msgbuf (e.g., NT and MSV).
ACE_LACKS_MSYNC Platform lacks msync() (e.g., Linux)
+ACE_LACKS_NETDB_REENTRANT_FUNCTIONS Platform does not support reentrant netdb functions
+ (getprotobyname_r, getprotobynumber_r, gethostbyaddr_r,
+ gethostbyname_r, getservbyname_r).
+ACE_LACKS_RPC_H Platform lacks the ONC RPC header files.
ACE_LACKS_PARAM_H Platform lacks <sys/param.h> (e.g., MVS)
ACE_LACKS_POSIX_PROTO Platform lacks POSIX prototypes for certain System V functions like shared memory and message queues.
ACE_LACKS_PTHREAD_THR_SIGSETMASK Platform lacks pthread_thr_sigsetmask (e.g., MVS, HP/UX, and OSF/1 3.2)
ACE_LACKS_RECVMSG Platform lacks recvmsg() (e.g., Linux)
-ACE_LACKS_RPC_H Platform lacks the ONC RPC header files.
ACE_LACKS_RWLOCK_T Platform lacks readers/writer locks.
ACE_LACKS_SBRK Platform lacks a working sbrk() (e.g., Win32 and VxWorks)
ACE_LACKS_SEMBUF_T Platform lacks struct sembuf (e.g., Win32 and VxWorks)
diff --git a/ace/SOCK_Acceptor.cpp b/ace/SOCK_Acceptor.cpp
index 0081bcc1f28..bd2a03177af 100644
--- a/ace/SOCK_Acceptor.cpp
+++ b/ace/SOCK_Acceptor.cpp
@@ -52,8 +52,10 @@ ACE_SOCK_Acceptor::dump (void) const
// General purpose routine for performing server ACE_SOCK creation.
int
-ACE_SOCK_Acceptor::open (const ACE_Addr &local_sap, int reuse_addr,
- int protocol_family, int backlog,
+ACE_SOCK_Acceptor::open (const ACE_Addr &local_sap,
+ int reuse_addr,
+ int protocol_family,
+ int backlog,
int protocol)
{
ACE_TRACE ("ACE_SOCK_Acceptor::open");
diff --git a/ace/Synch.h b/ace/Synch.h
index 9c8214da13a..776ccf7aebf 100644
--- a/ace/Synch.h
+++ b/ace/Synch.h
@@ -819,10 +819,10 @@ class ACE_Export ACE_Thread_Mutex_Guard
// = TITLE
// This data structure is meant to be used within a method or
// function... It performs automatic aquisition and release of
- // an ACE_Mutex.
+ // an <ACE_Thread_Mutex>.
//
// = DESCRIPTION
- // This should be a specialization of ACE_Guard, but compiler
+ // This should be a specialization of <ACE_Guard>, but compiler
// bugs in older C++ compilers preclude this...
{
public:
diff --git a/ace/Timer_Queue.h b/ace/Timer_Queue.h
index 295adb1282e..2a49c108e61 100644
--- a/ace/Timer_Queue.h
+++ b/ace/Timer_Queue.h
@@ -183,7 +183,7 @@ protected:
virtual void reschedule (ACE_Timer_Node *) = 0;
// Reschedule an "interval" <ACE_Timer_Node>.
- virtual ACE_Timer_Queue_Iterator &iterator (void) = 0;
+ virtual ACE_Timer_Queue_Iterator &iter (void) = 0;
// Returns a pointer to this <ACE_Timer_Queue>'s iterator.
virtual ACE_Timer_Node *alloc_node (void) = 0;
diff --git a/ace/config-aix-3.2.5.h b/ace/config-aix-3.2.5.h
index eb60aa501ea..8cf5005e16c 100644
--- a/ace/config-aix-3.2.5.h
+++ b/ace/config-aix-3.2.5.h
@@ -8,7 +8,7 @@
#define MAXNAMELEN 1024
-#define ACE_HAS_ONLY_TWO_PARAMS_FOR_ASCTIME_R_AND_CTIME_R
+#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
#define ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS
#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
#define ACE_HAS_TEMPLATE_TYPEDEFS
diff --git a/ace/config-aix-4.1.x.h b/ace/config-aix-4.1.x.h
index 04b6529e0f7..0573b2413e7 100644
--- a/ace/config-aix-4.1.x.h
+++ b/ace/config-aix-4.1.x.h
@@ -10,7 +10,7 @@
// Compiling for AIX.
#define AIX
#define ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS
-#define ACE_HAS_ONLY_TWO_PARAMS_FOR_ASCTIME_R_AND_CTIME_R
+#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
#define _BSD 43
#define ACE_HAS_UNION_WAIT
#define ACE_HAS_MULTICAST
diff --git a/ace/config-irix6.2-sgic++.h b/ace/config-irix6.2-sgic++.h
index aa16f2824ae..c46aa0681b5 100644
--- a/ace/config-irix6.2-sgic++.h
+++ b/ace/config-irix6.2-sgic++.h
@@ -24,9 +24,21 @@
// ACE supports threads.
#define ACE_HAS_THREADS
+// Include XtReactor into the library.
+#define ACE_HAS_XT
+
// Platform supports getpagesize() call.
#define ACE_HAS_GETPAGESIZE
+// Platform supports reentrant functions (i.e., all the POSIX *_r
+// functions).
+#define ACE_HAS_REENTRANT_FUNCTIONS
+
+// Platform does not support reentrant netdb functions (getprotobyname_r,
+// getprotobynumber_r, gethostbyaddr_r, gethostbyname_r,
+// getservbyname_r).
+#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
+
//Sockets may be called in multi-threaded programs
#define ACE_HAS_MT_SAFE_SOCKETS
@@ -39,6 +51,9 @@
// Platform supports the tid_t type (e.g., AIX and Irix 6.2)
#define ACE_HAS_TID_T
+// uses ctime_r & asctime_r with only two parameters vs. three
+#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
+
// Platform has no implementation of pthread_condattr_setpshared(),
// even though it supports pthreads! (like Irix 6.2)
#define ACE_LACKS_CONDATTR_PSHARED
diff --git a/ace/config-linux-lxpthreads.h b/ace/config-linux-lxpthreads.h
index 735a2798e20..95676bfa3f9 100644
--- a/ace/config-linux-lxpthreads.h
+++ b/ace/config-linux-lxpthreads.h
@@ -1,34 +1,29 @@
/* -*- C++ -*- */
// $Id$
-// The following configuration file is designed to work for Linux
-// platforms using GNU C++ and the MIT threads package.
+/* The following configuration file is designed to work for Linux
+ platforms using GNU C++ and Xavier Leroy's pthreads package. For
+ more information you should check out his Web site:
-/* JCEJ 12/22/96
+ http://pauillac.inria.fr/~xleroy/linuxthreads/
- This is a slightly modified version of config-linux-pthreads
- made to work with Xavier Leroy's pthreads package. For more
- information you should check out his Web site:
- http://pauillac.inria.fr/~xleroy/linuxthreads/
+ The version I have installed and working is an RPM*
+ based on Xavier's 0.5 release. I don't know where
+ the tarball of 0.5 can be found, but I suspect that
+ Xavier's site has it...
- The version I have installed and working is an RPM*
- based on Xavier's 0.5 release. I don't know where
- the tarball of 0.5 can be found, but I suspect that
- Xavier's site has it...
+ * RPM == Redhat Package Management
+
+ My system is a Caldera-based distribution with many upgraded
+ packages. If you don't use RPM, there is a program (rpm2cpio)
+ which will extract the files for "normal consumption".
- * RPM == Redhat Package Management
- My system is a Caldera-based distribution with many
- upgraded packages. If you don't use RPM, there is
- a program (rpm2cpio) which will extract the files
- for "normal consumption".
+ You may also want to check out the "ACE On Linux" pages at:
- You may also want to check out the "ACE On Linux"
- pages at:
http://users.deltanet.com/users/slg/ACE/
- (They were a little out of date when I last was
- there however.)
- */
+ (They were a little out of date when I last was there
+ however.) */
#if !defined (ACE_CONFIG_H)
#define ACE_CONFIG_H
diff --git a/ace/config-osf1-4.0-g++.h b/ace/config-osf1-4.0-g++.h
index 4564aa8234b..9c4f5bd498e 100644
--- a/ace/config-osf1-4.0-g++.h
+++ b/ace/config-osf1-4.0-g++.h
@@ -199,7 +199,7 @@
//#define ACE_PAGE_SIZE 4096
#define ACE_PAGE_SIZE 8192
-#define ACE_HAS_ONLY_TWO_PARAMS_FOR_ASCTIME_R_AND_CTIME_R
+#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
#define ACE_HAS_BROKEN_IF_HEADER
#define ACE_HAS_REENTRANT_FUNCTIONS
diff --git a/ace/config-osf1-4.0.h b/ace/config-osf1-4.0.h
index 711e3f5c547..cb01661c20b 100644
--- a/ace/config-osf1-4.0.h
+++ b/ace/config-osf1-4.0.h
@@ -179,7 +179,7 @@
// DJT added 6/6/96
// uses ctime_r & asctime_r with only two parameters vs. three
-#define ACE_HAS_ONLY_TWO_PARAMS_FOR_ASCTIME_R_AND_CTIME_R
+#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
#define ACE_HAS_BROKEN_IF_HEADER
//#define ACE_HAS_REENTRANT_FUNCTIONS
diff --git a/ace/config-unixware-2.01-g++.h b/ace/config-unixware-2.01-g++.h
index 1e0c3e2a643..94b6db28e9b 100644
--- a/ace/config-unixware-2.01-g++.h
+++ b/ace/config-unixware-2.01-g++.h
@@ -14,7 +14,7 @@
#define ACE_HAS_GNU_CSTRING_H
#define ACE_HAS_INLINED_OSCALLS
#define ACE_HAS_MSG
-#define ACE_HAS_ONLY_TWO_PARAMS_FOR_ASCTIME_R_AND_CTIME_R
+#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
// Not yet sure about threads
#define ACE_HAS_MT_SAFE_SOCKETS
#define ACE_HAS_NONCONST_GETBY