summaryrefslogtreecommitdiff
path: root/ACE/ace/README
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/ace/README')
-rw-r--r--ACE/ace/README1782
1 files changed, 1782 insertions, 0 deletions
diff --git a/ACE/ace/README b/ACE/ace/README
new file mode 100644
index 00000000000..765d1ea5aa8
--- /dev/null
+++ b/ACE/ace/README
@@ -0,0 +1,1782 @@
+// $Id$
+
+ACE Portability Macros
+----------------------
+
+The following describes the meaning of the C++ compiler macros that
+can be set in the config*.h file. When you port ACE to a new platform
+and/or C++ compiler, make sure that you check to see which of these
+need to be defined. It's helpful to check the various config*.h files
+in this directory to see what's already been defined. If you need to
+add new macros, please send them to me and I'll add them to this file.
+
+Eventually, most of this information should be auto-discovered via GNU
+autoconf, which is currently available in the ACE distribution.
+
+Macro Description
+----- -----------
+
+ACE_HAS_DUMP Used to enable the dump()
+ method bodies. If not
+ defined, the bodies are ifdef
+ out in order to reduce
+ footprint. By default, it is
+ not defined.
+ACE_CAST_CONST Used to work around broken
+ SunCC ANSI casts that require
+ an extra const.
+ACE_DEFINES_DEFAULT_WIN32_SECURITY_ATTRIBUTES
+ Win32 only. Users want to use
+ a predefined security
+ attributes defined in
+ ACE_OS::default_win32_security_attributes
+ as the default security
+ object.
+ACE_DISABLE_DEBUG_DLL_CHECK Define this if you don't want
+ debug version ACE search for
+ debug version DLLs first
+ before looking for the DLL
+ names specified.
+ACE_DOESNT_INSTANTIATE_NONSTATIC_OBJECT_MANAGER
+ Application will allocate its
+ own object manager. This
+ implicitly defines
+ ACE_HAS_NONSTATIC_OBJECT_MANAGER.
+ Usually used with MFC
+ applications.
+ACE_GETNAME_RETURNS_RANDOM_SIN_ZERO Platform does not initialize
+ sockaddr_in::sin_zero field in
+ calls to getpeername() and
+ getsockname(). As a result,
+ memcmp()-based equality
+ comparison can fail despite
+ the fact two sockaddr_in
+ instances refer to the same
+ addr characteristics.
+ACE_MAIN Renames "main (int, char *[])",
+ for platforms such as g++/VxWorks
+ that don't allow "main". Requires
+ the use of
+ ACE_HAS_NONSTATIC_OBJECT_MANAGER.
+ACE_MKDIR_LACKS_MODE This platform has a mkdir function with
+ a mode argument
+ACE_MT_SAFE Compile using multi-thread libraries
+ACE_NDEBUG Turns off debugging features
+ACE_NEW_THROWS_EXCEPTIONS Compiler's 'new' throws exception on
+ failure (ANSI C++ behavior).
+ACE_NLOGGING Turns off the LM_DEBUG and
+ LM_ERROR logging macros...
+ACE_NTRACE Turns off the tracing feature when = 1.
+ACE_HAS_TRACE Defined when ACE_NTRACE=0 to
+ help support tracing. Can
+ also be defined by users who
+ implement their own tracing
+ macros based on
+ ACE_TRACE_IMPL. Not defining
+ it helps reduce footprint by
+ not requiring applications to
+ link in Trace.o.
+ACE_PAGE_SIZE Defines the page size of the
+ system (not used on Win32 or
+ with ACE_HAS_GETPAGESIZE).
+ACE_REDEFINES_XTI_FUNCTIONS Platform redefines the t_... names (UnixWare)
+ACE_TEMPLATES_REQUIRE_PRAGMA Compiler's template mechanism
+ must use a pragma This is used
+ for AIX's C++ compiler.
+ACE_TEMPLATES_REQUIRE_SOURCE Compiler's template mechanim
+ must see source code (i.e.,
+ .cpp files). This is used for
+ GNU G++.
+ACE_TIMEPROBE_ASSERTS_FIXED_SIZE If enabled then ACE_Timeprobe_Ex<>::timeprobe()
+ will assert if the end of the
+ buffer is reached. If disabled, the
+ counter wraps around to start
+ at the beginning of the buffer.
+ACE_TIMER_SKEW If a timed ::select () can return
+ early, then ACE_TIMER_SKEW is the
+ maximum adjustment, in microseconds,
+ that ACE_Timer_Queue uses to
+ compensate for the early return.
+ACE_TLI_TCP_DEVICE Device the platform uses for TCP on
+ TLI. Only needed if not /dev/tcp.
+ACE_USE_POLL The OS platform supports the
+ poll() event demultiplexor
+ACE_USES_ASM_SYMBOL_IN_DLSYM Platform uses assembly symbols
+ instead of C symbols in
+ dlsym()
+ACE_USES_STATIC_MFC When linking MFC as a static library is desired
+ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB Platform has its standard c++
+ library in the namespace std.
+ACE_USES_EXPLICIT_STD_NAMESPACE Set this when ::fclose doesn't
+ work and you have to
+ explicitly specify the std
+ namespace. This is needed
+ with the Borland 6 and earlier
+ compilers.
+ACE_USES_GPROF ACE calls getitimer before spawning
+ a new thread and setitimer
+ after spawning the thread in
+ order to overcome the problems
+ of gprof with multithreaded
+ applications. It uses the idea from
+ http://sam.zoy.org/writings/programming/gprof.html
+ACE_USES_FIFO_SEM Directs ACE to use FIFO based semaphores on
+ platforms that support this (not having full
+ POSIX semaphore support, supporting mkfifo, select
+ and fcntl).
+ACE_WSOCK_VERSION A parameter list indicating
+ the version of WinSock (e.g.,
+ "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
+ is not desirable to use it.
+ The implementation requires
+ ACE_LACKS_PWD_FUNCTIONS to be
+ undefined and that the
+ geteuid() system call exists.
+ACE_HAS_DINKUM_STL Using the Dinkum STL library
+ACE_HAS_HEADER_ALLOCATED_CLASS_STATIC_CONST_INT_STOREAGE
+ Non-C++ Complient compilers that automatically
+ provide storeage for class static const int
+ when their declaration is seen. I.e. they object
+ to explicit definitions being seen in the .cpp
+ file.
+ACE_DEFAULT_THREAD_KEYS Number of TSS keys, with
+ ACE_HAS_TSS_EMULATION _only_.
+ Defaults to 64.
+ACE_DEFAULT_THREAD_STACKSIZE Default stack size specified for the
+ ACE thread spawning methods. Defaults
+ to 0, which defers to OS defaults.
+ACE_DEFAULT_LD_SEARCH_PATH Specify the platform default search
+ paths. This macro should only be
+ defined on platforms that don't
+ support environment variables at all
+ (i.e., Windows CE.)
+ACE_THREADS_DONT_INHERIT_LOG_MSG Specify this if you don't want
+ threads to inherit parent
+ thread's ACE_Log_Msg
+ properties.
+ACE_THREAD_MANAGER_USES_SAFE_SPAWN Disable the "check before lock" feature
+ in ACE_Thread_Manager. Defining this
+ macro avoids a potential race condition
+ on platforms with aggressive read/write
+ reordering.
+ACE_HAS_CPU_SET_T Platform delivers cpu_set_t.
+ACE_HAS_PRIOCNTL OS has priocntl (2).
+ACE_HAS_RECURSIVE_MUTEXES Mutexes are inherently recursive
+ (e.g., Win32)
+ACE_HAS_NONRECURSIVE_MUTEXES In addition to recursive mutexes,
+ platform has non-recursive ones also.
+ACE_HAS_RECV_TIMEDWAIT Platform has the MIT pthreads
+ APIs for
+ACE_HAS_RECVFROM_TIMEDWAIT timed send/recv operations
+ACE_HAS_RECVMSG_TIMEDWAIT
+ACE_HAS_RLIMIT_RESOURCE_ENUM Platform has enum instead of
+ int for first argument to
+ ::{get,set}rlimit (). The
+ value of this macro is the
+ enum definition, e.g., enum
+ __rlimit_resource, for Linux
+ glibc 2.0.
+ACE_HAS_RUSAGE_WHO_ENUM Platform has enum instead of
+ int for first argument to
+ ::getrusage (). The value of
+ this macro is the enum
+ definition, e.g., enum
+ __rusage_who, for Linux glibc
+ 2.0.
+ACE_HAS_SCANDIR Platform has a native scandir()
+ function. Without any other scandir-
+ related settings, it's assumed that
+ the selector and comparator functions
+ accept const ACE_DIRENT pointers.
+ACE_SCANDIR_CMP_USES_VOIDPTR The OS's scandir() comparator function
+ is int (*compare)(void*, void*).
+ACE_SCANDIR_CMP_USES_CONST_VOIDPTR The OS's scandir() comparator function
+ is int (*compare)(const void*,
+ const void*).
+ACE_SCANDIR_SEL_LACKS_CONST The OS's scandir() selector function
+ is int (*selector)(ACE_DIRENT*)
+ACE_HAS_SEND_TIMEDWAIT
+ACE_HAS_SENDTO_TIMEDWAIT
+ACE_HAS_SENDMSG_TIMEDWAIT
+ACE_HAS_STDARG_THR_DEST Platform has void (*)(...)
+ prototype for
+ pthread_key_create()
+ destructor (e.g., LynxOS).
+ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS Platform/compiler supports
+ Win32 structural exceptions
+ACE_HAS_READ_TIMEDWAIT
+ACE_HAS_READV_TIMEDWAIT
+ACE_HAS_WRITE_TIMEDWAIT
+ACE_HAS_WRITEV_TIMEDWAIT
+ACE_HAS_4_4BSD_SENDMSG_RECVMSG Platform has BSD 4.4
+ sendmsg()/recvmsg() APIs.
+ACE_HAS_P_READ_WRITE Platform has pread() and
+ pwrite() support
+ACE_HAS_AIX_BROKEN_SOCKET_HEADER Platform, such as AIX4, needs
+ to wrap #include of
+ sys/socket.h with
+ #undef/#define of
+ __cplusplus.
+ACE_HAS_AIX_HI_RES_TIMER Platform has AIX4
+ ::read_real_time ()
+ACE_HAS_ALLOCA Compiler/platform supports
+ alloca()
+ACE_HAS_ALLOCA_H Compiler/platform has
+ <alloca.h>
+ACE_HAS_ALPHA_TIMER CPU is an Alpha, with the rpcc
+ instruction to read the tick timer.
+ Limited to 32 bits, so not recommended.
+ACE_HAS_AUTOMATIC_INIT_FINI Compiler/platform correctly
+ calls init()/fini() for shared
+ libraries
+ACE_HAS_BIG_FD_SET Compiler/platform has typedef
+ u_long fdmask (e.g., Linux and
+ SCO).
+ACE_HAS_WORKING_EXPLICIT_TEMPLATE_DESTRUCTOR
+ Compiler handles explicit calling of
+ template destructor correctly. See
+ "ace/OS.h" for details.
+ACE_HAS_BROKEN_ACCEPT_ADDR Platform can't correctly deal
+ with a NULL addr to accept()
+ (e.g, VxWorks).
+ACE_HAS_BROKEN_DGRAM_SENDV Platform sendv() does not work
+ properly with datagrams,
+ i.e. it fails when the iovec
+ size is IOV_MAX.
+ACE_HAS_BROKEN_MAP_FAILED Platform doesn't cast MAP_FAILED
+ to a void *.
+ACE_HAS_BROKEN_MSG_H Platform headers don't support
+ <msg.h> prototypes
+ACE_HAS_BROKEN_MMAP_H HP/UX does not wrap the
+ mmap(2) header files with
+ extern "C".
+ACE_HAS_BROKEN_NESTED_TEMPLATES MSVC has trouble with defining
+ STL containers for nested
+ structs and classes
+ACE_HAS_BROKEN_POSIX_TIME Platform defines struct
+ timespec in <sys/timers.h>
+ACE_HAS_BROKEN_RANDR OS/compiler's header files are
+ inconsistent with libC
+ definition of rand_r().
+ACE_HAS_BROKEN_T_ERROR Compiler/platform has the wrong
+ prototype for t_error(), i.e.,
+ t_error(char *) rather than
+ t_error(const char *).
+ACE_HAS_BSTRING Platform has <bstring.h>
+ (which contains bzero()
+ prototype)
+ACE_HAS_BYTESEX_H Platform has <bytesex.h>.
+ACE_HAS_CANCEL_IO Platform supports the Win32
+ CancelIO() function (WinNT 4.0
+ and beyond).
+ACE_HAS_CHARPTR_DL OS/platform uses char * for
+ dlopen/dlsym args, rather than
+ const char *.
+ACE_HAS_CHARPTR_SOCKOPT OS/platform uses char * for
+ sockopt, rather than const
+ char *
+ACE_HAS_CLOCK_GETTIME Platform supports POSIX.1b
+ clock_gettime () at least for clock-id CLOCK_REALTIME
+ACE_HAS_CLOCK_GETTIME_MONOTONIC Platform supports POSIX.1b
+ clock_gettime () with the clock-id CLOCK_MONOTONIC
+ACE_HAS_CLOCK_SETTIME Platform supports POSIX.1b
+ clock_settime ()
+ACE_HAS_CONFLICTING_XTI_MACROS OS's XTI header file defines some
+ TCP-related macros that netinet/tcp.h
+ also defines, but they conflict
+ (only seen on HP-UX 11).
+ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES Prototypes for both signal()
+ and struct sigaction are
+ consistent.
+ACE_HAS_CPLUSPLUS_HEADERS Compiler/platform has
+ correctly prototyped header
+ files
+ACE_HAS_DIRENT Compiler/platform has Dirent
+ iterator functions
+ACE_HAS_DLL Build ACE using the frigging
+ PC DLL nonsense...
+ACE_HAS_EBCDIC Compile in the ACE code set classes
+ that support EBCDIC.
+ACE_HAS_EXCEPTIONS Compiler supports C++
+ exception handling
+ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION_EXPORT When a base-class is a
+ specialization of a class template
+ then this class template must be
+ explicitly exported
+ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION For the GCC compiler
+ on AIX, HPUX and VxWorks we have to
+ explicitly instantiate static template
+ members else we get multiple instances
+ of the same static.
+ACE_HAS_GETPAGESIZE Platform supports
+ getpagesize() call (otherwise,
+ ACE_PAGE_SIZE must be defined,
+ except on Win32)
+ACE_HAS_GETRUSAGE Platform supports the
+ getrusage() system call.
+ACE_HAS_GETRUSAGE_PROTOTYPE Platform has a getrusage ()
+ prototype in sys/resource.h
+ that differs from the one in
+ ace/OS.i.
+ACE_HAS_GPERF The GPERF utility is compiled
+ for this platform
+ACE_HAS_GETIFADDRS This platform has ifaddrs.h and
+ the getifaddrs() function. This
+ is used in preference to
+ the SIOCGIFCONF ioctl call, since
+ it is much simpler and supports
+ IPv6 and non-IP interfaces better.
+ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT Optimize
+ ACE_Handle_Set::count_bits for
+ select() operations (common
+ case)
+ACE_HAS_LLSEEK Platform supports llseek.
+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_INT_SWAB Platform's swab function has length
+ argument of type int, not ssize_t.
+ACE_HAS_IP_MULTICAST Platform supports IP multicast
+ACE_HAS_IPV6 Platform supports IPv6.
+ACE_HAS_BROKEN_GETHOSTBYADDR_V4MAPPED gethostbyaddr does not handle
+ IPv6-mapped-IPv4 addresses
+ACE_USES_IPV4_IPV6_MIGRATION Enable IPv6 support in ACE on
+ platforms that don't have IPv6
+ turned on by default.
+ACE_HAS_IPV6_V6ONLY Platform supports the IPPROTO_IPV6
+ level IPV6_V6ONLY socket option.
+ACE_HAS_IRIX62_THREADS Platform supports the very odd
+ IRIX 6.2 threads...
+ACE_HAS_NONSTATIC_OBJECT_MANAGER Causes the ACE_Object_Manager
+ instance to be created in main
+ (int, char *[]), instead of as
+ a static (global) instance.
+ACE_HAS_THR_KEYDELETE Platform supports
+ thr_keydelete (e.g,. UNIXWARE)
+ACE_HAS_THR_MINSTACK Platform calls thr_minstack()
+ rather than thr_min_stack()
+ (e.g., Tandem).
+ACE_HAS_LIMITED_RUSAGE_T The rusage_t structure has
+ only two fields.
+ACE_HAS_LINUX_NPTL Linux platform (with kernel >= 2.6.x)
+ with GLibc including new NPTL (Native
+ POSIX Thread Library).
+ This triggers extended POSIX checks
+ since the NPTL library is (almost) fully
+ POSIX compliant.
+ACE_HAS_LOG_MSG_NT_EVENT_LOG Platform supports Windows NT event
+ log so we can create an
+ ACE_Log_Msg_Backend to log to it.
+ACE_HAS_LONG_MAP_FAILED Platform defines MAP_FAILED as
+ a long constant.
+ACE_HAS_MALLOC_STATS Enabled malloc statistics
+ collection.
+ACE_HAS_MEMCHR Use native implementation of memchr.
+ACE_HAS_MINIMAL_ACE_OS Disables some #includes in ace/OS.*.
+ACE_HAS_MFC Platform supports Microsoft
+ Foundation Classes
+ACE_HAS_MSG Platform supports recvmsg and
+ sendmsg
+ACE_HAS_MT_SAFE_MKTIME Platform supports MT safe
+ mktime() call (do any of
+ them?)
+ACE_HAS_MUTEX_TIMEOUTS Compiler supports timed mutex
+ acquisitions
+ (e.g. pthread_mutex_timedlock()).
+ACE_HAS_NEW_NOTHROW Compiler offers new (nothrow).
+ACE_HAS_NONCONST_CHDIR Platform uses non-const char *
+ in call to chdir
+ACE_HAS_NONCONST_CLOCK_SETTIME Platform uses non-const
+ struct timespec * in call to
+ clock_settime
+ACE_HAS_NONCONST_OPENDIR Platform uses non-const char *
+ in call to opendir
+ACE_HAS_NONCONST_UNLINK Platform uses non-const char *
+ in call to unlink
+ACE_HAS_NONCONST_GETBY Platform uses non-const char *
+ in calls to gethostbyaddr,
+ gethostbyname, getservbyname
+ACE_HAS_NONCONST_MSGSND Platform has a non-const
+ parameter to msgsend() (e.g.,
+ SCO).
+ACE_HAS_NONCONST_READV Platform omits const qualifier from
+ iovec parameter in readv() prototype.
+ACE_HAS_NONCONST_SELECT_TIMEVAL Platform's select() uses
+ non-const timeval* (only found
+ on Linux right now)
+ACE_HAS_NONCONST_SENDMSG Platform omits const qualifier
+ from msghdr parameter in sendmsg()
+ prototype.
+ACE_HAS_NONCONST_SETRLIMIT Platform omits const qualifier
+ from rlimit parameter in setrlimit()
+ prototype.
+ACE_HAS_NONCONST_STAT Platform's stat function has non const
+ name argument
+ACE_HAS_NONCONST_SWAB Platform's swab function has non
+ const src argument
+ACE_HAS_NONCONST_WRITEV Platform omits const qualifier from
+ iovec parameter in writev() prototype.
+ACE_HAS_OLD_MALLOC Compiler/platform uses old
+ malloc()/free() prototypes
+ (ugh)
+ACE_HAS_ONLY_SCHED_FIFO Platform, e.g., HP NonStop OSS,
+ only supports SCHED_FIFO
+ POSIX scheduling policy.
+ACE_HAS_ONLY_SCHED_OTHER Platform, e.g., Solaris 2.5,
+ only supports SCHED_OTHER
+ POSIX scheduling policy.
+ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R Uses ctime_r & asctime_r with
+ only two parameters
+ vs. three.
+ACE_HAS_OSF_TIMOD_H Platform supports the OSF TLI
+ timod STREAMS module
+ACE_HAS_3_PARAM_WCSTOK Platform has 3-parameter version
+ of wcstok(), which was added in
+ 1994 in the ISO C standard Normative
+ Addendum 1. Other standards like XPG4
+ define a 2 parameter wcstok().
+ACE_HAS_PENTIUM Platform is an Intel Pentium
+ microprocessor.
+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). Corresponds
+ to _POSIX_SEMAPHORES constant
+ in <unistd.h>
+ACE_HAS_POSIX_SEM_TIMEOUT Platform supports timed wait operation
+ on POSIX realtime semaphores.
+ACE_HAS_POSIX_TIME Platform supports the POSIX
+ struct timespec type
+ACE_HAS_PROC_FS Platform supports the /proc
+ file system and defines tid_t
+ in <sys/procfs.h>
+ACE_HAS_POWERPC_TIMER Platform supports PowerPC
+ time-base register.
+ACE_HAS_PRUSAGE_T Platform supports the
+ prusage_t struct
+ACE_HAS_PTHREADS Platform supports POSIX
+ Pthreads, of one form or
+ another. This macro says the
+ platform has a pthreads
+ variety - should also define
+ one of the below to say which
+ one. Also may need some
+ ACE_HAS_... thing for
+ extensions.
+ACE_HAS_PTHREADS_DRAFT4 Platform's 'Pthreads' is .4a draft 4
+ACE_HAS_PTHREADS_DRAFT6 Platform's 'Pthreads' is .4a draft 6
+ACE_HAS_PTHREADS_DRAFT7 Platform's 'Pthreads' is .1c draft 7
+ACE_HAS_PTHREADS_STD Platform supports POSIX.1c-1995 threads
+ (This is the final standard
+ Pthreads).
+ACE_HAS_PTHREADS_UNIX98_EXT Platform has the UNIX98 extensions to
+ Pthreads (rwlocks)
+ACE_HAS_PTHREAD_ATTR_SETCREATESUSPEND_NP Platform has
+ pthread_attr_setcreatesuspend_np().
+ACE_HAS_PTHREAD_CONDATTR_SETKIND_NP Platform has pthread_condattr_setkind_np().
+ACE_HAS_PTHREAD_MUTEXATTR_SETKIND_NP Platform has
+ pthread_mutexattr_setkind_np().
+ACE_HAS_PTHREAD_GETCONCURRENCY Platform has pthread_getconcurrency().
+ACE_HAS_PTHREAD_SETCONCURRENCY Platform has pthread_setconcurrency().
+ACE_HAS_PTHREAD_PROCESS_ENUM pthread.h declares an enum with
+ PTHREAD_PROCESS_PRIVATE and
+ PTHREAD_PROCESS_SHARED values.
+ACE_HAS_PTHREAD_SETSTACK Platform has pthread_attr_setstack().
+ACE_HAS_PTHREAD_NP_H Platform has <pthread_np.h> FreeBSD
+ declares non-portable (*_np) pthread
+ functions in this header.
+ACE_HAS_PURIFY Purify'ing. Set by wrapper_macros.GNU.
+ACE_HAS_QUANTIFY Quantify'ing. Set by wrapper_macros.GNU.
+ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS Platform will recurse
+ infinitely on thread exits
+ from TSS cleanup routines
+ (e.g., AIX).
+ACE_HAS_REENTRANT_FUNCTIONS Platform supports reentrant
+ functions (i.e., all the POSIX
+ *_r functions).
+ACE_HAS_XPG4_MULTIBYTE_CHAR Platform has support for
+ multi-byte character support
+ compliant with the XPG4
+ Worldwide Portability
+ Interface wide-character
+ classification.
+ACE_HAS_REGEX Platform supports the POSIX
+ regular expression library
+ACE_HAS_DLSYM_SEGFAULT_ON_INVALID_HANDLE For OpenBSD: The dlsym call
+ segfaults when passed an invalid
+ handle. Other platforms handle
+ this more gracefully.
+ACE_HAS_SELECT_H Platform has special header for select().
+ACE_USE_SELECT_REACTOR_FOR_REACTOR_IMPL For Win32: Use Select_Reactor
+ as default implementation of
+ Reactor instead of
+ WFMO_Reactor.
+ACE_HAS_SEMUN Compiler/platform defines a
+ union semun for SysV shared
+ memory
+ACE_HAS_SET_T_ERRNO Platform has a function to set
+ t_errno (e.g., Tandem).
+ACE_HAS_SIGACTION_CONSTP2 Platform's sigaction() function takes
+ const sigaction* as 2nd parameter.
+ACE_HAS_SIGINFO_T Platform supports SVR4
+ extended signals
+ACE_HAS_SIGSUSPEND Platform supports sigsuspend()
+ACE_HAS_SIGISMEMBER_BUG Platform has bug with
+ sigismember() (HP/UX 11).
+ACE_HAS_SIGNAL_OBJECT_AND_WAIT Platform supports the Win32
+ SignalObjectAndWait() function
+ (WinNT 4.0 and beyond).
+ACE_HAS_SIGWAIT Platform/compiler has the
+ sigwait(2) prototype
+ACE_HAS_SIG_ATOMIC_T Compiler/platform defines the
+ sig_atomic_t typedef
+ACE_HAS_SIG_C_FUNC Compiler requires extern "C"
+ functions for signals.
+ACE_HAS_SIZET_SOCKET_LEN OS/compiler uses size_t *
+ rather than int * for socket
+ lengths
+ACE_HAS_SOCKADDR_IN_SIN_LEN Platform has sin_len member in struct
+ sockaddr_in.
+ACE_HAS_SOCKADDR_IN6_SIN_LEN Platform has sin6_len member in struct
+ sockaddr_in6.
+ACE_HAS_SOCKADDR_MSG_NAME Platform requires (struct
+ sockaddr *) for msg_name field
+ of struct msghdr.
+ACE_HAS_SOCKLEN_T Platform provides socklen_t
+ type, such as Linux with
+ glibc2.
+ACE_HAS_SOCK_BUF_SIZE_MAX Platform limits the maximum socket
+ message size.
+ACE_HAS_SPARCWORKS_401_SIGNALS Compiler has brain-damaged
+ SPARCwork SunOS 4.x signal
+ prototype...
+ACE_HAS_SSIZE_T Compiler supports the ssize_t
+ typedef
+ACE_HAS_STHREADS Platform supports Solaris
+ threads
+ACE_HAS_STANDARD_CPP_LIBRARY Platform/compiler supports
+ Standard C++ Library
+ACE_HAS_STDCPP_STL_INCLUDES Standard C++ headers can be
+ included in the standard way.
+ e.g. #include <vector>
+ACE_HAS_STRBUF_T Compiler/platform supports
+ struct strbuf
+ACE_HAS_STRDUP_EMULATION Use ACE's strdup() emulation (even
+ if platform has a native strdup()).
+ This is useful if you need control
+ over what memory allocator is used.
+ACE_HAS_WCSDUP_EMULATION Use ACE's wcsdup() emulation (even
+ if platform has a native wcsdup()).
+ This is useful if you need control
+ over what memory allocator is used.
+ACE_HAS_STRNLEN Platform supports strnlen(3).
+ACE_HAS_STREAMS Platform supports STREAMS
+ACE_HAS_STREAM_PIPES Platform supports STREAM pipes
+ACE_HAS_STRICT Use the STRICT compilation mode on Win32.
+ACE_HAS_STRING_CLASS Platform/Compiler supports a
+ String class (e.g., GNU or
+ Win32).
+ACE_HAS_STRUCT_NETDB_DATA Compiler/platform has strange
+ hostent API for socket *_r()
+ calls
+ACE_HAS_SUNOS4_SIGNAL_T Compiler has horrible SunOS
+ 4.x signal handlers...
+ACE_HAS_SVR4_DYNAMIC_LINKING Compiler/platform supports
+ SVR4 dynamic linking semantics
+ACE_HAS_SVR4_GETTIMEOFDAY Compiler/platform supports
+ SVR4 gettimeofday() prototype
+ACE_HAS_SVR4_SIGNAL_T Compiler/platform supports
+ SVR4 signal typedef
+ACE_HAS_SVR4_TLI Compiler/platform supports
+ SVR4 TLI; that is, TLI with extensions
+ like t_getname(). This is sometimes
+ used as a pseudonym for TLI on SunOS4.
+ This is a modifier to ACE_HAS_TLI and
+ isn't used if ACE_HAS_XTI is set.
+ACE_HAS_SYSCALL_GETRUSAGE HP/UX has an undefined syscall
+ for GETRUSAGE...
+ACE_HAS_SYSENT_H Platform provides <sysent.h>
+ header
+ACE_HAS_SYSV_SYSINFO Platform supports system
+ configuration information
+ACE_HAS_SYSV_IPC Platform supports System V IPC
+ (most versions of UNIX, but
+ not Win32)
+ACE_HAS_SYS_FILIO_H Platform provides
+ <sys/filio.h> header
+ACE_HAS_SYS_LOADAVG_H Compiler/platform contains the
+ <sys/loadavg.h> file.
+ACE_HAS_SYS_PSTAT_H Compiler/platform contains the
+ <sys/pstat.h> file.
+ACE_HAS_SYS_SOCKIO_H Compiler/platform provides the
+ sockio.h file
+ACE_HAS_SYS_SYSCALL_H Compiler/platform contains the
+ <sys/syscall.h> file.
+ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA Compiler's template
+ instantiation mechanism
+ supports the use of "#pragma
+ instantiate". Edison Design
+ Group compilers, e.g., SGI C++
+ and Green Hills 1.8.8 and
+ later, support this.
+ACE_HAS_TEMPLATE_TYPEDEFS Compiler implements templates
+ that support typedefs inside
+ of classes used as formal
+ arguments to a template
+ class.
+ACE_HAS_TERMIO Platform has terminal ioctl
+ flags like TCGETS and TCSETS and
+ termio struct.
+ACE_HAS_TERMIOS Platform has POSIX terminal
+ interface and termios struct.
+ACE_HAS_LAZY_MAP_MANAGER ACE supports lazy Map Managers
+ that allow deletion of entries
+ during active iteration.
+ACE_HAS_THREADS Platform supports threads
+ACE_HAS_THREAD_SAFE_ACCEPT Platform allows multiple
+ threads to call accept() on
+ the same port (e.g., WinNT).
+ACE_HAS_THREAD_SELF Platform has thread_self()
+ rather than pthread_self()
+ (e.g., DCETHREADS and AIX)
+ACE_HAS_THREAD_SPECIFIC_STORAGE Compiler/platform has
+ thread-specific storage
+ACE_HAS_THR_C_DEST The pthread_keycreate()
+ routine *must* take extern C
+ functions.
+ACE_HAS_THR_C_FUNC The pthread_create() routine
+ *must* take extern C
+ functions.
+ACE_HAS_TIMEZONE Platform/compiler supports
+ global "timezone" variable.
+ACE_HAS_TIMEZONE_GETTIMEOFDAY Platform/compiler supports
+ timezone * as second parameter
+ to gettimeofday()
+ACE_HAS_TIMOD_H Platform supports TLI timod
+ STREAMS module
+ACE_HAS_TIUSER_H Platform provides TLI tiuser.h
+ header file.
+ACE_HAS_TLI Platform supports TLI. Also
+ see ACE_TLI_TCP_DEVICE. If the
+ platform supports XTI, set ACE_HAS_XTI
+ instead of this.
+ACE_HAS_TLI_PROTOTYPES Platform provides TLI function
+ prototypes
+ACE_HAS_TR24731_2005_CRT The platform provides an implementation
+ of C99 draft TR24731 (October 2005),
+ C run-time with more secure parameters.
+ACE_HAS_TSS_EMULATION ACE provides TSS emulation.
+ See also
+ ACE_DEFAULT_THREAD_KEYS.
+ACE_HAS_UALARM Platform supports ualarm()
+ACE_HAS_UCONTEXT_T Platform supports ucontext_t
+ (which is used in the extended
+ signal API).
+ACE_HAS_UNION_WAIT The wait() system call takes a
+ (union wait *) rather than int
+ *
+ACE_HAS_UNIXWARE_SVR4_SIGNAL_T Has inconsistent SVR4 signal
+ stuff, but not the same as the
+ other platforms
+ACE_HAS_VALGRIND Running with valgrind
+ACE_HAS_VERBOSE_NOTSUP Prints out console message in
+ ACE_NOTSUP. Useful for
+ tracking down origin of
+ ACE_NOTSUP.
+ACE_HAS_VERSIONED_NAMESPACE Wrap all library code within a
+ "versioned namespace" to
+ prevent symbol conflicts with
+ other versions of ACE shared
+ libraries in third party
+ libraries. Default namespace
+ name may be overridden by
+ defining preprocessor symbol
+ ACE_VERSIONED_NAMESPACE_NAME
+ to desired name.
+ACE_LACKS_INTMAX_T Platform lacks the intmax_t type
+ACE_LACKS_UINTMAX_T Platform lacks the uintmax_t type.
+ACE_LACKS_INTPTR_T Platform lacks the intptr_t type
+ACE_LACKS_UINTPTR_T Platform lacks the uintptr_t type.
+
+ACE_HAS_INT8_T Platform provides the int8_t type.
+ACE_HAS_INT16_T Platform provides the int16_t type.
+ACE_HAS_INT32_T Platform provides the int32_t type.
+ACE_HAS_INT64_T Platform provides the int64_t type.
+ACE_HAS_UINT8_T Platform provides the uint8_t type.
+ACE_HAS_UINT16_T Platform provides the uint16_t type.
+ACE_HAS_UINT32_T Platform provides the uint32_t type.
+ACE_HAS_UINT64_T Platform provides the uint64_t type.
+
+ACE_INT8_TYPE Specific type to use for ACE_INT8.
+ If not defined, ACE will attempt to
+ determine the correct type.
+ACE_INT16_TYPE Specific type to use for ACE_INT16.
+ If not defined, ACE will attempt to
+ determine the correct type.
+ACE_INT32_TYPE Specific type to use for ACE_INT32.
+ If not defined, ACE will attempt to
+ determine the correct type.
+ACE_INT64_TYPE Specific type to use for ACE_INT64.
+ If not defined, ACE will attempt to
+ determine the correct type.
+ACE_UINT8_TYPE Specific type to use for ACE_UINT8.
+ If not defined, ACE will attempt to
+ determine the correct type.
+ACE_UINT16_TYPE Specific type to use for ACE_UINT16.
+ If not defined, ACE will attempt to
+ determine the correct type.
+ACE_UINT32_TYPE Specific type to use for ACE_UINT32.
+ If not defined, ACE will attempt to
+ determine the correct type.
+ACE_UINT64_TYPE Specific type to use for ACE_UINT64.
+ If not defined, ACE will attempt to
+ determine the correct type.
+
+ACE_INT8_FORMAT_SPECIFIER String literal containing *printf
+ format specifier (including the '%')
+ to be used for ACE_INT8 values. If
+ not defined, ACE will attempt to
+ determine the correct setting.
+ACE_INT16_FORMAT_SPECIFIER String literal containing *printf
+ format specifier (including the '%')
+ to be used for ACE_INT16 values. If
+ not defined, ACE will attempt to
+ determine the correct setting.
+ACE_INT32_FORMAT_SPECIFIER String literal containing *printf
+ format specifier (including the '%')
+ to be used for ACE_INT32 values. If
+ not defined, ACE will attempt to
+ determine the correct setting.
+ACE_INT64_FORMAT_SPECIFIER String literal containing *printf
+ format specifier (including the '%')
+ to be used for ACE_INT64 values. If
+ not defined, ACE will attempt to
+ determine the correct setting.
+ACE_UINT8_FORMAT_SPECIFIER String literal containing *printf
+ format specifier (including the '%')
+ to be used for ACE_UINT8 values. If
+ not defined, ACE will attempt to
+ determine the correct setting.
+ACE_UINT16_FORMAT_SPECIFIER String literal containing *printf
+ format specifier (including the '%')
+ to be used for ACE_UINT16 values. If
+ not defined, ACE will attempt to
+ determine the correct setting.
+ACE_UINT32_FORMAT_SPECIFIER String literal containing *printf
+ format specifier (including the '%')
+ to be used for ACE_UINT32 values. If
+ not defined, ACE will attempt to
+ determine the correct setting.
+ACE_UINT64_FORMAT_SPECIFIER String literal containing *printf
+ format specifier (including the '%')
+ to be used for ACE_UINT64 values. If
+ not defined, ACE will attempt to
+ determine the correct setting.
+
+ACE_HAS_VOIDPTR_GETTIMEOFDAY Platform/compiler supports
+ void * as second parameter
+ to gettimeofday
+ACE_HAS_VOIDPTR_MMAP Platform requires void * for
+ mmap().
+ACE_HAS_VOIDPTR_SOCKOPT OS/compiler uses void * arg 4
+ setsockopt() rather than const
+ char *
+ACE_HAS_WCSNLEN Platform supports wcsnlen(3).
+ACE_HAS_WIN32_OVERLAPPED_IO Platform has Windows overlapped I/O;
+ requires I/O completion ports.
+ACE_HAS_WIN32_TRYLOCK The Win32 platform support
+ TryEnterCriticalSection()
+ (WinNT 4.0 and beyond)
+ACE_HAS_WINSOCK2 The Win32 platform supports
+ WinSock 2.0
+ACE_HAS_XLI Platform has the XLI version
+ of TLI
+ACE_HAS_XTI Platform has XTI
+ (X/Open-standardized superset
+ of TLI). Implies ACE_HAS_TLI
+ but uses a different header
+ file.
+ACE_INITIALIZE_MEMORY_BEFORE_USE Memory is explicitly initialized before
+ use. Useful when using a profiler like
+ purify or valgrind
+ACE_HRTIME_T_IS_BASIC_TYPE ACE_hrtime_t is a basic type that
+ doesn't require ACE_U64_TO_U32
+ conversion
+ACE_LACKS_ACCESS Platform lacks access() (e.g.,
+ VxWorks and Chorus)
+ACE_LACKS_ACE_IOSTREAM Platform can not build
+ ace/IOStream{,_T}.cpp. This
+ does not necessarily mean that
+ the platform does not support
+ iostreams.
+ACE_LACKS_AUTO_MMAP_REPLACEMENT No system support for replacing any
+ previous mappings.
+ACE_LACKS_BSEARCH Compiler/platform lacks the
+ standard C library bsearch()
+ function
+ACE_LACKS_CLOSEDIR Platform lacks closedir and the closedir
+ emulation must be used
+ACE_LACKS_OPENDIR Platform lacks opendir and the opendir
+ emulation must be used
+ACE_LACKS_READDIR Platform lacks readdir and the readdir
+ emulation must be used
+ACE_LACKS_COND_TIMEDWAIT_RESET pthread_cond_timedwait does
+ *not* reset the time argument
+ when the lock is acquired.
+ACE_LACKS_CONST_STRBUF_PTR Platform uses struct strbuf *
+ rather than const struct
+ strbuf * (e.g., HP/UX 10.x)
+ACE_LACKS_CONST_TIMESPEC_PTR Platform forgot const in
+ cond_timewait (e.g., HP/UX).
+ACE_LACKS_COND_T Platform lacks condition
+ variables (e.g., Win32 and
+ VxWorks)
+ACE_LACKS_CONDATTR_PSHARED Platform has no implementation
+ of
+ pthread_condattr_setpshared(),
+ even though it supports
+ pthreads!
+ACE_LACKS_DIFFTIME Platform lacks difftime() implementation
+ACE_LACKS_DUP2 Platform lacks dup2().
+ACE_LACKS_FCNTL Platform lacks POSIX-style fcntl ().
+ACE_LACKS_FSYNC Platform lacks fsync().
+ACE_LACKS_INLINE_FUNCTIONS Platform can't handle "inline"
+ keyword correctly.
+ACE_LACKS_EXEC Platform lacks the exec()
+ family of system calls (e.g.,
+ Win32, VxWorks, Chorus)
+ACE_LACKS_FILELOCKS Platform lacks file locking
+ mechanism
+ACE_LACKS_FLOATING_POINT Platform does not support
+ floating point operations
+ (e.g., certain Chorus hardware
+ platforms)
+ACE_LACKS_FORK Platform lacks the fork()
+ system call (e.g., Win32,
+ VxWorks, Chorus)
+ACE_LACKS_GETOPT_PROTOTYPE Platform lacks the getopt()
+ prototype (e.g., LynxOS)
+ACE_LACKS_GETPGID Platform lacks getpgid() call
+ (e.g., Win32, Chorus, and
+ FreeBSD).
+ACE_LACKS_GETSERVBYNAME Platforms lacks
+ getservbyname() (e.g., VxWorks
+ and Chorus).
+ACE_LACKS_GETIPNODEBYADDR Platform lacks getipnodebyaddr().
+ACE_LACKS_GETIPNODEBYNAME Platform lacks getipnodebyname().
+ACE_LACKS_INET_ATON Platform lacks the inet_aton()
+ function.
+ACE_LACKS_INET_ATON_PROTOTYPE Platform/compiler lacks the
+ inet_aton() prototype (e.g.,
+ LynxOS)
+ACE_LACKS_IOSTREAM_FX iostream header does not
+ declare ipfx (), opfx (),
+ etc.
+ACE_LACKS_KEY_T Platform lacks key_t (e.g.,
+ Chorus, VxWorks, Win32)
+ACE_LACKS_LINEBUFFERED_STREAMBUF Platform lacks streambuf
+ "linebuffered ()".
+ACE_LACKS_LONGLONG_T Compiler/platform does not
+ support the signed or unsigned long
+ long datatype.
+ACE_LACKS_LSTAT Platform lacks the lstat() function.
+ACE_LACKS_MADVISE Platform lacks madvise()
+ (e.g., Linux)
+ACE_LACKS_MALLOC_H Platform lacks malloc.h
+ACE_LACKS_MEMORY_H Platform lacks memory.h (e.g.,
+ VxWorks and Chorus)
+ACE_LACKS_MKFIFO Platform lacks mkfifo() e.g.,
+ VxWorks, Chorus, pSoS, and WinNT.
+ACE_LACKS_MKTEMP Platform lacks the mktemp() function.
+ACE_LACKS_MKTEMP_PROTOTYPE Platform/compiler lacks the
+ mktemp() prototype (e.g.,
+ LynxOS)
+ACE_LACKS_MKSTEMP Platform lacks the mkstemp() function.
+ACE_LACKS_MKSTEMP_PROTOTYPE Platform/compiler lacks the
+ mkstemp() prototype (e.g.,
+ LynxOS)
+ACE_LACKS_MMAP The platform doesn't have
+ mmap(2) (e.g., SCO UNIX).
+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_MSG_ACCRIGHTS Platform defines ACE_HAS_MSG,
+ but lacks msg_accrights{,len}.
+ACE_LACKS_MSG_WFMO Platform lacks
+ MsgWaitForMultipleObjects
+ (only needs to be defined when
+ ACE_WIN32 is also defined).
+ACE_LACKS_MSYNC Platform lacks msync() (e.g.,
+ Linux)
+ACE_LACKS_MUTEXATTR_PSHARED Platform lacks
+ pthread_mutexattr_setpshared().
+ACE_LACKS_NAMED_POSIX_SEM Platform lacks named POSIX
+ semaphores (e.g., Chorus)
+ACE_LACKS_NETDB_REENTRANT_FUNCTIONS Platform does not support
+ reentrant netdb functions
+ (getprotobyname_r,
+ getprotobynumber_r,
+ gethostbyaddr_r,
+ gethostbyname_r,
+ getservbyname_r).
+ACE_LACKS_NEW_H OS doesn't have, or we don't want to
+ use, new.h.
+ACE_LACKS_NULL_PTHREAD_STATUS OS requires non-null status pointer
+ for ::pthread_join ().
+ACE_LACKS_NUMERIC_LIMITS Platform lacks std::numeric_limits<>.
+ACE_LACKS_PERFECT_MULTICAST_FILTERING Platform lacks IGMPv3 "perfect" filtering
+ of multicast dgrams at the socket level.
+ If == 1, ACE_SOCK_Dgram_Mcast will bind
+ the first joined multicast group to the
+ socket, and all future joins on that
+ socket will fail with an error.
+ACE_LACKS_PRAGMA_ONCE Compiler complains about #pragma once
+ACE_LACKS_PRI_T Platform lacks pri_t (e.g.,
+ Tandem NonStop UNIX).
+ACE_LACKS_PTHREAD_CANCEL Platform lacks
+ pthread_cancel().
+ACE_LACKS_PTHREAD_SIGMASK Platform lacks pthread_sigmask ().
+ACE_LACKS_PTHREAD_THR_SIGSETMASK Platform lacks
+ pthread_thr_sigsetmask (e.g.,
+ MVS, HP/UX, and OSF/1 3.2)
+ACE_LACKS_PUTENV_PROTOTYPE Platform/compiler lacks the
+ putenv() prototype (e.g.,
+ LynxOS)
+ACE_LACKS_PWD_REENTRANT_FUNCTIONS Platform lacks getpwnam_r()
+ methods (e.g., SGI 6.2).
+ACE_LACKS_QSORT Compiler/platform lacks the
+ standard C library qsort()
+ function
+ACE_LACKS_RAND_REENTRANT_FUNCTIONS Platform lacks rand_r()
+ACE_LACKS_READLINK Platform lacks the readlink() function.
+ACE_LACKS_READV Platform doesn't define readv,
+ so use our own
+ACE_LACKS_RLIMIT Platform/compiler lacks
+ {get,set}rlimit() function
+ (e.g., VxWorks, Chorus, and
+ SCO UNIX)
+ACE_LACKS_RLIMIT_PROTOTYPE Platform/compiler lacks
+ {get,set}rlimit() prototypes
+ (e.g., Tandem)
+ACE_LACKS_READDIR_R Platform uses ACE_HAS_DIRENT
+ but does not have readdir_r
+ ().
+ACE_LACKS_REALPATH Platform/compiler lacks
+ realpath () function (e.g.,
+ LynxOS)
+ACE_LACKS_RECVMSG Platform lacks recvmsg()
+ (e.g., Linux)
+ACE_LACKS_RWLOCK_T Platform lacks readers/writer
+ locks.
+ACE_LACKS_RWLOCKATTR_PSHARED Platform lacks
+ pthread_rwlockattr_setpshared().
+ACE_LACKS_SBRK Platform lacks a working
+ sbrk() (e.g., Win32 and
+ VxWorks)
+ACE_LACKS_SCANDIR_PROTOTYPE Platform/compiler lacks
+ scandir() prototype
+ (e.g., LynxOS)
+ACE_LACKS_SEEKDIR Platform uses ACE_HAS_DIRENT
+ but does not have seekdir ().
+ACE_LACKS_SEMBUF_T Platform lacks struct sembuf
+ (e.g., Win32 and VxWorks)
+ACE_LACKS_SETDETACH Platform lacks
+ pthread_attr_setdetachstate()
+ (e.g., HP/UX 10.x)
+ACE_LACKS_SETSCHED Platform lacks
+ pthread_attr_setsched()
+ (e.g. MVS)
+ACE_LACKS_SIGACTION Platform lacks struct
+ sigaction (e.g., Win32 and
+ Chorus)
+ACE_LACKS_SIGNED_CHAR Platform lacks "signed char"
+ type (broken!)
+ACE_LACKS_SIGSET Platform lacks signal sets
+ (e.g., Chorus and Win32)
+ACE_LACKS_STRPTIME Platform/compiler lacks the strptime()
+ function.
+ACE_LACKS_WCSCHR Platform/compiler lacks wcschr()
+ACE_LACKS_STRDUP Platform/compiler lacks strdup()
+ACE_LACKS_WCSDUP Platform/compiler lacks wcsdup()
+ACE_LACKS_STRRCHR Platform/compiler lacks strrchr()
+ACE_LACKS_WCSRCHR Platform/compiler lacks wcsrchr()
+ACE_LACKS_SWAB Platform/compiler lacks
+ swab () function.
+ACE_LACKS_SYS_MSG_H Platform lacks sys/msg.h
+ (e.g., Chorus and VxWorks)
+ACE_LACKS_SYS_PARAM_H Platform lacks <sys/param.h>
+ (e.g., MVS)
+ACE_LACKS_SENDMSG Platform lacks sendmsg()
+ (e.g., Linux)
+ACE_LACKS_SI_ADDR Platform lacks the si_addr
+ field of siginfo_t (e.g.,
+ VxWorks and HP/UX 10.x)
+ACE_LACKS_SYMLINKS Platform lacks symbolic links
+ACE_LACKS_SYSV_SHMEM Platform lacks System V shared
+ memory (e.g., Win32 and
+ VxWorks)
+ACE_LACKS_SIGINFO_H Platform lacks the siginfo.h
+ include file (e.g., MVS)
+ACE_LACKS_SOCKET_BUFSIZ Platform doesn't support
+ SO_SNDBUF/SO_RCVBUF
+ACE_LACKS_SOCKETPAIR Platform lacks the
+ socketpair() call (e.g., SCO
+ UNIX)
+ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES Compiler doesn't support
+ static data member templates
+ACE_LACKS_STRCASECMP Compiler/platform lacks
+ strcasecmp() (e.g., DG/UX,
+ UNIXWARE, VXWORKS)
+ACE_LACKS_STRCASECMP_PROTOTYPE Platform/compiler lacks the
+ strcasecmp() prototype (e.g.,
+ LynxOS)
+ACE_LACKS_STRNCASECMP_PROTOTYPE Platform/compiler lacks the
+ strncasecmp() prototype (e.g.,
+ LynxOS)
+ACE_LACKS_STRRECVFD Platform doesn't define struct
+ strrecvfd.
+ACE_LACKS_SYSCALL Platform doesn't have
+ syscall() prototype
+ACE_LACKS_T_ERRNO Header files lack t_errno for
+ TLI
+ACE_LACKS_TCP_NODELAY OS does not support TCP_NODELAY.
+ACE_LACKS_TELLDIR Platform uses ACE_HAS_DIRENT
+ but does not have telldir ().
+ACE_LACKS_THREAD_STACK_SIZE Platform lacks
+ pthread_attr_setstacksize()
+ (e.g., Linux pthreads)
+ACE_LACKS_THR_CONCURRENCY_FUNCS (ONLY APPLIES TO SOLARIS)
+ Platform does not support
+ thr_getconcurrency/thr_setconcurrency
+ functions, or their implementation
+ is effectively a "no-op". This
+ notably applies for Solaris >= 5.9.
+ Note that if you build on Solaris 8
+ and run on Solaris 9+, you can
+ encounter thread creation errors
+ unless you rebuild on the target
+ platform.
+ACE_LACKS_TIMEDWAIT_PROTOTYPES MIT pthreads platform lacks
+ the timedwait prototypes
+ACE_LACKS_TIMESPEC_T Platform does not define
+ timepec_t as a typedef for
+ struct timespec.
+ACE_LACKS_TRUNCATE Platform doesn't have truncate()
+ (e.g., vxworks)
+ACE_LACKS_U_LONGLONG_T Platform does not have
+ u_longlong_t typedef, and
+ "sun" is defined.
+ACE_LACKS_UALARM_PROTOTYPE Platform/compiler lacks the
+ ualarm() prototype (e.g.,
+ Solaris)
+ACE_LACKS_CHAR_RIGHT_SHIFTS Compiler does not have any istream
+ operator>> for chars, u_chars, or
+ signed chars.
+ACE_LACKS_CHAR_STAR_RIGHT_SHIFTS Compiler does not have
+ operator>> (istream &, u_char *) or
+ operator>> (istream &, signed char *)
+ACE_LACKS_UCONTEXT_H Platform lacks the ucontext.h
+ file
+ACE_LACKS_UMASK Platform lacks umask function
+ACE_LACKS_UNBUFFERED_STREAMBUF Platform lacks streambuf
+ "unbuffered ()".
+ACE_LACKS_UNISTD_H Platform lacks the unistd.h
+ file (e.g., VxWorks and Win32)
+ACE_LACKS_UNIX_DOMAIN_SOCKETS ACE platform has no UNIX
+ domain sockets
+ACE_LACKS_UNIX_SIGNALS Platform lacks full signal
+ support (e.g., Win32 and
+ Chorus).
+ACE_LACKS_UNSIGNEDLONGLONG_T Compiler/platform does not
+ support the unsigned long
+ long datatype.
+ACE_LACKS_UTSNAME_T Platform lacks struct utsname
+ (e.g., Win32 and VxWorks)
+ACE_LACKS_UNAME Platform lacks uname calls
+ACE_LACKS_WAIT The platform lacks wait
+ACE_LACKS_WIN32_GETPROCESSTIMES The Windows platform doesn't have
+ GetProcessTimes().
+ACE_LACKS_WIN32_MOVEFILEEX The Windows platform doesn't have
+ MoveFileEx().
+ACE_LACKS_WIN32_SECURITY_DESCRIPTORS The Windows platform doesn't have
+ security descriptor support.
+ACE_LACKS_WRITEV Platform doesn't define
+ writev, so use our own
+
+ACE_LEGACY_MODE When defined, it will enable
+ some code that is used to
+ provide some support for
+ backwards compatibility.
+
+ACE_NEEDS_DEV_IO_CONVERSION Necessary with some compilers
+ to pass ACE_TTY_IO as
+ parameter to DEV_Connector.
+ACE_NEEDS_FUNC_DEFINITIONS Compiler requires a definition
+ for a "hidden" function, e.g.,
+ a private, unimplemented copy
+ constructor or assignment
+ operator. The SGI C++
+ compiler needs this, in
+ template classes, with
+ ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA.
+ACE_NEEDS_HUGE_THREAD_STACKSIZE Required by platforms with
+ small default stacks.
+ACE_NEEDS_LWP_PRIO_SET OS has LWPs, and when the
+ priority of a bound thread is
+ set, then the LWP priority
+ must be set also.
+ACE_NEEDS_SCHED_H Platform needs to #include
+ <sched.h>
+ to get thread scheduling
+ defs.
+
+ACE_NO_WIN32_LEAN_AND_MEAN If this is set, then ACE does not
+ define WIN32_LEAN_AND_MEAN before
+ including <windows.h>. Needed for
+ code that uses non-lean Win32
+ facilities such as COM.
+
+ACE_ONLY_LATEST_AND_GREATEST A macro that indicates that
+ the "latest and greatest"
+ features of ACE/TAO should be
+ turned on. It has been
+ replaced by ACE_LEGACY_MODE,
+ which has the opposite meaning
+ but serves the same purpose.
+
+ACE_SHM_OPEN_REQUIRES_ONE_SLASH The path specified on shm_open() must
+ have a leading, single slash and not
+ have any other slashes.
+
+ACE_WSTRING_HAS_USHORT_SUPPORT If a platform has wchar_t as a
+ separate type, then
+ ACE_WString doesn't have a
+ constructor that understands
+ an ACE_USHORT16 string. So
+ this macro enables
+ one. (mostly used my ACE Name
+ Space).
+
+ACE_HAS_BROKEN_PREALLOCATED_OBJECTS_AFTER_FORK
+ Under QNX/RTP the objects preallocated
+ in ACE_OS_Object_Manager cannot be
+ destroyed after a fork() call.
+ Since these objects are only destroyed
+ at application shutdown we take the
+ simpler approach of not destroying
+ them at all.
+ Both QNX/RTP and LynxOS suffer from
+ this problem.
+
+ACE_LACKS_MEMBER_TEMPLATES Compiler does not support
+ member template feature.
+
+ACE_LACKS_DEPRECATED_MACROS When this define is set, macros which
+ are deprecated are not defined. Usefull
+ to check whether deprecated macros are
+ not used anymore.
+
+ACE_DONT_INIT_WINSOCK This definition defines whether or not
+ to explicitly initialize Winsock during
+ ACE::init() (i.e., whether WSAStartup()
+ is called). Some Win32 platforms have
+ dependent characteristics between
+ ACE initialization and
+ network initialization.
+
+----------------------------------------
+
+The following macros determine the svc.conf file format ACE uses.
+
+Macro Description
+----- -----------
+ACE_HAS_CLASSIC_SVC_CONF This macro forces ACE to use
+ the classic svc.conf format.
+
+ACE_HAS_XML_SVC_CONF This macro forces ACE to use the XML
+ svc.conf format.
+
+ACE_USES_CLASSIC_SVC_CONF This macro should be defined
+ as 0 or 1, depending on the
+ preferred svc.conf file
+ format. Defining this macro
+ to 0 means ACE will use XML
+ svc.conf file format.
+ Defining it to 1 will force
+ ACE to use the classic
+ svc.conf format.
+ ** This macro takes precedence
+ ** over previous two macros.
+
+----------------------------------------
+The following is a partial list of where some of these macros are used
+in the code. This list was originally compiled by Jam Hamidi
+(jh1@core01.osi.com). It is now hopelessly out of date. Hopefully,
+someone will come along and update it....
+
+ACE_HAS_ALLOCA:
+---------------
+
+ Used in:
+ libsrc/IPC_SAP/SOCK_SAP/SOCK_Connect.C
+ for allocation of iovp
+A
+ libsrc/IPC_SAP/SPIPE_SAP/SPIPE_Msg.C
+ for alocation of iovp
+
+ In solaris:
+ alloca() allocates size bytes of space in the stack frame of
+ the caller, and returns a pointer to the allocated block.
+ This temporary space is automatically freed when the caller
+ returns. Note: if the allocated block is beyond the current
+ stack limit, the resulting behavior is undefined.
+
+ In HPUX:
+ no equivalent.
+
+ Notes:
+ in HPUX it has to do new and delete. Affects performance.
+
+
+ACE_HAS_AUTOMATIC_INIT_FINI:
+----------------------------
+
+ Used in:
+ libsrc/Service_Configurator/Service_Repository.i
+ libsrc/Service_Configurator/Parse_Node.i
+ include/Parse_Node.i
+ include/Service_Repository.i
+
+ In solaris:
+ _init() initializes a loadable module. It is called before
+ any other routine in a loadable module.
+ _info() returns information about a loadable module.
+ _fini() should return the return value from mod_remove(9F).
+ This flag if set, doesn't do anything. If not set, forces
+ _init() and _fini() to be executed as is:
+ dlsym ((char *) handle, "_fini").
+
+ In HPUX:
+ don't set.
+ Maybe have to look into shl_load( ), shl_definesym( ),
+ shl_findsym( ), shl_gethandle( ), shl_getsymbols( ),
+ shl_unload( ), shl_get( )(3X) - explicit load of shared libraries
+ Means Service Configurator won't be available.
+ TBA.
+
+
+ACE_HAS_CPLUSPLUS_HEADERS:
+--------------------------
+
+ Used In:
+ ace/OS.h
+
+ HPUX:
+ set it.
+
+ Notes:
+ If this is not defined, libc.h and osfcn.h get included.
+ Only needed for older compiler/OS platforms that don't
+ provide standard C++ header files in /usr/include.
+
+ACE_HAS_HI_RES_TIMER:
+---------------------
+
+ Used In:
+ libsrc/Misc/High_Res_Timer.h
+ libsrc/Misc/High_Res_Timer.C
+ include/High_Res_Timer.h
+
+ In Solaris,
+ C++ wrapper around gethrtime(), which returns a long long.
+ gethrtime() returns the current high-resolution real time.
+ Time is expressed as nanoseconds since some arbitrary time
+ in the past; it is not correlated in any way to the time of
+ day, and thus is not subject to resetting, drifting, etc.
+
+ In HPUX
+ look into: getclock(), reltimer(), getitimer()
+ maybe even vtimes structure vm_utime, vm_stime ?
+
+ Notes:
+ TBA
+
+
+ACE_LACKS_T_ERRNO:
+-------------------
+
+ Used In:
+ ace/OS.h
+
+ HPUX:
+ set it.
+
+ Notes:
+ if set, adds:
+ extern int t_errno;
+
+
+ACE_HAS_POSIX_NONBLOCK:
+-----------------------
+
+ Used in:
+ ace/OS.h
+
+ HPUX:
+ set it.
+
+ Notes:
+ if defined, sets ACE_NONBLOCK and O_NONBLOCK
+ O_NONBLOCK is used in libsrc/Misc/misc.C to do a
+ fcntl (fd, F_SETFL, opt)
+ ACE_NONBLOCK is used in libsrc/IPC_SAP/FIFO_SAP/FIFO_Recv.C in the
+ disable member function and options passed to the open function
+ in libsrc/IPC_SAP/FIFO_SAP/FIFO.C
+
+
+ACE_HAS_PROC_FS:
+----------------
+
+ Used in:
+ ace/OS.h
+ libsrc/Misc/Profile_Timer.i
+
+ Notes:
+ if set, includes <sys/procfs.h>
+ the PIOCUSAGE define is used in Profile_Timer.
+
+ Solaris:
+ procfs.h defines things for the prpsinfo structure (basically to
+ do a "ps" from inside a program).
+
+ HPUX:
+ don't set: obviously a different mechanism.
+ Look into /usr/include/sys/proc.h. The structure is proc. The
+ pointer to the kernel's proc table may be obtained by
+ extern struct proc *proc, *procNPROC;
+ extern int nproc;
+
+
+ACE_HAS_PRUSAGE_T:
+------------------
+
+ Used in:
+ libsrc/Misc/Profile_Timer.h
+ libsrc/Misc/Profile_Timer.C
+
+ Notes:
+ If defined, declares the Profile_Timer class that does start(),
+ stop() and basically gets real_time, user_time, system_time for
+ an interval.
+ This stuff is highly non-portable.
+
+ HPUX:
+ don't set
+
+
+ACE_HAS_SEMUN:
+--------------
+
+ Used in:
+ libsrc/Semaphores/Semaphore_Simple.h
+
+ Notes:
+ if not defined, defines semun as:
+ union semun {
+ int val; /* value for SETVAL */
+ struct semid_ds *buf; /* buffer for IPC_STAT & IPC_SET */
+ ushort *array; /* array for GETALL & SETALL */
+ };
+
+ HPUX:
+ don't set.
+ in /usr/include/sem.h:
+ /* The fourth argument to semctl() varies depending on the value of
+ its first argument. If desired, "union semun" can be declared
+ by the user, but this is not necessary since the individual
+ member can just be passed as the argument. */
+
+
+ACE_HAS_SIG_ATOMIC_T:
+---------------------
+
+ Used in:
+ ace/OS.h
+
+ Notes:
+ if not defined, does a:
+ typedef int sig_atomic_t;
+ This is used in the Reactor and service configurator.
+
+ HPUX:
+ set it.
+ in /usr/include/sys/signal.h:
+ typedef unsigned int sig_atomic_t;
+
+
+ACE_HAS_SSIZE_T:
+----------------
+
+ Used in:
+ ace/OS.h
+
+ Notes:
+ if not defined, does a
+ typedef int ssize_t;
+ used mostly in IPC_SAP. (don't confuse with size_t).
+
+ HPUX:
+ set it.
+ in /usr/include/sys/types.h
+
+
+ACE_HAS_STRBUF_T:
+-----------------
+
+ Used in:
+ include/Str_Buf.h
+
+ Notes:
+ if not defined, declares the strbuf structure as:
+ struct strbuf
+ {
+ int maxlen; /* no. of bytes in buffer */
+ int len; /* no. of bytes returned */
+ void *buf; /* pointer to data */
+ };
+
+ Solaris:
+ defined in /usr/include/sys/stropts.h
+ Sys V.4 Streams.
+ uses strbuf as parameter to putmsg, putpmsg:
+ int putmsg(int fildes, const struct strbuf *ctlptr,
+ const struct strbuf *dataptr, int flags);
+
+ HPUX:
+ don't set.
+ no SYS V.4 streams.
+
+
+ACE_HAS_STREAMS:
+----------------
+
+ Used In:
+ ace/OS.h
+ libsrc/IPC_SAP/SOCK_SAP/LSOCK.C
+
+ Notes:
+ if defined, includes <stropts.h>
+
+ HPUX:
+ don't set.
+ no SYS V.4 streams.
+
+
+ACE_HAS_STREAM_PIPES:
+---------------------
+
+ Used in:
+ libsrc/IPC_SAP/SPIPE_SAP/SPIPE_Msg.h
+ libsrc/IPC_SAP/SPIPE_SAP/SPIPE_Msg.C
+ libsrc/IPC_SAP/SPIPE_SAP/SPIPE_Listener.h
+ libsrc/IPC_SAP/SPIPE_SAP/SPIPE_Listener.C
+ libsrc/IPC_SAP/SPIPE_SAP/SPIPE.h
+ libsrc/IPC_SAP/SPIPE_SAP/SPIPE.C
+ libsrc/IPC_SAP/FIFO_SAP/FIFO_Send_Msg.h
+ libsrc/IPC_SAP/FIFO_SAP/FIFO_Send_Msg.C
+ libsrc/IPC_SAP/FIFO_SAP/FIFO_Send_Msg.i
+ libsrc/IPC_SAP/FIFO_SAP/FIFO_Recv_Msg.h
+ libsrc/IPC_SAP/FIFO_SAP/FIFO_Recv_Msg.C
+ libsrc/IPC_SAP/FIFO_SAP/FIFO_Recv_Msg.i
+
+ Notes:
+ if not set, won't be able to use the SPIPE class (IPC_SAP) with
+ rendezvous handles.
+
+ HPUX:
+ don't set.
+ No sysV.4 streams.
+
+
+ACE_HAS_SVR4_DYNAMIC_LINKING:
+-----------------------------
+
+ Used in:
+ ace/OS.h
+ tests/Service_Configurator/CCM_App.C
+
+ Notes:
+ if defined, includes <dlfcn.h>
+ with dlopen(), dlsym(), etc..
+
+ HPUX:
+ don't set.
+ has its own:
+ shl_findsym( ), shl_gethandle( ), shl_getsymbols( ),
+ shl_unload( ), shl_get( )(3X) - explicit load of shared libraries
+
+
+ACE_HAS_SVR4_GETTIMEOFDAY:
+--------------------------
+
+ Used in:
+ ace/OS.h
+ libsrc/Reactor/Timer_Queue.i
+
+ Notes:
+ has to do with gettimeofday ().
+
+ Solaris:
+ gettimeofday (struct timeval *tp)
+
+ HPUX:
+ don't set.
+ it has gettimeofday (struct timeval *tp, struct timezone *tzp);
+ most calls do a:
+ #if defined (ACE_HAS_SVR4_GETTIMEOFDAY)
+ ::gettimeofday (&cur_time);
+ #else
+ ::gettimeofday (&cur_time, 0);
+ #endif /* ACE_HAS_SVR4_GETTIMEOFDAY */
+
+
+ACE_HAS_POLL:
+------------
+ Used in:
+ ace/OS.h
+
+ Notes:
+ #if defined (ACE_HAS_POLL)
+ #include /**/ <poll.h>
+ #endif /* ACE_HAS_POLL */
+
+ACE_USE_POLL_IMPLEMENTATION:
+------------------
+
+ Used in:
+ ace/OS.h
+
+ Notes:
+ Use the poll() event demultiplexor rather than select().
+
+ HPUX:
+ set it.
+
+
+ACE_HAS_SVR4_SIGNAL_T:
+----------------------
+
+ Used in:
+ ace/OS.h
+
+ Notes:
+ #if defined (ACE_HAS_SVR4_SIGNAL_T)
+ typedef void (*SignalHandler)(int);
+ typedef void (*SignalHandlerV)(void);
+ #elif defined (ACE_HAS_SIGNALHANDLERV_INT_ARG)
+ typedef void (*SignalHandler)(int);
+ typedef void (*SignalHandlerV)(int);
+ #else
+ #define SignalHandler SIG_PF
+ typedef void (*SignalHandlerV)(...);
+ #endif /* ACE_HAS_SVR4_SIGNAL_T */
+
+ HPUX:
+ set it.
+
+
+ACE_HAS_SVR4_TLI:
+-----------------
+
+ Used in:
+ libsrc/IPC_SAP/TLI_SAP/TLI.C
+ libsrc/IPC_SAP/TLI_SAP/TLI.h
+ libsrc/IPC_SAP/TLI_SAP/TLI_Stream.C
+
+ Notes:
+ TLI is the transport layer calls as in: t_bind(), t_open(), t_unbind(),
+ t_optmgmt(), ... in SunOS and Solaris.
+
+ HPUX:
+ don't set.
+ Not supported.
+
+
+ACE_HAS_SYS_FILIO_H:
+--------------------
+
+ Used in:
+ ace/OS.h
+
+ Notes:
+ if not defined, includes <sys/filio.h>.
+ didn't find any reference to anything in this file in the ACE code.
+
+ Solaris:
+ filio.h defines FIOCLEX, FIOASYNC, ... as _IO('f', 1), ..
+ for FIOLFS,.. solaris has this to say:
+ /*
+ * ioctl's for Online: DiskSuite.
+ * WARNING - the support for these ioctls may be withdrawn
+ * in the future OS releases.
+ */
+
+ HPUX:
+ <sys/ioctl.h> defines FIOASYNC and some other ones,
+ <sgtty.h> defines some like FIOCLEX.
+ some are never defined.
+ use #ifdef HP-UX to modify sysincludes.h
+
+
+ACE_HAS_TEMPLATE_TYPEDEFS:
+--------------------------
+
+ Used in:
+ libsrc/ASX/*.[Chi]
+
+ Notes:
+ cfront-based C++ compilers don't implement templates that support
+ classes with typedefs of other types as formal arguments. This
+ typedef uses the C++ preprocessor to work around this problem.
+
+ACE_HAS_THREADS:
+----------------
+
+ Used in:
+ libsrc/Service_Configurator/Svc_Conf.y.C
+ libsrc/Service_Configurator/Thread_Spawn.i
+ libsrc/Threads/Synch.C
+ libsrc/Threads/Synch.i
+ libsrc/Threads/Thr_Manager.i
+ libsrc/ASX/STREAM.C
+ libsrc/ASX/Queue.C
+ libsrc/ASX/Module.C
+ libsrc/ASX/Stream_Modules.C
+ libsrc/ASX/Multiplexor.C
+ libsrc/ASX/Message_List.C
+ include/Message_List.h
+ include/Module.h
+ include/Multiplexor.h
+ include/Queue.h
+ include/STREAM.h
+ include/Stream_Modules.h
+ include/Service_Types.h
+ include/Thread_Spawn.h
+ include/Synch.h
+ include/Thr_Manager.h
+
+ Notes:
+ We use Message_List.h even in a non-threaded environment.
+ our XOMessageList.h does this by #ifdefs around Threaded things.
+
+ HPUX:
+ not until 10.0.
+
+
+ACE_HAS_TIMOD_H:
+----------------
+
+ Used in:
+ ace/OS.h
+
+ Notes:
+ if defined, include <sys/timod.h>
+
+ Solaris:
+ timod is a STREAMS module for use with the Transport Inter-
+ face (TI) functions of the Network Services library. The
+ timod module converts a set of ioctl(2) calls into STREAMS
+ messages that may be consumed by a transport protocol pro-
+ vider that supports the Transport Interface. This allows a
+ user to initiate certain TI functions as atomic operations.
+
+ HPUX:
+ don't set.
+
+
+ACE_HAS_TIUSER_H:
+-----------------
+
+ Used in:
+ ace/OS.h
+
+ Notes:
+ if set, includes <tiuser.h>
+
+ Solaris:
+ in conjunction with t_bind, t_accept, etc.. transport layer.
+
+ HPUX:
+ don't set.
+
+
+ACE_USE_POLL_IMPLEMENTATION:
+----------------------------
+
+ Used in:
+ libsrc/Reactor/Reactor.i
+ include/Event_Handler.h
+ ace/OS.h
+ include/Reactor.h
+
+ Notes:
+ in the reactor, use poll instead of select. In general,
+ good thing to have set.
+
+ACE_USES_GPROF:
+----------------------------
+ Used in:
+ ace/Base_Thread_Adapter.h
+ ace/Base_Thread_Adapter.inl
+ ace/Base_Thread_Adapter.cpp
+
+ Notes:
+ When using gprof mainly on Linux, #define ACE_USES_GPROF
+ will add calls to getitimer/setitimer in order to initialize profile
+ timer and overcome the problem of gprof with multithreaded applications.
+
+ACE_QTREACTOR_CLEAR_PENDING_EVENTS:
+----------------------------
+ Used in:
+ ace/QtReactor.cpp:
+ QtReactor by default does not clear qt events pending for
+ activated socket. Clearing costs much, at least 2 hash accesses
+ in ACE, and 2 another in Qt. It is also better to not clear
+ pending events as some side effects are unknown. However,
+ when events are not clear, then some user applications may be
+ confused by handle_input/output/exception called without any
+ data eg. in ACE_Acceptor::make_svc_handler. This swithc is
+ intended to quickly fix user application which does not
+ follow some reactor rules.
+ Linux:
+ It seems linux::qt does not queue pending events. Do not define
+ this switch.
+ Windows:
+ Windows::qt queues pending events. If user application has handle_*
+ methods which cannot be called without data, then turn on this switch
+ to quickly fix the bug. However, one should seriously fix the
+ application then.