summaryrefslogtreecommitdiff
path: root/ACE/ace/config-aix-4.x.h
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/ace/config-aix-4.x.h')
-rw-r--r--ACE/ace/config-aix-4.x.h347
1 files changed, 347 insertions, 0 deletions
diff --git a/ACE/ace/config-aix-4.x.h b/ACE/ace/config-aix-4.x.h
new file mode 100644
index 00000000000..d434ad61003
--- /dev/null
+++ b/ACE/ace/config-aix-4.x.h
@@ -0,0 +1,347 @@
+/* -*- C++ -*- */
+// $Id$
+
+// The following configuration file is designed to work for OS
+// platforms running AIX 4.x using the IBM C++ compiler (xlC),
+// Visual Age C++ or g++.
+
+#ifndef ACE_CONFIG_H
+#define ACE_CONFIG_H
+#include /**/ "ace/pre.h"
+
+// Both IBM and g++ compilers set _THREAD_SAFE if compiler is asked to compile
+// threaded code (xlC_r, as opposed to xlC; and g++ -pthread)
+#if !defined (ACE_MT_SAFE) || (ACE_MT_SAFE != 0)
+# if defined (ACE_HAS_THREADS)
+# undef ACE_HAS_THREADS
+# endif
+# if defined (_THREAD_SAFE)
+# define ACE_HAS_THREADS 1
+// # else
+// # define ACE_HAS_THREADS 0
+# endif /* _THREAD_SAFE */
+#endif /* !ACE_MT_SAFE || (ACE_MT_SAFE != 0) */
+
+#if defined (__xlC__) || defined (__IBMCPP__)
+ // AIX xlC, IBM C/C++, and Visual Age C++ compilers
+ //********************************************************************
+ //
+
+// Compiler does this with a builtin - it's not in libc.
+// Although ACE does have alloca() on this compiler/platform combination, it is
+// disabled by default since it can be dangerous. Uncomment the following line
+// if you ACE to use it.
+//# define ACE_HAS_ALLOCA
+
+// Compiler supports the ssize_t typedef.
+# define ACE_HAS_SSIZE_T
+
+// When using the preprocessor, Ignore info msg; invalid #pragma
+# if defined (__IBMCPP__) && (__IBMCPP__ < 400) // IBM C++ 3.6
+# define ACE_CC_PREPROCESSOR_ARGS "-E -qflag=w:w"
+# endif /* (__IBMCPP__) && (__IBMCPP__ < 400) */
+
+ // Keep an eye on this as the compiler and standards converge...
+# define ACE_LACKS_LINEBUFFERED_STREAMBUF
+# define ACE_LACKS_PRAGMA_ONCE
+
+ // C Set++ 3.1, IBM C/C++ 3.6, and Visual Age C++ 5 batch (__xlC__)
+# if defined (__xlC__)
+# if (__xlC__ < 0x0500)
+# define ACE_LACKS_PLACEMENT_OPERATOR_DELETE
+# endif /* __xlC__ < 0x0500 */
+# endif
+
+ // These are for Visual Age C++ only
+# if defined (__IBMCPP__) && (__IBMCPP__ >= 400)
+# define ACE_EXPLICIT_TEMPLATE_DESTRUCTOR_TAKES_ARGS
+# define ACE_HAS_TYPENAME_KEYWORD
+ // When using -qtempinc, we don't need to see template implementation
+ // source (though we do need a pragma to find the correct source file).
+ // However, without -qtempinc (either -qnotempinc or -qtemplateregistry)
+ // we do need to see the source.
+# if defined (__TEMPINC__)
+# if !defined ACE_TEMPLATES_REQUIRE_PRAGMA
+# define ACE_TEMPLATES_REQUIRE_PRAGMA
+# endif
+# else
+# if !defined (ACE_TEMPLATES_REQUIRE_SOURCE)
+# define ACE_TEMPLATES_REQUIRE_SOURCE
+# endif
+# endif /* __TEMPINC__ */
+
+# undef WIFEXITED
+# undef WEXITSTATUS
+
+# if (__IBMCPP__ >= 500) /* Visual Age C++ 5 */
+# define ACE_HAS_STANDARD_CPP_LIBRARY 1
+# define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
+# endif /* __IBMCPP__ >= 500 */
+
+# if (__IBMCPP__ >= 600) /* Visual Age 6 and XL C/C++ 7 and up */
+# define ACE_HAS_TEMPLATE_TYPEDEFS
+# endif /* __IBMCPP__ >= 600 */
+# endif /* __IBMCPP__ */
+
+#elif defined (__GNUG__)
+ // config-g++-common.h undef's ACE_HAS_STRING_CLASS with -frepo, so
+ // this must appear before its #include.
+# define ACE_HAS_STRING_CLASS
+
+# include "ace/config-g++-common.h"
+ // Denotes that GNU has cstring.h as standard, to redefine memchr().
+# define ACE_HAS_GNU_CSTRING_H
+# define ACE_HAS_SSIZE_T
+
+# if (__GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ == 0))
+// We have to explicitly instantiate static template members prior to g++ 4.1
+# define ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION
+#endif /* g++ prior to 4.1 */
+
+# if !defined (ACE_MT_SAFE) || ACE_MT_SAFE != 0
+ // ACE_MT_SAFE is #defined below, for all compilers.
+# if !defined (_REENTRANT)
+# define _REENTRANT
+# endif /* _REENTRANT */
+# endif /* !ACE_MT_SAFE */
+
+#else /* ! __xlC__ && ! __GNUG__ */
+# ifdef __cplusplus /* Let it slide for C compilers. */
+# error unsupported compiler in ace/config-aix-4.x.h
+# endif /* __cplusplus */
+#endif /* ! __xlC__ && ! __GNUG__ */
+
+
+// Compiling for AIX.
+#ifndef AIX
+# define AIX
+#endif /* AIX */
+
+// Pick up all the detectable settings.
+#include "ace/config-posix.h"
+
+#if defined (ACE_HAS_POSIX_SEM_TIMEOUT)
+# undef ACE_HAS_POSIX_SEM_TIMEOUT
+#endif /* ACE_HAS_POSIX_SEM_TIMEOUT */
+
+// AIX shared libs look strangely like archive libs until you look inside
+// them.
+#if defined (ACE_DLL_SUFFIX)
+# undef ACE_DLL_SUFFIX
+#endif
+#define ACE_DLL_SUFFIX ".a"
+
+// Use BSD 4.4 socket definitions for pre-AIX 4.2. The _BSD setting also
+// controls the data type used for waitpid(), wait(), and wait3().
+#if (ACE_AIX_VERS < 402)
+# define _BSD 44
+# define ACE_HAS_UNION_WAIT
+#endif /* ACE_AIX_VERS < 402 */
+
+// This environment requires this thing, pre-AIX 4.3
+#if (ACE_AIX_VERS < 403)
+# define _BSD_INCLUDES
+#endif /* ACE_AIX_VERS < 403 */
+
+#define ACE_DEFAULT_BASE_ADDR ((char *) 0x80000000)
+
+#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
+
+// ACE_HAS_AIX_BROKEN_SOCKET_HEADER may be required if your OS patches are
+// not up to date. On up-to-date 4.2+ systems, it should not be required.
+// 4.2+ has 4.4 BSD sendmsg/recvmsg
+#if (ACE_AIX_VERS < 402)
+# define ACE_HAS_AIX_BROKEN_SOCKET_HEADER
+#else
+# if (ACE_AIX_VERS == 402)
+# define ACE_HAS_SIZET_SOCKET_LEN
+# else
+# define ACE_HAS_SOCKLEN_T
+# endif
+# define ACE_HAS_4_4BSD_SENDMSG_RECVMSG
+#endif /* ACE_AIX_VERS < 402 */
+
+#if (ACE_AIX_VERS >= 403)
+// AIX has AIO, but the functions don't match those of other AIO-enabled
+// platforms. If this is to work, it'll require some significant work,
+// maybe moving the OS-abstraction stuff to an OS_AIO or some such thing.
+//# define ACE_HAS_AIO_CALLS
+#endif /* ACE_AIX_VERS >= 403 */
+
+#define ACE_HAS_AIX_HI_RES_TIMER
+
+// Compiler/platform has correctly prototyped header files.
+#define ACE_HAS_CPLUSPLUS_HEADERS
+#if (ACE_AIX_VERS < 403)
+# define ACE_HAS_CHARPTR_DL
+#endif /* ACE_AIX_VERS < 403 */
+
+// Prototypes for both signal() and struct sigaction are consistent.
+#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
+
+// OS has readdir and friends.
+#define ACE_HAS_DIRENT
+
+// OS supports the getrusage() system call
+#define ACE_HAS_GETRUSAGE
+
+#define ACE_HAS_GPERF
+
+#define ACE_HAS_H_ERRNO
+
+#define ACE_LACKS_STDINT_H
+#define ACE_LACKS_SYS_SYSCTL_H
+
+#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
+#define ACE_HAS_NONCONST_SELECT_TIMEVAL
+#define ACE_HAS_IP_MULTICAST
+
+// Lacks perfect filtering, must bind group address.
+#if !defined ACE_LACKS_PERFECT_MULTICAST_FILTERING
+# define ACE_LACKS_PERFECT_MULTICAST_FILTERING 1
+#endif /* ACE_LACKS_PERFECT_MULTICAST_FILTERING */
+
+#define ACE_HAS_MSG
+#if (ACE_AIX_VERS < 402)
+# define ACE_LACKS_MSG_ACCRIGHTS
+# define ACE_LACKS_RLIMIT
+#endif
+
+// Compiler/platform supports poll().
+#define ACE_HAS_POLL
+
+// Platform supports POSIX O_NONBLOCK semantics.
+#define ACE_HAS_POSIX_NONBLOCK
+
+#define ACE_HAS_POSIX_TIME
+// ... but needs to include another header for it on 4.2+
+#if (ACE_AIX_VERS >= 402)
+# define ACE_HAS_BROKEN_POSIX_TIME
+#endif /* ACE_AIX_VERS > 402 */
+// ... and needs another typedef
+#define ACE_LACKS_TIMESPEC_T
+#define ACE_HAS_SELECT_H
+
+#define ACE_HAS_REENTRANT_FUNCTIONS
+
+// Compiler/platform defines the sig_atomic_t typedef
+#define ACE_HAS_SIG_ATOMIC_T
+#if (ACE_AIX_VERS >= 402)
+# define ACE_HAS_SIGINFO_T
+# define ACE_LACKS_SIGINFO_H
+#endif /* ACE_AIX_VERS >= 402 */
+#if (ACE_AIX_VERS >= 403)
+// it may exist in earlier revs, but I'm not sure and I don't have a
+// system to validate
+# define ACE_HAS_P_READ_WRITE
+#endif /* ACE_AIX_VERS >= 403 */
+
+#define ACE_HAS_SIGWAIT
+#define ACE_HAS_SOCKADDR_IN_SIN_LEN
+#define ACE_HAS_STRBUF_T
+
+// Compiler supports stropts.h
+#define ACE_HAS_STREAMS
+// #define ACE_HAS_STREAM_PIPES
+
+// Compiler/platform supports strerror ().
+#define ACE_HAS_STRERROR
+
+// AIX bzero()
+#define ACE_HAS_STRINGS
+
+#define ACE_HAS_STRUCT_NETDB_DATA
+
+// Dynamic linking is in good shape on newer OS/patch levels. If you have
+// trouble with the dynamic linking parts of ACE, and can't patch your OS
+// up to latest levels, comment this out.
+#define ACE_HAS_SVR4_DYNAMIC_LINKING
+// This is tightly related to dynamic linking...
+#define ACE_HAS_AUTOMATIC_INIT_FINI
+
+#define ACE_HAS_SVR4_GETTIMEOFDAY
+
+#define ACE_HAS_SYSV_IPC
+#define ACE_HAS_TIMOD_H
+#define ACE_HAS_XTI
+#define ACE_HAS_BROKEN_T_ERROR
+#define ACE_TLI_TCP_DEVICE "/dev/xti/tcp"
+
+#define ACE_HAS_UALARM
+
+#if (ACE_AIX_VERS >= 402)
+# define ACE_HAS_UCONTEXT_T
+#endif /* ACE_AIX_VERS >= 402 */
+
+#define ACE_HAS_UTIME
+
+// Platform has XPG4 wide character type and functions. However, the size
+// of wchar_t changes for 32- vs. 64-bit builds (unsigned short vs. unsigned
+// int, respectively).
+#define ACE_HAS_XPG4_MULTIBYTE_CHAR
+#ifdef __64BIT__
+# define ACE_SIZEOF_WCHAR 4
+#else
+# define ACE_SIZEOF_WCHAR 2
+#endif /* __64BIT__ */
+
+#define ACE_LACKS_NETINET_TCP_H
+
+// AIX uses LIBPATH to search for libraries
+#define ACE_LD_SEARCH_PATH "LIBPATH"
+
+// Defines the page size of the system.
+#define ACE_PAGE_SIZE 4096
+
+//**************************************************************
+//
+// Threads related definitions.
+//
+// The threads on AIX are generally POSIX P1003.1c (ACE_HAS_PTHREADS).
+// However, there is also a kernel thread ID (tid_t) that is used in
+// ACE_Log_Msg (printing the thread ID). The tid_t is not the same as
+// pthread_t, and can't derive one from the other - thread_self() gets
+// the tid_t (kernel thread ID) if called from a thread.
+// Thanks very much to Chris Lahey for straightening this out.
+
+#if defined (ACE_HAS_THREADS)
+# if !defined (ACE_MT_SAFE)
+# define ACE_MT_SAFE 1
+# endif
+
+# define ACE_HAS_PTHREADS
+// 4.3 and up has 1003.1c standard; 4.2 has draft 7
+# if (ACE_AIX_VERS >= 403)
+# define ACE_HAS_PTHREADS_STD
+# define ACE_HAS_PTHREADS_UNIX98_EXT
+# define ACE_HAS_PTHREAD_CONTINUE_NP
+# define ACE_HAS_PTHREAD_SUSPEND_NP
+# define ACE_HAS_RECURSIVE_MUTEXES
+# else
+# define ACE_HAS_PTHREADS_DRAFT7
+# define ACE_LACKS_RWLOCK_T
+# define ACE_LACKS_THREAD_STACK_ADDR
+// If ACE doesn't compile due to the lack of these methods, please
+// send email to ace-users@cs.wustl.edu reporting this.
+// #define ACE_LACKS_CONDATTR_PSHARED
+// #define ACE_LACKS_MUTEXATTR_PSHARED
+# define ACE_LACKS_SETSCHED
+# endif /* ACE_AIX_VERS >= 403 */
+
+# define ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS
+# define ACE_HAS_SIGTHREADMASK
+# define ACE_HAS_THREAD_SPECIFIC_STORAGE
+
+# define ACE_LACKS_THREAD_PROCESS_SCOPING
+#else
+# undef ACE_HAS_THREADS
+#endif /* ACE_HAS_THREADS != 0 */
+
+#define ACE_MALLOC_ALIGN 8
+
+#if (defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) >= 500) && !defined(_UNIX95)
+# define ACE_HAS_3_PARAM_WCSTOK
+#endif /* (_XOPEN_SOURCE -0) >= 500 && !_UNIX95 */
+
+#include /**/ "ace/post.h"
+#endif /* ACE_CONFIG_H */