summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog-98b35
-rw-r--r--ace/OS.cpp96
-rw-r--r--ace/OS.h17
-rw-r--r--ace/OS.i14
-rw-r--r--ace/README1
-rw-r--r--ace/config-dgux-4.11-epc.h2
-rw-r--r--ace/config-osf1-4.0.h2
-rw-r--r--ace/config-sunos5.4-centerline-2.x.h1
-rw-r--r--ace/config-sunos5.4-g++.h1
-rw-r--r--ace/config-sunos5.4-sunc++-4.x-orbix.h1
-rw-r--r--ace/config-sunos5.4-sunc++-4.x.h1
-rw-r--r--ace/config-sunos5.5-g++.h1
-rw-r--r--ace/config-sunos5.5-sunc++-4.x.h1
-rw-r--r--ace/config-sunx86-sunc++-4.x.h2
-rw-r--r--ace/config-tandem.h1
-rw-r--r--ace/config-unixware-2.01-g++.h1
-rw-r--r--ace/config-unixware-2.1.2-g++.h2
17 files changed, 116 insertions, 63 deletions
diff --git a/ChangeLog-98b b/ChangeLog-98b
index 563c9e89e80..df40f8dd641 100644
--- a/ChangeLog-98b
+++ b/ChangeLog-98b
@@ -1,3 +1,38 @@
+Fri May 15 16:55:34 1998 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * ace/OS: Fixed a number of problems that occurred when trying to
+ use the PTHREAD implementation on Solaris without using
+ ACE_HAS_STHREADS. The problems related primarily to the
+ ACE_OS::rw*() functions. To fix the problems, the following
+ changes were made.
+
+ Remove the #if defined (ACE_HAS_STHREADS) from the case where we
+ have the native rw*() functions. We just use the
+ ACE_LACKS_RWLOCK_T compile flag to determine whether we have the
+ native functions.
+
+ Without the ACE_HAS_STHREAD flag, ACE_rwlock_t comes up
+ undefined. To fix this, moved the definition at approx. line
+ 1868 above the #else at approx. line 1865 as the following:
+
+ #if ! defined (ACE_LACKS_RWLOCK_T)
+ #include <synch.h>
+ typedef rwlock_t ACE_rwlock_t;
+ #endif // ! ACE_LACKS_RWLOCK_T
+
+ Finally, the ACE_idtype_t type was also undefined. To fix this,
+ moved the typedef from within the #if defined (ACE_HAS_STHREADS) ||
+ defined (DIGITAL_UNIX) block and create a new ifdef block:
+
+ #if defined (ACE_HAS_IDTYPE_T)
+ typedef idtype_t ACE_idtype_t;
+ #else
+ typedef int ACE_idtype_t;
+ #endif
+
+ Thanks to Chris Lahey <CLahey@cccis.com> for his through help at
+ recognizing and fixing these problems.
+
Fri May 15 09:38:37 1998 David L. Levine <levine@cs.wustl.edu>
* bin/make_release: redirect cvs tag output to /dev/null.
diff --git a/ace/OS.cpp b/ace/OS.cpp
index d72c6fcbe42..be109c3e86e 100644
--- a/ace/OS.cpp
+++ b/ace/OS.cpp
@@ -3679,8 +3679,8 @@ ACE_OS::mktime (struct tm *t)
}
#endif /* !ACE_HAS_WINCE */
-#if !defined (ACE_HAS_THREADS) || !defined (ACE_HAS_STHREADS) || defined (ACE_LACKS_RWLOCK_T)
-// The ACE_HAS_THREADS and ACE_HAS_STHREADS case is in OS.i
+#if !defined (ACE_HAS_THREADS) || defined (ACE_LACKS_RWLOCK_T)
+// The ACE_HAS_THREADS and ACE_HAS_STHREADS case is in OS.i.
int
ACE_OS::rwlock_init (ACE_rwlock_t *rw,
int type,
@@ -3691,22 +3691,25 @@ ACE_OS::rwlock_init (ACE_rwlock_t *rw,
type = type;
name = name;
#if defined (ACE_HAS_THREADS)
-#if !defined (ACE_HAS_STHREADS) || defined (ACE_LACKS_RWLOCK_T)
+#if defined (ACE_LACKS_RWLOCK_T)
/* NT, POSIX, and VxWorks don't support this natively. */
ACE_UNUSED_ARG (name);
int result = -1;
// Since we cannot use the user specified name for all three
- // objects, we will create three complete new names
+ // objects, we will create three completely new names.
TCHAR name1[ACE_UNIQUE_NAME_LEN];
TCHAR name2[ACE_UNIQUE_NAME_LEN];
TCHAR name3[ACE_UNIQUE_NAME_LEN];
- ACE::unique_name ((const void *) &rw->lock_, name1,
+ ACE::unique_name ((const void *) &rw->lock_,
+ name1,
ACE_UNIQUE_NAME_LEN);
- ACE::unique_name ((const void *) &rw->waiting_readers_, name2,
+ ACE::unique_name ((const void *) &rw->waiting_readers_,
+ name2,
ACE_UNIQUE_NAME_LEN);
- ACE::unique_name ((const void *) &rw->waiting_writers_, name3,
+ ACE::unique_name ((const void *) &rw->waiting_writers_,
+ name3,
ACE_UNIQUE_NAME_LEN);
if (ACE_OS::mutex_init (&rw->lock_, type, name1, arg) == 0
@@ -3730,7 +3733,7 @@ ACE_OS::rwlock_init (ACE_rwlock_t *rw,
errno = error;
}
return result;
-#endif /* ! ACE_HAS_STHREADS */
+#endif /* ACE_LACKS_RWLOCK_T */
#else
ACE_UNUSED_ARG (rw);
ACE_UNUSED_ARG (type);
@@ -3739,7 +3742,7 @@ ACE_OS::rwlock_init (ACE_rwlock_t *rw,
ACE_NOTSUP_RETURN (-1);
#endif /* ACE_HAS_THREADS */
}
-#endif /* ! ACE_HAS_THREADS || ! ACE_HAS_STHREADS || defined (ACE_LACKS_RWLOCK_T) */
+#endif /* ! ACE_HAS_THREADS || ACE_LACKS_RWLOCK_T */
#if defined (ACE_PSOS)
@@ -3760,45 +3763,46 @@ const int ACE_PSOS_Time_t::month_origin = 1;
// maximum number of clock ticks supported
const u_long ACE_PSOS_Time_t::max_ticks = ~0UL;
-
-ACE_PSOS_Time_t::ACE_PSOS_Time_t ()
- : date_ (0), time_ (0), ticks_ (0)
+ACE_PSOS_Time_t::ACE_PSOS_Time_t (void)
+ : date_ (0),
+ time_ (0),
+ ticks_ (0)
{
}
- // default ctor: date, time, and ticks all zeroed
+
+// default ctor: date, time, and ticks all zeroed
ACE_PSOS_Time_t::ACE_PSOS_Time_t (const timespec_t& t)
{
struct tm* tm_struct = ACE_OS::gmtime (&(t.tv_sec));
- // encode date values from tm struct into pSOS date bit array
+ // Encode date values from tm struct into pSOS date bit array.
- date_ = (ACE_PSOS_Time_t::year_mask &
- ACE_static_cast (u_long,
- tm_struct->tm_year + ACE_PSOS_Time_t::year_origin)) <<
- ACE_PSOS_Time_t::year_shift;
+ date_ = (ACE_PSOS_Time_t::year_mask &
+ ACE_static_cast (u_long,
+ tm_struct->tm_year + ACE_PSOS_Time_t::year_origin)) <<
+ ACE_PSOS_Time_t::year_shift;
date_ |= (ACE_PSOS_Time_t::month_mask &
ACE_static_cast (u_long,
tm_struct->tm_mon + ACE_PSOS_Time_t::month_origin)) <<
- ACE_PSOS_Time_t::month_shift;
+ ACE_PSOS_Time_t::month_shift;
date_ |= ACE_PSOS_Time_t::day_mask &
- ACE_static_cast (u_long, tm_struct->tm_mday);
-
+ ACE_static_cast (u_long, tm_struct->tm_mday);
- // encode time values from tm struct into pSOS time bit array
+ // Encode time values from tm struct into pSOS time bit array.
- time_ = (ACE_PSOS_Time_t::hour_mask &
+ time_ = (ACE_PSOS_Time_t::hour_mask &
ACE_static_cast (u_long, tm_struct->tm_hour)) <<
- ACE_PSOS_Time_t::hour_shift;
+ ACE_PSOS_Time_t::hour_shift;
time_ |= (ACE_PSOS_Time_t::minute_mask &
ACE_static_cast (u_long, tm_struct->tm_min)) <<
- ACE_PSOS_Time_t::minute_shift;
+ ACE_PSOS_Time_t::minute_shift;
time_ |= ACE_PSOS_Time_t::second_mask &
- ACE_static_cast (u_int, tm_struct->tm_sec);
+ ACE_static_cast (u_int, tm_struct->tm_sec);
// encode nanoseconds as system clock ticks
ticks_ = ACE_static_cast (u_long,
@@ -3807,10 +3811,10 @@ ACE_PSOS_Time_t::ACE_PSOS_Time_t (const timespec_t& t)
ACE_static_cast (double, 1000000000)));
}
- // ctor from a timespec_t
+// ctor from a timespec_t
-ACE_PSOS_Time_t::operator timespec_t ()
+ACE_PSOS_Time_t::operator timespec_t (void)
{
struct tm tm_struct;
@@ -3855,18 +3859,17 @@ ACE_PSOS_Time_t::operator timespec_t ()
((ACE_static_cast (double, ticks_) *
ACE_static_cast (double, 1000000000)) /
ACE_static_cast (double, KC_TICKS2SEC)));
-
return t;
}
- // type cast operator (to a timespec_t)
+
+// type cast operator (to a timespec_t)
ACE_INLINE u_long
ACE_PSOS_Time_t::get_system_time (ACE_PSOS_Time_t& t)
{
u_long ret_val = 0;
-#if defined (ACE_PSOSIM) /* system time is broken in simulator */
-
+#if defined (ACE_PSOSIM) // system time is broken in simulator.
timeval tv;
int result = 0;
ACE_OSCALL (::gettimeofday (&tv, 0), int, -1, result);
@@ -3881,16 +3884,13 @@ ACE_PSOS_Time_t::get_system_time (ACE_PSOS_Time_t& t)
t.date_ = pt.date_;
t.time_ = pt.time_;
t.ticks_ = pt.ticks_;
-
#else
-
ret_val = tm_get (&(t.date_), &(t.time_), &(t.ticks_));
-
#endif /* ACE_PSOSIM */
-
return ret_val;
}
- // static member function to get current system time
+
+// Static member function to get current system time.
ACE_INLINE u_long
ACE_PSOS_Time_t::set_system_time (const ACE_PSOS_Time_t& t)
@@ -3898,16 +3898,18 @@ ACE_PSOS_Time_t::set_system_time (const ACE_PSOS_Time_t& t)
u_long ret_val = tm_set (t.date_, t.time_, t.ticks_);
return ret_val;
}
- // static member function to set current system time
+
+// Static member function to set current system time.
#if defined (ACE_PSOSIM)
ACE_INLINE u_long
-ACE_PSOS_Time_t::init_simulator_time ()
+ACE_PSOS_Time_t::init_simulator_time (void)
{
- // This is a hack using a direct UNIX system call, because the appropriate
- // ACE_OS method ultimately uses the pSOS tm_get function, which would fail
- // because the simulator's system time is uninitialized (chicken and egg).
+ // This is a hack using a direct UNIX system call, because the
+ // appropriate ACE_OS method ultimately uses the pSOS tm_get
+ // function, which would fail because the simulator's system time is
+ // uninitialized (chicken and egg).
timeval t;
int result = 0;
ACE_OSCALL (::gettimeofday (&t, 0), int, -1, result);
@@ -3925,10 +3927,10 @@ ACE_PSOS_Time_t::init_simulator_time ()
}
}
- // static member function to initialize system time, using UNIX calls
-#endif /* ACE_PSOSIM */
+// Static member function to initialize system time, using UNIX calls.
+#endif /* ACE_PSOSIM */
#endif /* ACE_PSOS */
#if defined (__DGUX) && defined (ACE_HAS_THREADS) && defined (_POSIX4A_DRAFT10_SOURCE)
@@ -3936,8 +3938,8 @@ extern "C" int __d6_sigwait (sigset_t *set);
extern "C" int __d10_sigwait( const sigset_t *set, int *sig )
{
-sigset_t unconst_set = *set;
-int caught_sig;
+ sigset_t unconst_set = *set;
+ int caught_sig;
if ((caught_sig = __d6_sigwait(&unconst_set)) == -1)
return -1;
@@ -4021,7 +4023,7 @@ ace_sysconf_dump (void)
ACE_OS::sysconf (_SC_TIMERS),
ACE_OS::sysconf (_SC_VERSION)));
}
-#endif
+#endif /* CHORUS */
#if defined (ACE_HAS_WINCE)
ACE_CE_Bridge *ACE_CE_Bridge::default_text_bridge_ = 0;
diff --git a/ace/OS.h b/ace/OS.h
index b42fad12e97..e96c923957f 100644
--- a/ace/OS.h
+++ b/ace/OS.h
@@ -1863,15 +1863,16 @@ protected:
# if defined (USYNC_PROCESS)
# undef USYNC_PROCESS
# endif /* USYNC_PROCESS */
-# include /**/ <thread.h>
-# endif /* defined (ACE_LACKS_PTHREAD_YIELD) && defined (ACE_HAS_THR_YIELD) */
-
-# else
// If we are on Solaris we can just reuse the existing implementations
// of these synchronization types.
# if !defined (ACE_LACKS_RWLOCK_T)
+#include /**/ <synch.h>
typedef rwlock_t ACE_rwlock_t;
# endif /* !ACE_LACKS_RWLOCK_T */
+# include /**/ <thread.h>
+# endif /* defined (ACE_LACKS_PTHREAD_YIELD) && defined (ACE_HAS_THR_YIELD) */
+
+# else
# if !defined (ACE_HAS_POSIX_SEM)
typedef sema_t ACE_sema_t;
# endif /* !ACE_HAS_POSIX_SEM */
@@ -3279,16 +3280,20 @@ extern "C"
# include /**/ <sys/priocntl.h>
# endif /* ACE_HAS_PRIOCNTL */
+#if defined (ACE_HAS_IDTYPE_T)
+ typedef idtype_t ACE_idtype_t;
+#else
+ typedef int ACE_idtype_t;
+#endif /* ACE_HAS_IDTYPE_T */
+
# if defined (ACE_HAS_STHREADS) || defined (DIGITAL_UNIX)
# if defined (ACE_LACKS_PRI_T)
typedef int pri_t;
# endif /* ACE_LACKS_PRI_T */
- typedef idtype_t ACE_idtype_t;
typedef id_t ACE_id_t;
# define ACE_SELF P_MYID
typedef pri_t ACE_pri_t;
# else /* ! ACE_HAS_STHREADS && ! DIGITAL_UNIX */
- typedef int ACE_idtype_t;
typedef long ACE_id_t;
# define ACE_SELF (-1)
typedef short ACE_pri_t;
diff --git a/ace/OS.i b/ace/OS.i
index 29338cf4f65..856754142b6 100644
--- a/ace/OS.i
+++ b/ace/OS.i
@@ -3375,7 +3375,7 @@ ACE_OS::rw_tryrdlock (ACE_rwlock_t *rw)
{
// ACE_TRACE ("ACE_OS::rw_tryrdlock");
#if defined (ACE_HAS_THREADS)
-#if defined (ACE_HAS_STHREADS) && !defined (ACE_LACKS_RWLOCK_T)
+#if !defined (ACE_LACKS_RWLOCK_T)
ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::rw_tryrdlock (rw), ace_result_), int, -1);
#else /* NT, POSIX, and VxWorks don't support this natively. */
int result = -1;
@@ -3411,7 +3411,7 @@ ACE_OS::rw_trywrlock (ACE_rwlock_t *rw)
{
// ACE_TRACE ("ACE_OS::rw_trywrlock");
#if defined (ACE_HAS_THREADS)
-#if defined (ACE_HAS_STHREADS) && !defined (ACE_LACKS_RWLOCK_T)
+#if !defined (ACE_LACKS_RWLOCK_T)
ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::rw_trywrlock (rw), ace_result_), int, -1);
#else /* NT, POSIX, and VxWorks don't support this natively. */
int result = -1;
@@ -3447,7 +3447,7 @@ ACE_OS::rw_rdlock (ACE_rwlock_t *rw)
{
// ACE_TRACE ("ACE_OS::rw_rdlock");
#if defined (ACE_HAS_THREADS)
-#if defined (ACE_HAS_STHREADS) && !defined (ACE_LACKS_RWLOCK_T)
+#if !defined (ACE_LACKS_RWLOCK_T)
ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::rw_rdlock (rw), ace_result_), int, -1);
#else /* NT, POSIX, and VxWorks don't support this natively. */
#if defined (ACE_HAS_DCETHREADS) || defined (ACE_HAS_PTHREADS)
@@ -3490,7 +3490,7 @@ ACE_OS::rw_wrlock (ACE_rwlock_t *rw)
{
// ACE_TRACE ("ACE_OS::rw_wrlock");
#if defined (ACE_HAS_THREADS)
-#if defined (ACE_HAS_STHREADS) && !defined (ACE_LACKS_RWLOCK_T)
+#if !defined (ACE_LACKS_RWLOCK_T)
ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::rw_wrlock (rw), ace_result_), int, -1);
#else /* NT, POSIX, and VxWorks don't support this natively. */
#if defined (ACE_HAS_DCETHREADS) || defined (ACE_HAS_PTHREADS)
@@ -3535,7 +3535,7 @@ ACE_OS::rw_unlock (ACE_rwlock_t *rw)
{
// ACE_TRACE ("ACE_OS::rw_unlock");
#if defined (ACE_HAS_THREADS)
-#if defined (ACE_HAS_STHREADS) && !defined (ACE_LACKS_RWLOCK_T)
+#if !defined (ACE_LACKS_RWLOCK_T)
ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::rw_unlock (rw), ace_result_), int, -1);
#else /* NT, POSIX, and VxWorks don't support this natively. */
if (ACE_OS::mutex_lock (&rw->lock_) == -1)
@@ -3584,7 +3584,7 @@ ACE_OS::rw_trywrlock_upgrade (ACE_rwlock_t *rw)
{
// ACE_TRACE ("ACE_OS::rw_wrlock");
#if defined (ACE_HAS_THREADS)
-#if defined (ACE_HAS_STHREADS) && !defined (ACE_LACKS_RWLOCK_T)
+#if !defined (ACE_LACKS_RWLOCK_T)
// Solaris rwlocks don't support the upgrade feature...
ACE_UNUSED_ARG (rw);
ACE_NOTSUP_RETURN (-1);
@@ -3646,7 +3646,7 @@ ACE_OS::rwlock_destroy (ACE_rwlock_t *rw)
{
// ACE_TRACE ("ACE_OS::rwlock_destroy");
#if defined (ACE_HAS_THREADS)
-#if defined (ACE_HAS_STHREADS) && !defined (ACE_LACKS_RWLOCK_T)
+#if !defined (ACE_LACKS_RWLOCK_T)
ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::rwlock_destroy (rw), ace_result_), int, -1);
#else /* NT, POSIX, and VxWorks don't support this natively. */
ACE_OS::mutex_destroy (&rw->lock_);
diff --git a/ace/README b/ace/README
index aa823e9f3c9..2f07cd9016d 100644
--- a/ace/README
+++ b/ace/README
@@ -80,6 +80,7 @@ ACE_HAS_GETRUSAGE_PROTO Platform has a getrusage () prototype in
ACE_HAS_GNU_CSTRING_H Denotes that GNU has cstring.h as standard which redefines memchr()
ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT Optimize ACE_Handle_Set::count_bits for select() operations (common case)
ACE_HAS_HI_RES_TIMER Compiler/platform supports SunOS high resolution timers
+ACE_HAS_IDTYPE_T Compiler/platform supports idtype_t.
ACE_HAS_INLINED_OSCALLS Inline all the static class OS methods to remove call overhead
ACE_HAS_IP_MULTICAST Platform supports IP multicast
ACE_HAS_IRIX_GETTIMEOFDAY Denotes that IRIX 5.3 has second argument to gettimeofday() which is variable ...
diff --git a/ace/config-dgux-4.11-epc.h b/ace/config-dgux-4.11-epc.h
index e81d2ff458d..5f65e08d335 100644
--- a/ace/config-dgux-4.11-epc.h
+++ b/ace/config-dgux-4.11-epc.h
@@ -187,6 +187,6 @@
// Optimize ACE_Handle_Set for select().
#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-
+#define ACE_HAS_IDTYPE_T
#define ACE_DGUX
#endif /* ACE_CONFIG_H */
diff --git a/ace/config-osf1-4.0.h b/ace/config-osf1-4.0.h
index 71127f903b9..5c08374f1a2 100644
--- a/ace/config-osf1-4.0.h
+++ b/ace/config-osf1-4.0.h
@@ -170,5 +170,5 @@
// Do not define this smaller than 64KB, because ACE_Log_Msg::log needs that!
// TK, 05 Feb 97
#define ACE_NEEDS_HUGE_THREAD_STACKSIZE (1024 * 1024)
-
+#define ACE_HAS_IDTYPE_T
#endif /* ACE_CONFIG_H */
diff --git a/ace/config-sunos5.4-centerline-2.x.h b/ace/config-sunos5.4-centerline-2.x.h
index 5207f02452c..974cf2cd601 100644
--- a/ace/config-sunos5.4-centerline-2.x.h
+++ b/ace/config-sunos5.4-centerline-2.x.h
@@ -170,5 +170,6 @@
// Defines the page size of the system.
#define ACE_PAGE_SIZE 4096
+#define ACE_HAS_IDTYPE_T
#endif /* ACE_CONFIG_H */
diff --git a/ace/config-sunos5.4-g++.h b/ace/config-sunos5.4-g++.h
index 6d0a0b37e44..a0a7734a229 100644
--- a/ace/config-sunos5.4-g++.h
+++ b/ace/config-sunos5.4-g++.h
@@ -180,5 +180,6 @@
// Defines the page size of the system.
#define ACE_PAGE_SIZE 4096
+#define ACE_HAS_IDTYPE_T
#endif /* ACE_CONFIG_H */
diff --git a/ace/config-sunos5.4-sunc++-4.x-orbix.h b/ace/config-sunos5.4-sunc++-4.x-orbix.h
index 5d018b622b0..51a809af009 100644
--- a/ace/config-sunos5.4-sunc++-4.x-orbix.h
+++ b/ace/config-sunos5.4-sunc++-4.x-orbix.h
@@ -189,5 +189,6 @@
// Defines the page size of the system.
#define ACE_PAGE_SIZE 4096
+#define ACE_HAS_IDTYPE_T
#endif /* ACE_CONFIG_H */
diff --git a/ace/config-sunos5.4-sunc++-4.x.h b/ace/config-sunos5.4-sunc++-4.x.h
index af8b992bba7..e38f7b74280 100644
--- a/ace/config-sunos5.4-sunc++-4.x.h
+++ b/ace/config-sunos5.4-sunc++-4.x.h
@@ -187,5 +187,6 @@
// Defines the page size of the system.
#define ACE_PAGE_SIZE 4096
+#define ACE_HAS_IDTYPE_T
#endif /* ACE_CONFIG_H */
diff --git a/ace/config-sunos5.5-g++.h b/ace/config-sunos5.5-g++.h
index c9a0c771f14..d7b701801f7 100644
--- a/ace/config-sunos5.5-g++.h
+++ b/ace/config-sunos5.5-g++.h
@@ -206,5 +206,6 @@
#define ACE_HAS_STL_MAP_CONFLICT
#define ACE_HAS_STL_QUEUE_CONFLICT
+#define ACE_HAS_IDTYPE_T
#endif /* ACE_CONFIG_H */
diff --git a/ace/config-sunos5.5-sunc++-4.x.h b/ace/config-sunos5.5-sunc++-4.x.h
index def3d2c3ce3..f35a750ae92 100644
--- a/ace/config-sunos5.5-sunc++-4.x.h
+++ b/ace/config-sunos5.5-sunc++-4.x.h
@@ -233,5 +233,6 @@
#define ACE_HAS_STL_MAP_CONFLICT
#define ACE_HAS_STL_QUEUE_CONFLICT
+#define ACE_HAS_IDTYPE_T
#endif /* ACE_CONFIG_H */
diff --git a/ace/config-sunx86-sunc++-4.x.h b/ace/config-sunx86-sunc++-4.x.h
index e7a10386393..098d309083b 100644
--- a/ace/config-sunx86-sunc++-4.x.h
+++ b/ace/config-sunx86-sunc++-4.x.h
@@ -7,6 +7,8 @@
#if !defined (ACE_CONFIG_H)
#define ACE_CONFIG_H
+#define ACE_HAS_IDTYPE_T
+
// Optimize ACE_Handle_Set for select().
#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
diff --git a/ace/config-tandem.h b/ace/config-tandem.h
index d92d390b081..55e9542d126 100644
--- a/ace/config-tandem.h
+++ b/ace/config-tandem.h
@@ -22,6 +22,7 @@
#define __ACE_INLINE__
#endif /* ! __ACE_INLINE__ */
+#define ACE_HAS_IDTYPE_T
// Optimize ACE_Handle_Set for select().
#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
diff --git a/ace/config-unixware-2.01-g++.h b/ace/config-unixware-2.01-g++.h
index 4c1d0a9d116..54ecaedc11b 100644
--- a/ace/config-unixware-2.01-g++.h
+++ b/ace/config-unixware-2.01-g++.h
@@ -19,6 +19,7 @@
// Optimize ACE_Handle_Set for select().
#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
+#define ACE_HAS_IDTYPE_T
#define ACE_HAS_STRING_CLASS
#define ACE_LACKS_STRCASECMP
#define ACE_HAS_SIZET_SOCKET_LEN
diff --git a/ace/config-unixware-2.1.2-g++.h b/ace/config-unixware-2.1.2-g++.h
index 6f428babfc7..d5f1c6c29cd 100644
--- a/ace/config-unixware-2.1.2-g++.h
+++ b/ace/config-unixware-2.1.2-g++.h
@@ -92,5 +92,5 @@
#if !defined (ACE_NTRACE)
#define ACE_NTRACE 1
#endif /* ACE_NTRACE */
-
+#define ACE_HAS_IDTYPE_T
#endif /* ACE_CONFIG_H */