summaryrefslogtreecommitdiff
path: root/ace
diff options
context:
space:
mode:
authorcrodrigu <crodrigu@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2002-11-14 23:06:39 +0000
committercrodrigu <crodrigu@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2002-11-14 23:06:39 +0000
commiteab41cd97afb2a288eb6908d068d491ad4a9cb50 (patch)
tree25a1a8bc11599ae83b0aec053399fc0de306f456 /ace
parentcd01eefde91752e2ef1c39df165e3a095bd9b695 (diff)
downloadATCD-eab41cd97afb2a288eb6908d068d491ad4a9cb50.tar.gz
ChangeLogTag: Thu Nov 14 22:47:45 UTC 2002 Craig Rodrigues <crodrigu@bbn.com>
Diffstat (limited to 'ace')
-rw-r--r--ace/OS.h18
-rw-r--r--ace/README12
-rw-r--r--ace/config-freebsd-pthread.h228
-rw-r--r--ace/config-freebsd.h164
-rw-r--r--ace/config-linux-common.h10
-rw-r--r--ace/config-posix.h60
-rw-r--r--ace/config-sunos5.6.h12
7 files changed, 209 insertions, 295 deletions
diff --git a/ace/OS.h b/ace/OS.h
index e6e13e9ac60..27a581d94e5 100644
--- a/ace/OS.h
+++ b/ace/OS.h
@@ -6945,7 +6945,7 @@ typedef ACE_TRANSMIT_FILE_BUFFERS* ACE_LPTRANSMIT_FILE_BUFFERS;
# define ACE_NTOHS(x) x
# endif /* ACE_LITTLE_ENDIAN */
-# if defined (ACE_HAS_AIO_CALLS)
+# if defined (ACE_HAS_POSIX_REALTIME_SIGNALS)
// = Giving unique ACE scoped names for some important
// RTSignal-Related constants. Becuase sometimes, different
// platforms use different names for these constants.
@@ -6961,7 +6961,7 @@ typedef ACE_TRANSMIT_FILE_BUFFERS* ACE_LPTRANSMIT_FILE_BUFFERS;
// some other name. If yes, use that instead of 8.
# define ACE_RTSIG_MAX 8
# endif /* _POSIX_RTSIG_MAX */
-# endif /* ACE_HAS_AIO_CALLS */
+# endif /* ACE_HAS_POSIX_REALTIME_SIGNALS */
// Wrapping around wait status <wstat> macros for platforms that
// lack them.
@@ -7126,13 +7126,21 @@ typedef ACE_TRANSMIT_FILE_BUFFERS* ACE_LPTRANSMIT_FILE_BUFFERS;
//@}
// Defining POSIX4 real-time signal range.
-#if defined ACE_HAS_AIO_CALLS
+#if defined(ACE_HAS_POSIX_REALTIME_SIGNALS)
#define ACE_SIGRTMIN SIGRTMIN
#define ACE_SIGRTMAX SIGRTMAX
-#else /* !ACE_HAS_AIO_CALLS */
+
+#else /* !ACE_HAS_POSIX_REALTIME_SIGNALS */
+
+#ifndef ACE_SIGRTMIN
#define ACE_SIGRTMIN 0
+#endif /* ACE_SIGRTMIN */
+
+#ifndef ACE_SIGRTMAX
#define ACE_SIGRTMAX 0
-#endif /* ACE_HAS_AIO_CALLS */
+#endif /* ACE_SIGRTMAX */
+
+#endif /* ACE_HAS_POSIX_REALTIME_SIGNALS */
# if defined (ACE_LACKS_SYS_NERR)
extern ACE_OS_Export int sys_nerr;
diff --git a/ace/README b/ace/README
index eb577f2b485..9fb8ef80d11 100644
--- a/ace/README
+++ b/ace/README
@@ -84,6 +84,8 @@ ACE_WSOCK_VERSION A parameter list indicating
"1, 1" is version 1.1).
ACE_HAS_AIO_CALLS Platform supports POSIX aio* calls.
+ Corresponds to _POSIX_ASYNCHRONOUS_IO
+ constant in <unistd.h>.
ACE_HAS_ALT_CUSERID Use ACE's alternate cuserid()
implementation since a system
cuserid() may not exist, or it
@@ -429,11 +431,19 @@ ACE_HAS_POLL Platform contains <poll.h>
ACE_HAS_POSITION_INDEPENDENT_POINTERS Platform supports
"position-independent" features
provided by ACE_Based_Pointer<>.
+ACE_HAS_POSIX_MESSAGE_PASSING Platform supports POSIX message queues.
+ Corresponds to _POSIX_MESSAGE_PASSING
+ constant in <unistd.h>.
ACE_HAS_POSIX_NONBLOCK Platform supports POSIX
O_NONBLOCK semantics
+ACE_HAS_POSIX_REALTIME_SIGNALS Platform supports POSIX RT signals.
+ Corresponds to _POSIX_REALTIME_SIGNALS
+ constant in <unistd.h>.
ACE_HAS_POSIX_SEM Platform supports POSIX
real-time semaphores (e.g.,
- VxWorks and Solaris)
+ VxWorks and Solaris). Corresponds
+ to _POSIX_SEMAPHORES constant
+ in <unistd.h>
ACE_HAS_POSIX_TIME Platform supports the POSIX
struct timespec type
ACE_HAS_PROC_FS Platform supports the /proc
diff --git a/ace/config-freebsd-pthread.h b/ace/config-freebsd-pthread.h
deleted file mode 100644
index 3bc05498ff4..00000000000
--- a/ace/config-freebsd-pthread.h
+++ /dev/null
@@ -1,228 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// The following configuration file is designed to work for FreeBSD
-// platforms with GNU C++ and the POSIX (pthread) threads package.
-
-// Notice that the threaded version of ACE is only supported for -current.
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include "ace/pre.h"
-
-#include <osreldate.h>
-// Make sure we source in the OS version.
-
-#if ! defined (__ACE_INLINE__)
-#define __ACE_INLINE__
-#endif /* ! __ACE_INLINE__ */
-
-#if (__FreeBSD_version < 220000)
-#error Threads are not supported.
-#endif /* __FreeBSD_version < 220000 */
-
-#define ACE_SIZEOF_LONG_DOUBLE 12
-
-#if defined (__GNUG__)
-# include "ace/config-g++-common.h"
-#endif /* __GNUG__ */
-
-#if defined (ACE_HAS_PENTIUM)
-# undef ACE_HAS_PENTIUM
-#endif /* ACE_HAS_PENTIUM */
-
-// Platform specific directives
-// gcc defines __FreeBSD__ automatically for us.
-#if !defined (_THREAD_SAFE)
-#define _THREAD_SAFE
-#endif /* _THREAD_SAFE */
-
-#define ACE_HAS_GPERF
-
-#if (__FreeBSD_version < 420000)
-#define ACE_LACKS_GETPGID
-#define ACE_LACKS_SETPGID
-#define ACE_LACKS_SETREGID
-#define ACE_LACKS_SETREUID
-#endif /* __FreeBSD_version < 420000 */
-
-#define ACE_HAS_ALT_CUSERID
-#define ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS
-#define ACE_LACKS_RWLOCK_T
-#define ACE_LACKS_READDIR_R
-#define ACE_HAS_SIG_MACROS
-// Optimize ACE_Handle_Set for select().
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-#define ACE_HAS_NONCONST_SELECT_TIMEVAL
-#define ACE_HAS_CHARPTR_DL
-//#define ACE_USES_ASM_SYMBOL_IN_DLSYM
-#define ACE_LACKS_SIGSET
-#define ACE_NEEDS_SCHED_H
-
-// Use of <malloc.h> is deprecated.
-#define ACE_LACKS_MALLOC_H
-
-// sched.h still not fully support on FreeBSD ?
-// this is taken from /usr/src/lib/libc_r/uthread/pthread-private.h
-enum schedparam_policy {
- SCHED_RR,
- SCHED_IO,
- SCHED_FIFO,
- SCHED_OTHER
-};
-
-// This won't be necessary after it is fixed in the system include headers.
-extern "C" { char * cuserid (char *s); }
-
-// Platform supports POSIX timers via struct timespec.
-#define ACE_HAS_POSIX_TIME
-#define ACE_HAS_UALARM
-
-// Platform defines struct timespec but not timespec_t
-#define ACE_LACKS_TIMESPEC_T
-
-#define ACE_LACKS_SYSTIME_H
-
-#define ACE_LACKS_STRRECVFD
-
-#define ACE_HAS_SIN_LEN
-
-// Platform supports System V IPC (most versions of UNIX, but not Win32)
-#define ACE_HAS_SYSV_IPC
-
-// Compiler/platform contains the <sys/syscall.h> file.
-#define ACE_HAS_SYSCALL_H
-
-#if (__FreeBSD_version >= 300000)
-#define ACE_HAS_SIGINFO_T
-#endif /* __FreeBSD_version >= 300000 */
-
-#if (__FreeBSD_version >= 320000)
-#define ACE_HAS_REENTRANT_FUNCTIONS
-#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
-#define ACE_LACKS_PWD_REENTRANT_FUNCTIONS
-#define ACE_LACKS_RAND_REENTRANT_FUNCTIONS
-#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
-#endif /* __FreeBSD_version >= 320000 */
-
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-#define ACE_LACKS_SIGINFO_H
-#define ACE_LACKS_UCONTEXT_H
-#define ACE_LACKS_SI_ADDR
-
-// Compiler/platform supports SVR4 signal typedef
-#define ACE_HAS_SVR4_SIGNAL_T
-
-// Compiler/platform supports alloca().
-#define ACE_HAS_ALLOCA
-
-// Compiler/platform supports SVR4 dynamic linking semantics..
-#define ACE_HAS_SVR4_DYNAMIC_LINKING
-
-// Compiler/platform correctly calls init()/fini() for shared libraries.
-#define ACE_HAS_AUTOMATIC_INIT_FINI
-
-// Explicit dynamic linking permits "lazy" symbol resolution
-#define ACE_HAS_RTLD_LAZY_V
-
-// platform supports POSIX O_NONBLOCK semantics
-#define ACE_HAS_POSIX_NONBLOCK
-
-// platform supports IP multicast
-#define ACE_HAS_IP_MULTICAST
-
-// Compiler/platform has <alloca.h>
-//#define ACE_HAS_ALLOCA_H
-
-// Compiler/platform has the getrusage() system call.
-#define ACE_HAS_GETRUSAGE
-
-// Compiler/platform defines the sig_atomic_t typedef.
-#define ACE_HAS_SIG_ATOMIC_T
-
-// Compiler/platform supports sys_siglist array.
-// *** This refers to (_sys_siglist) instead of (sys_siglist)
-// #define ACE_HAS_SYS_SIGLIST
-
-// Compiler/platform defines a union semun for SysV shared memory.
-#define ACE_HAS_SEMUN
-
-// Compiler supports the ssize_t typedef.
-#define ACE_HAS_SSIZE_T
-
-// Compiler/platform supports strerror ().
-#define ACE_HAS_STRERROR
-
-// Compiler/platform provides the sockio.h file.
-#define ACE_HAS_SOCKIO_H
-
-// Defines the page size of the system.
-#define ACE_PAGE_SIZE 4096
-
-// Platform provides <sys/filio.h> header.
-#define ACE_HAS_SYS_FILIO_H
-
-// Compiler/platform supports SVR4 gettimeofday() prototype
-#define ACE_HAS_SUNOS4_GETTIMEOFDAY
-// #define ACE_HAS_TIMEZONE_GETTIMEOFDAY
-
-// Turns off the tracing feature.
-#if !defined (ACE_NTRACE)
-#define ACE_NTRACE 1
-#endif /* ACE_NTRACE */
-
-#define ACE_HAS_MSG
-#define ACE_HAS_4_4BSD_SENDMSG_RECVMSG
-#define ACE_HAS_NONCONST_MSGSND
-
-// Thread specific settings
-// Yes, we do have threads.
-#define ACE_HAS_THREADS
-// And they're even POSIX pthreads
-#if !defined (ACE_MT_SAFE)
-# define ACE_MT_SAFE 1
-#endif /* ! ACE_MT_SAFE */
-#define ACE_HAS_PTHREADS
-#define ACE_LACKS_SETSCHED
-#define ACE_LACKS_PTHREAD_CANCEL
-#define ACE_LACKS_THREAD_PROCESS_SCOPING
-#define ACE_LACKS_PTHREAD_THR_SIGSETMASK
-#define ACE_LACKS_CONDATTR_PSHARED
-#define ACE_LACKS_MUTEXATTR_PSHARED
-#define ACE_HAS_THREAD_SPECIFIC_STORAGE
-#define ACE_HAS_DIRENT
-
-#define ACE_HAS_SIGWAIT
-
-#define ACE_HAS_TERM_IOCTLS
-#define ACE_USES_NEW_TERMIOS_STRUCT
-#define TCGETS TIOCGETA
-#define TCSETS TIOCSETA
-
-#if (__FreeBSD_version > 400000)
-#undef ACE_LACKS_SETSCHED
-#undef ACE_LACKS_SIGSET
-#undef ACE_LACKS_UCONTEXT_H
-#define ACE_HAS_UCONTEXT_T
-#define ACE_HAS_SOCKLEN_T
-#define ACE_HAS_GETIFADDRS
-#endif
-
-#include <unistd.h>
-#include <signal.h>
-/* POSIX Realtime signals are not fully implemented in FreeBSD.
- When they are implemented, then _POSIX_REALTIME_SIGNALS will be
- defined, as specified in the POSIX standard.
- Refer to e-mail thread on freebsd-hackers mailing list, October 2002. */
-#if defined (_POSIX_REALTIME_SIGNALS) && (_POSIX_REALTIME_SIGNALS != -1)
-# define ACE_HAS_AIO_CALLS
-# ifndef SIGRTMIN
-# define SIGRTMIN 32
-# endif /* SIGRTMIN */
-# ifndef SIGRTMAX
-# define SIGRTMAX (_SIG_MAXSIG - 1)
-# endif /* SIGRTMAX */
-#endif /* _POSIX_REALTIME_SIGNALS */
-
-#include "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/ace/config-freebsd.h b/ace/config-freebsd.h
index 68c71148c6b..01bd5672d4d 100644
--- a/ace/config-freebsd.h
+++ b/ace/config-freebsd.h
@@ -1,15 +1,17 @@
/* -*- C++ -*- */
// $Id$
-// ***** This configuration file is still under testing. *****
-
// The following configuration file is designed to work for FreeBSD
-// platforms using GNU C++ but without the POSIX (pthread) threads package
+// platforms with GNU C++ and the POSIX (pthread) threads package.
+
+// Notice that the threaded version of ACE is only supported for -current.
-#ifndef ACE_CONFIG_FREEBSD_H
-#define ACE_CONFIG_FREEBSD_H
+#ifndef ACE_CONFIG_H
+#define ACE_CONFIG_H
#include "ace/pre.h"
+#include "ace/config-posix.h"
+
#include <osreldate.h>
// Make sure we source in the OS version.
@@ -17,7 +19,7 @@
#define __ACE_INLINE__
#endif /* ! __ACE_INLINE__ */
-#if (__FreeBSD_version < 220000) && defined (_THREAD_SAFE)
+#if (__FreeBSD_version < 220000)
#error Threads are not supported.
#endif /* __FreeBSD_version < 220000 */
@@ -27,69 +29,57 @@
# include "ace/config-g++-common.h"
#endif /* __GNUG__ */
-#define ACE_HAS_GPERF
+#if defined (ACE_HAS_PENTIUM)
+# undef ACE_HAS_PENTIUM
+#endif /* ACE_HAS_PENTIUM */
// Platform specific directives
+// gcc defines __FreeBSD__ automatically for us.
+#ifdef ACE_HAS_THREADS
+#if !defined (_THREAD_SAFE)
+#define _THREAD_SAFE
+#endif /* _THREAD_SAFE */
+#endif
+
+#define ACE_HAS_GPERF
+
+#if (__FreeBSD_version < 420000)
#define ACE_LACKS_GETPGID
#define ACE_LACKS_SETPGID
#define ACE_LACKS_SETREGID
#define ACE_LACKS_SETREUID
+#endif /* __FreeBSD_version < 420000 */
+
+#define ACE_HAS_ALT_CUSERID
+#define ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS
#define ACE_LACKS_RWLOCK_T
#define ACE_LACKS_READDIR_R
#define ACE_HAS_SIG_MACROS
+// Optimize ACE_Handle_Set for select().
+#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
+#define ACE_HAS_NONCONST_SELECT_TIMEVAL
#define ACE_HAS_CHARPTR_DL
-#define ACE_HAS_DIRENT
-#define ACE_USES_ASM_SYMBOL_IN_DLSYM
+
+#if (__FreeBSD_version < 400000)
#define ACE_LACKS_SIGSET
-#define ACE_LACKS_SIGINFO_H
-#define ACE_LACKS_UCONTEXT_H
-#define ACE_LACKS_SI_ADDR
+#endif
-#if (__FreeBSD__ > 2)
-#define ACE_HAS_SIGINFO_T
-#endif /* __FreeBSD__ > 2 */
+#define ACE_NEEDS_SCHED_H
// Use of <malloc.h> is deprecated.
#define ACE_LACKS_MALLOC_H
-// This is for 2.1.x only. By default, gcc defines __FreeBSD__ automatically
-#if (__FreeBSD_version < 220000)
+// sched.h still not fully support on FreeBSD ?
+// this is taken from /usr/src/lib/libc_r/uthread/pthread-private.h
+enum schedparam_policy {
+ SCHED_RR,
+ SCHED_IO,
+ SCHED_FIFO,
+ SCHED_OTHER
+};
-#define ACE_HAS_CPLUSPLUS_HEADERS
-
-// This is to fix the nested struct if_data definition on FreeBSD 2.1.x
-#include <sys/types.h>
-#include <sys/time.h>
-struct if_data {
-/* generic interface information */
- u_char ifi_type; /* ethernet, tokenring, etc */
- u_char ifi_physical; /* e.g., AUI, Thinnet, 10base-T, etc */
- u_char ifi_addrlen; /* media address length */
- u_char ifi_hdrlen; /* media header length */
- u_long ifi_mtu; /* maximum transmission unit */
- u_long ifi_metric; /* routing metric (external only) */
- u_long ifi_baudrate; /* linespeed */
-/* volatile statistics */
- u_long ifi_ipackets; /* packets received on interface */
- u_long ifi_ierrors; /* input errors on interface */
- u_long ifi_opackets; /* packets sent on interface */
- u_long ifi_oerrors; /* output errors on interface */
- u_long ifi_collisions; /* collisions on csma interfaces */
- u_long ifi_ibytes; /* total number of octets received */
- u_long ifi_obytes; /* total number of octets sent */
- u_long ifi_imcasts; /* packets received via multicast */
- u_long ifi_omcasts; /* packets sent via multicast */
- u_long ifi_iqdrops; /* dropped on input, this interface */
- u_long ifi_noproto; /* destined for unsupported protocol */
- struct timeval ifi_lastchange;/* time of last administrative ch
-ange */
-} ;
-
-// this is a hack, but since this only occured in FreeBSD 2.1.x,
-// I guess it is ok.
-#define ACE_HAS_BROKEN_TIMESPEC_MEMBERS
-
-#endif /* __FreeBSD_version < 220000 */
+// This won't be necessary after it is fixed in the system include headers.
+extern "C" { char * cuserid (char *s); }
// Platform supports POSIX timers via struct timespec.
#define ACE_HAS_POSIX_TIME
@@ -110,9 +100,26 @@ ange */
// Compiler/platform contains the <sys/syscall.h> file.
#define ACE_HAS_SYSCALL_H
-#if !defined(FreeBSD_2_1)
+#if (__FreeBSD_version >= 300000)
+#define ACE_HAS_SIGINFO_T
+#endif /* __FreeBSD_version >= 300000 */
+
+#if (__FreeBSD_version >= 320000)
+#define ACE_HAS_REENTRANT_FUNCTIONS
+#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
+#define ACE_LACKS_PWD_REENTRANT_FUNCTIONS
+#define ACE_LACKS_RAND_REENTRANT_FUNCTIONS
+#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
+#endif /* __FreeBSD_version >= 320000 */
+
#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-#endif /* defined FreeBSD_2_1 */
+#define ACE_LACKS_SIGINFO_H
+
+#if (__FreeBSD_version < 400000)
+#define ACE_LACKS_UCONTEXT_H
+#endif
+
+#define ACE_LACKS_SI_ADDR
// Compiler/platform supports SVR4 signal typedef
#define ACE_HAS_SVR4_SIGNAL_T
@@ -179,18 +186,53 @@ ange */
#define ACE_HAS_4_4BSD_SENDMSG_RECVMSG
#define ACE_HAS_NONCONST_MSGSND
-#if (__FreeBSD_version >= 228000)
-#define ACE_HAS_SIGWAIT
-#endif /* __FreeBSD_version >= 22800 */
+// Thread specific settings
+// Yes, we do have threads.
+#ifdef ACE_HAS_THREADS
+#if !defined (ACE_MT_SAFE)
+# define ACE_MT_SAFE 1
+#endif /* ! ACE_MT_SAFE */
+#endif /* ACE_HAS_THREADS */
+
+#if (__FreeBSD_version > 400000)
+#define ACE_LACKS_SETSCHED
+#endif
+
+#if (__FreeBSD_version < 420000)
+#define ACE_LACKS_PTHREAD_CANCEL
+#endif
+
+#define ACE_LACKS_THREAD_PROCESS_SCOPING
+#define ACE_LACKS_PTHREAD_THR_SIGSETMASK
+#define ACE_LACKS_CONDATTR_PSHARED
+#define ACE_LACKS_MUTEXATTR_PSHARED
+#define ACE_HAS_THREAD_SPECIFIC_STORAGE
+#define ACE_HAS_DIRENT
-// Optimize ACE_Handle_Set for select().
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-#define ACE_HAS_NONCONST_SELECT_TIMEVAL
+#define ACE_HAS_SIGWAIT
#define ACE_HAS_TERM_IOCTLS
#define ACE_USES_NEW_TERMIOS_STRUCT
#define TCGETS TIOCGETA
#define TCSETS TIOCSETA
+#if (__FreeBSD_version > 400000)
+#define ACE_HAS_UCONTEXT_T
+#define ACE_HAS_SOCKLEN_T
+#define ACE_HAS_GETIFADDRS
+#endif
+
+// By default use Proactor which does not use POSIX Real-time Signals
+#ifdef ACE_HAS_AIO_CALLS
+#ifndef ACE_POSIX_AIOCB_PROACTOR
+#define ACE_POSIX_AIOCB_PROACTOR
+#endif /* ACE_POSIX_AIOCB_PROACTOR */
+#endif /* ACE_HAS_AIO_CALLS */
+
+/* FreeBSD does not define sigval_t */
+#include <sys/signal.h>
+typedef union sigval sigval_t;
+
#include "ace/post.h"
-#endif /* ACE_CONFIG_FREEBSD_H */
+
+#endif /* ACE_CONFIG_H */
diff --git a/ace/config-linux-common.h b/ace/config-linux-common.h
index 63acbe7c29b..473ce1e6345 100644
--- a/ace/config-linux-common.h
+++ b/ace/config-linux-common.h
@@ -168,6 +168,16 @@
# endif /* ACE_POSIX_SIG_PROACTOR */
#if __GLIBC__ >= 2
+#ifndef ACE_HAS_POSIX_REALTIME_SIGNALS
+#define ACE_HAS_POSIX_REALTIME_SIGNALS
+#endif /* ACE_HAS_POSIX_REALTIME_SIGNALS */
+
+#ifndef ACE_HAS_AIO_CALLS
+#define ACE_HAS_AIO_CALLS
+#endif /* ACE_HAS_AIO_CALLS */
+#endif
+
+#if __GLIBC__ >= 2
// glibc 2 and higher has wchar support
# define ACE_HAS_XPG4_MULTIBYTE_CHAR
#endif
diff --git a/ace/config-posix.h b/ace/config-posix.h
new file mode 100644
index 00000000000..be5734c451a
--- /dev/null
+++ b/ace/config-posix.h
@@ -0,0 +1,60 @@
+/* -*- C++ -*- */
+// $Id$
+
+#ifndef ACE_CONFIG_POSIX_H
+#define ACE_CONFIG_POSIX_H
+
+#include <unistd.h>
+
+/* The following POSIX constants are defined after <unistd.h> is
+ * included. They are documented in:
+ * http://www.opengroup.org/onlinepubs/007904975/basedefs/unistd.h.html
+ */
+#if defined(_POSIX_REALTIME_SIGNALS) && (_POSIX_REALTIME_SIGNALS-0 != -1 )
+# if !defined(ACE_HAS_POSIX_REALTIME_SIGNALS)
+# define ACE_HAS_POSIX_REALTIME_SIGNALS
+# endif /* ACE_HAS_POSIX_REALTIME_SIGNALS */
+#endif /* _POSIX_REALTIME_SIGNALS */
+
+#if defined(_POSIX_ASYNCHRONOUS_IO) && (_POSIX_ASYNCHRONOUS_IO-0 != -1 )
+# if !defined(ACE_HAS_AIO_CALLS)
+# define ACE_HAS_AIO_CALLS
+# endif /* ACE_HAS_AIO_CALLS */
+#endif /* _POSIX_ASYNCHRONOUS_IO */
+
+#if defined(_POSIX_SEMAPHORES) && (_POSIX_SEMAPHORES-0 != -1 )
+# if !defined(ACE_HAS_POSIX_SEM)
+# define ACE_HAS_POSIX_SEM
+# endif /* ACE_HAS_POSIX_SEM */
+#endif /* ACE_HAS_POSIX_SEM */
+
+#if defined(_POSIX_MESSAGE_PASSING) && (_POSIX_MESSAGE_PASSING-0 != -1 )
+# if !defined(ACE_HAS_POSIX_MESSAGE_PASSING)
+# define ACE_HAS_POSIX_MESSAGE_PASSING
+# endif /* ACE_HAS_POSIX_MESSAGE_PASSING */
+#endif /* _POSIX_MESSAGE_PASSING */
+
+#if defined(_POSIX_SHARED_MEMORY_OBJECTS) && (_POSIX_SHARED_MEMORY_OBJECTS-0 != -1 )
+# if !defined(ACE_HAS_SHM_OPEN)
+# define ACE_HAS_SHM_OPEN
+# endif /* ACE_HAS_SHM_OPEN */
+#endif /* _POSIX_SHARED_MEMORY_OBJECTS */
+
+#if defined(_POSIX_THREADS) && (_POSIX_THREADS-0 != -1 )
+# if !defined(ACE_HAS_THREADS)
+# define ACE_HAS_THREADS
+# endif /* ACE_HAS_THREADS */
+
+# if !defined(ACE_HAS_PTHREADS)
+# define ACE_HAS_PTHREADS
+# endif /* ACE_HAS_PTHREADS */
+#endif /* _POSIX_THREADS */
+
+#if defined(_POSIX_MESSAGE_PASSING) && (_POSIX_MESSAGE_PASSING-0 != -1 )
+# if !defined(ACE_HAS_POSIX_MESSAGE_PASSING)
+# define ACE_HAS_POSIX_MESSAGE_PASSING
+# endif /* ACE_HAS_POSIX_MESSAGE_PASSING */
+#endif /* _POSIX_MESSAGE_PASSING */
+
+#endif /* ACE_CONFIG_POSIX_H */
+
diff --git a/ace/config-sunos5.6.h b/ace/config-sunos5.6.h
index 7888bebcc9c..81127a1a809 100644
--- a/ace/config-sunos5.6.h
+++ b/ace/config-sunos5.6.h
@@ -111,10 +111,22 @@
#define ACE_HAS_AIO_CALLS
#endif /* ACE_HAS_AIO_CALLS */
+#if !defined (ACE_HAS_POSIX_REALTIME_SIGNALS)
+#define ACE_HAS_POSIX_REALTIME_SIGNALS
+#endif /* ACE_HAS_POSIX_REALTIME_SIGNALS */
+
+#if !defined (ACE_HAS_POSIX_MESSAGE_PASSING)
+#define ACE_HAS_POSIX_MESSAGE_PASSING
+#endif /* ACE_HAS_POSIX_MESSAGE_PASSING */
+
+#if !defined (ACE_HAS_POSIX_SEM)
#define ACE_HAS_POSIX_SEM
+#endif /* ACE_HAS_POSIX_SEM */
// Sunos 5.6's aio_* with RT signals is broken.
+#if !defined (ACE_POSIX_AIOCB_PROACTOR)
#define ACE_POSIX_AIOCB_PROACTOR
+#endif /* ACE_POSIX_AIOCB_PROACTOR */
// SunOS 5.6 has a buggy select
#define ACE_HAS_LIMITED_SELECT