Revert to Current Include Style
[ACE_TAO.git] / ACE / ace / README
blobe975426f438de53fe2aee11490341f7405daab4e
1 ACE Portability Macros
2 ----------------------
4 The following describes the meaning of the C++ compiler macros that
5 can be set in the config*.h file.  When you port ACE to a new platform
6 and/or C++ compiler, make sure that you check to see which of these
7 need to be defined.  It's helpful to check the various config*.h files
8 in this directory to see what's already been defined.  If you need to
9 add new macros, please send them to me and I'll add them to this file.
11 Eventually, most of this information should be auto-discovered via GNU
12 autoconf, which is currently available in the ACE distribution.
14 Macro                                   Description
15 -----                                   -----------
17 ACE_HAS_DUMP                            Used to enable the dump()
18                                         method bodies.  If not
19                                         defined, the bodies are ifdef
20                                         out in order to reduce
21                                         footprint.  By default, it is
22                                         not defined.
23 ACE_CAST_CONST                          Used to work around broken
24                                         SunCC ANSI casts that require
25                                         an extra const.
26 ACE_DEFINES_DEFAULT_WIN32_SECURITY_ATTRIBUTES
27                                         Win32 only.  Users want to use
28                                         a predefined security
29                                         attributes defined in
30                                         ACE_OS::default_win32_security_attributes
31                                         as the default security
32                                         object.
33 ACE_DISABLE_MKTEMP                      Disable availability of
34                                         ACE_OS::mktemp().
35 ACE_DISABLE_TEMPNAM                     Disable availability of
36                                         ACE_OS::tempnam().
37 ACE_DISABLE_DEBUG_DLL_CHECK             Define this if you don't want
38                                         debug version ACE search for
39                                         debug version DLLs first
40                                         before looking for the DLL
41                                         names specified.
42 ACE_DOESNT_INSTANTIATE_NONSTATIC_OBJECT_MANAGER
43                                         Application will allocate its
44                                         own object manager.  This
45                                         implicitly defines
46                                         ACE_HAS_NONSTATIC_OBJECT_MANAGER.
47                                         Usually used with MFC
48                                         applications.
49 ACE_GETNAME_RETURNS_RANDOM_SIN_ZERO     Platform does not initialize
50                                         sockaddr_in::sin_zero field in
51                                         calls to getpeername() and
52                                         getsockname().  As a result,
53                                         memcmp()-based equality
54                                         comparison can fail despite
55                                         the fact two sockaddr_in
56                                         instances refer to the same
57                                         addr characteristics.
58 ACE_MAIN                                Renames "main (int, char *[])",
59                                         for platforms such as g++/VxWorks
60                                         that don't allow "main".  Requires
61                                         the use of
62                                         ACE_HAS_NONSTATIC_OBJECT_MANAGER.
63 ACE_MKDIR_LACKS_MODE                    This platform has a mkdir function with
64                                         a mode argument
65 ACE_MT_SAFE                             Compile using multi-thread libraries
66 ACE_NDEBUG                              Turns off debugging features
67 ACE_NEW_THROWS_EXCEPTIONS               Compiler's 'new' throws exception on
68                                         failure (ANSI C++ behavior).
69 ACE_NLOGGING                            Turns off the LM_DEBUG and
70                                         LM_ERROR logging macros...
71 ACE_NTRACE                              Turns off the tracing feature when = 1.
72 ACE_HAS_TRACE                           Defined when ACE_NTRACE=0 to
73                                         help support tracing.  Can
74                                         also be defined by users who
75                                         implement their own tracing
76                                         macros based on
77                                         ACE_TRACE_IMPL.  Not defining
78                                         it helps reduce footprint by
79                                         not requiring applications to
80                                         link in Trace.o.
81 ACE_PAGE_SIZE                           Defines the page size of the
82                                         system (not used on Win32 or
83                                         with ACE_HAS_GETPAGESIZE).
84 ACE_TEMPLATES_REQUIRE_PRAGMA            Compiler's template mechanism
85                                         must use a pragma This is used
86                                         for AIX's C++ compiler.
87 ACE_TEMPLATES_REQUIRE_SOURCE            Compiler's template mechanim
88                                         must see source code (i.e.,
89                                         .cpp files).  This is used for
90                                         GNU G++.
91 ACE_TIMEPROBE_ASSERTS_FIXED_SIZE        If enabled then ACE_Timeprobe_Ex<>::timeprobe()
92                                         will assert if the end of the
93                                         buffer is reached.  If disabled, the
94                                         counter wraps around to start
95                                         at the beginning of the buffer.
96 ACE_TIMER_SKEW                          If a timed ::select () can return
97                                         early, then ACE_TIMER_SKEW is the
98                                         maximum adjustment, in microseconds,
99                                         that ACE_Timer_Queue uses to
100                                         compensate for the early return.
101 ACE_TLI_TCP_DEVICE                      Device the platform uses for TCP on
102                                         TLI.  Only needed if not /dev/tcp.
103 ACE_USE_POLL                            The OS platform supports the
104                                         poll() event demultiplexor
105 ACE_USES_ASM_SYMBOL_IN_DLSYM            Platform uses assembly symbols
106                                         instead of C symbols in
107                                         dlsym()
108 ACE_USES_STATIC_MFC                     When linking MFC as a static library is desired
109 ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB   Platform has its standard c++
110                                         library in the namespace std.
111 ACE_USES_EXPLICIT_STD_NAMESPACE         Set this when ::fclose doesn't
112                                         work and you have to
113                                         explicitly specify the std
114                                         namespace.   This is needed
115                                         with the Borland 6 and earlier
116                                         compilers.
117 ACE_USES_GPROF                          ACE calls getitimer before spawning
118                                         a new thread and setitimer
119                                         after spawning the thread in
120                                         order to overcome the problems
121                                         of gprof with multithreaded
122                                         applications. It uses the idea from
123                                         http://sam.zoy.org/writings/programming/gprof.html
124 ACE_USES_FIFO_SEM                       Directs ACE to use FIFO based semaphores on
125                                         platforms that support this (not having full
126                                         POSIX semaphore support, supporting mkfifo, select
127                                         and fcntl).
128 ACE_WSOCK_VERSION                       A parameter list indicating
129                                         the version of WinSock (e.g.,
130                                         "1, 1" is version 1.1).
131 ACE_HAS_AIO_CALLS                       Platform supports POSIX aio* calls.
132                                         Corresponds to _POSIX_ASYNCHRONOUS_IO
133                                         constant in <unistd.h>.
134 ACE_HAS_ALT_CUSERID                     Use ACE's alternate cuserid()
135                                         implementation since a system
136                                         cuserid() may not exist, or it
137                                         is not desirable to use it.
138                                         The implementation requires
139                                         ACE_LACKS_PWD_FUNCTIONS to be
140                                         undefined and that the
141                                         geteuid() system call exists.
142 ACE_HAS_DINKUM_STL                      Using the Dinkum STL library
143 ACE_HAS_HEADER_ALLOCATED_CLASS_STATIC_CONST_INT_STOREAGE
144                                         Non-C++ Compliant compilers that automatically
145                                         provide storage for class static const int
146                                         when their declaration is seen. I.e. they object
147                                         to explicit definitions being seen in the .cpp
148                                         file.
149 ACE_DEFAULT_THREAD_KEYS                 Number of TSS keys, with
150                                         ACE_HAS_TSS_EMULATION _only_.
151                                         Defaults to 64.
152 ACE_DEFAULT_THREAD_STACKSIZE            Default stack size specified for the
153                                         ACE thread spawning methods. Defaults
154                                         to 0, which defers to OS defaults.
155 ACE_DEFAULT_LD_SEARCH_PATH              Specify the platform default search
156                                         paths.  This macro should only be
157                                         defined on platforms that don't
158                                         support environment variables at all
159                                         (i.e., Windows CE.)
160 ACE_THREADS_DONT_INHERIT_LOG_MSG        Specify this if you don't want
161                                         threads to inherit parent
162                                         thread's ACE_Log_Msg
163                                         properties.
164 ACE_THREAD_MANAGER_USES_SAFE_SPAWN      Disable the "check before lock" feature
165                                         in ACE_Thread_Manager.  Defining this
166                                         macro avoids a potential race condition
167                                         on platforms with aggressive read/write
168                                         reordering.
169 ACE_HAS_CPU_SET_T                       Platform delivers cpu_set_t.
170 ACE_HAS_PRIOCNTL                        OS has priocntl (2).
171 ACE_HAS_RECURSIVE_MUTEXES               Mutexes are inherently recursive
172                                         (e.g., Win32)
173 ACE_HAS_NONRECURSIVE_MUTEXES            In addition to recursive mutexes,
174                                         platform has non-recursive ones also.
175 ACE_HAS_RECV_TIMEDWAIT                  Platform has the MIT pthreads
176                                         APIs for
177 ACE_HAS_RLIMIT_RESOURCE_ENUM            Platform has enum instead of
178                                         int for first argument to
179                                         ::{get,set}rlimit ().  The
180                                         value of this macro is the
181                                         enum definition, e.g., enum
182                                         __rlimit_resource, for Linux
183                                         glibc 2.0.
184 ACE_HAS_RUSAGE_WHO_ENUM                 Platform has enum instead of
185                                         int for first argument to
186                                         ::getrusage ().  The value of
187                                         this macro is the enum
188                                         definition, e.g., enum
189                                         __rusage_who, for Linux glibc
190                                         2.0.
191 ACE_HAS_SCANDIR                         Platform has a native scandir()
192                                         function. Without any other scandir-
193                                         related settings, it's assumed that
194                                         the selector and comparator functions
195                                         accept const ACE_DIRENT pointers.
196 ACE_SCANDIR_CMP_USES_VOIDPTR            The OS's scandir() comparator function
197                                         is int (*compare)(void*, void*).
198 ACE_SCANDIR_CMP_USES_CONST_VOIDPTR      The OS's scandir() comparator function
199                                         is int (*compare)(const void*,
200                                                           const void*).
201 ACE_SCANDIR_SEL_LACKS_CONST             The OS's scandir() selector function
202                                         is int (*selector)(ACE_DIRENT*)
203 ACE_HAS_STDARG_THR_DEST                 Platform has void (*)(...)
204                                         prototype for
205                                         pthread_key_create()
206                                         destructor (e.g., LynxOS).
207 ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS     Platform/compiler supports
208                                         Win32 structural exceptions
209 ACE_HAS_4_4BSD_SENDMSG_RECVMSG          Platform has BSD 4.4
210                                         sendmsg()/recvmsg() APIs.
211 ACE_HAS_P_READ_WRITE                    Platform has pread() and
212                                         pwrite() support
213 ACE_HAS_AIX_BROKEN_SOCKET_HEADER        Platform, such as AIX4, needs
214                                         to wrap #include of
215                                         sys/socket.h with
216                                         #undef/#define of
217                                         __cplusplus.
218 ACE_HAS_AIX_HI_RES_TIMER                Platform has AIX4
219                                         ::read_real_time ()
220 ACE_HAS_ALLOCA                          Compiler/platform supports
221                                         alloca()
222 ACE_HAS_ALLOCA_H                        Compiler/platform has
223                                         <alloca.h>
224 ACE_HAS_ALPHA_TIMER                     CPU is an Alpha, with the rpcc
225                                         instruction to read the tick timer.
226                                         Limited to 32 bits, so not recommended.
227 ACE_HAS_AUTOMATIC_INIT_FINI             Compiler/platform correctly
228                                         calls init()/fini() for shared
229                                         libraries
230 ACE_HAS_BIG_FD_SET                      Compiler/platform has typedef
231                                         u_long fdmask (e.g., Linux and
232                                         SCO).
233 ACE_HAS_WORKING_EXPLICIT_TEMPLATE_DESTRUCTOR
234                                         Compiler handles explicit calling of
235                                         template destructor correctly. See
236                                         "ace/OS.h" for details.
237 ACE_HAS_BROKEN_ACCEPT_ADDR              Platform can't correctly deal
238                                         with a NULL addr to accept()
239                                         (e.g, VxWorks < 6.9).
240 ACE_HAS_BROKEN_DGRAM_SENDV              Platform sendv() does not work
241                                         properly with datagrams,
242                                         i.e. it fails when the iovec
243                                         size is IOV_MAX.
244 ACE_HAS_BROKEN_MAP_FAILED               Platform doesn't cast MAP_FAILED
245                                         to a void *.
246 ACE_HAS_BROKEN_MSG_H                    Platform headers don't support
247                                         <msg.h> prototypes
248 ACE_HAS_BROKEN_MMAP_H                   HP/UX does not wrap the
249                                         mmap(2) header files with
250                                         extern "C".
251 ACE_HAS_BROKEN_NESTED_TEMPLATES         MSVC has trouble with defining
252                                         STL containers for nested
253                                         structs and classes
254 ACE_HAS_BROKEN_POSIX_TIME               Platform defines struct
255                                         timespec in <sys/timers.h>
256 ACE_HAS_BROKEN_T_ERROR                  Compiler/platform has the wrong
257                                         prototype for t_error(), i.e.,
258                                         t_error(char *) rather than
259                                         t_error(const char *).
260 ACE_HAS_BYTESEX_H                       Platform has <bytesex.h>.
261 ACE_HAS_CANCEL_IO                       Platform supports the Win32
262                                         CancelIO() function (WinNT 4.0
263                                         and beyond).
264 ACE_HAS_CHARPTR_DL                      OS/platform uses char * for
265                                         dlopen/dlsym args, rather than
266                                         const char *.
267 ACE_HAS_CHARPTR_SOCKOPT                 OS/platform uses char * for
268                                         sockopt, rather than const
269                                         char *
270 ACE_HAS_CLOCK_GETTIME                   Platform supports POSIX.1b
271                                         clock_gettime () at least for clock-id CLOCK_REALTIME
272 ACE_HAS_CLOCK_GETTIME_MONOTONIC         Platform supports POSIX.1b
273                                         clock_gettime () with the clock-id CLOCK_MONOTONIC
274 ACE_HAS_CLOCK_SETTIME                   Platform supports POSIX.1b
275                                         clock_settime ()
276 ACE_HAS_CONFLICTING_XTI_MACROS          OS's XTI header file defines some
277                                         TCP-related macros that netinet/tcp.h
278                                         also defines, but they conflict
279                                         (only seen on HP-UX 11).
280 ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES    Prototypes for both signal()
281                                         and struct sigaction are
282                                         consistent.
283 ACE_HAS_CPLUSPLUS_HEADERS               Compiler/platform has
284                                         correctly prototyped header
285                                         files
286 ACE_HAS_DIRENT                          Compiler/platform has Dirent
287                                         iterator functions
288 ACE_HAS_DLL                             Build ACE using the frigging
289                                         PC DLL nonsense...
290 ACE_HAS_EBCDIC                          Compile in the ACE code set classes
291                                         that support EBCDIC.
292 ACE_HAS_EXCEPTIONS                      Compiler supports C++
293                                         exception handling
294 ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION_EXPORT  When a base-class is a
295                                         specialization of a class template
296                                         then this class template must be
297                                         explicitly exported
298 ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION  For the GCC compiler
299                                         on AIX, HPUX and VxWorks we have to
300                                         explicitly instantiate static template
301                                         members else we get multiple instances
302                                         of the same static.
303 ACE_HAS_GETPAGESIZE                     Platform supports
304                                         getpagesize() call (otherwise,
305                                         ACE_PAGE_SIZE must be defined,
306                                         except on Win32)
307 ACE_HAS_GETRUSAGE                       Platform supports the
308                                         getrusage() system call.
309 ACE_HAS_GETRUSAGE_PROTOTYPE             Platform has a getrusage ()
310                                         prototype in sys/resource.h
311                                         that differs from the one in
312                                         ace/OS.i.
313 ACE_HAS_GPERF                           The GPERF utility is compiled
314                                         for this platform
315 ACE_HAS_GETIFADDRS                      This platform has ifaddrs.h and
316                                         the getifaddrs() function.  This
317                                         is used in preference to
318                                         the SIOCGIFCONF ioctl call, since
319                                         it is much simpler and supports
320                                         IPv6 and non-IP interfaces better.
321 ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT Optimize
322                                         ACE_Handle_Set::count_bits for
323                                         select() operations (common
324                                         case)
325 ACE_HAS_LLSEEK                          Platform supports llseek.
326 ACE_HAS_HI_RES_TIMER                    Compiler/platform supports
327                                         SunOS high resolution timers
328 ACE_HAS_IDTYPE_T                        Compiler/platform supports
329                                         idtype_t.
330 ACE_HAS_INLINED_OSCALLS                 Inline all the static class OS
331                                         methods to remove call
332                                         overhead
333 ACE_HAS_INT_SWAB                        Platform's swab function has length
334                                         argument of type int, not ssize_t.
335 ACE_HAS_IP_MULTICAST                    Platform supports IP multicast
336 ACE_HAS_IPV6                            Platform supports IPv6.
337 ACE_HAS_BROKEN_GETHOSTBYADDR_V4MAPPED   gethostbyaddr does not handle
338                                         IPv6-mapped-IPv4 addresses
339 ACE_USES_IPV4_IPV6_MIGRATION            Enable IPv6 support in ACE on
340                                         platforms that don't have IPv6
341                                         turned on by default.
342 ACE_HAS_NONSTATIC_OBJECT_MANAGER        Causes the ACE_Object_Manager
343                                         instance to be created in main
344                                         (int, char *[]), instead of as
345                                         a static (global) instance.
346 ACE_HAS_THR_KEYDELETE                   Platform supports
347                                         thr_keydelete (e.g,. UNIXWARE)
348 ACE_HAS_THR_MINSTACK                    Platform calls thr_minstack()
349                                         rather than thr_min_stack()
350                                         (e.g., Tandem).
351 ACE_HAS_LIMITED_RUSAGE_T                The rusage_t structure has
352                                         only two fields.
353 ACE_HAS_LINUX_NPTL                      Linux platform (with kernel >= 2.6.x)
354                                         with GLibc including new NPTL (Native
355                                         POSIX Thread Library).
356                                         This triggers extended POSIX checks
357                                         since the NPTL library is (almost) fully
358                                         POSIX compliant.
359 ACE_HAS_LOG_MSG_NT_EVENT_LOG            Platform supports Windows NT event
360                                         log so we can create an
361                                         ACE_Log_Msg_Backend to log to it.
362 ACE_HAS_LONG_MAP_FAILED                 Platform defines MAP_FAILED as
363                                         a long constant.
364 ACE_HAS_MALLOC_STATS                    Enabled malloc statistics
365                                         collection.
366 ACE_HAS_MEMCHR                          Use native implementation of memchr.
367 ACE_HAS_MINIMAL_ACE_OS                  Disables some #includes in ace/OS.*.
368 ACE_HAS_MFC                             Platform supports Microsoft
369                                         Foundation Classes
370 ACE_HAS_MSG                             Platform supports recvmsg and
371                                         sendmsg
372 ACE_HAS_MT_SAFE_MKTIME                  Platform supports MT safe
373                                         mktime() call (do any of
374                                         them?)
375 ACE_HAS_MUTEX_TIMEOUTS                  Compiler supports timed mutex
376                                         acquisitions
377                                         (e.g. pthread_mutex_timedlock()).
378 ACE_HAS_NEW_NOTHROW                     Compiler offers new (nothrow).
379 ACE_HAS_NONCONST_CHDIR                  Platform uses non-const char *
380                                         in call to chdir
381 ACE_HAS_NONCONST_CLOCK_SETTIME          Platform uses non-const
382                                         struct timespec * in call to
383                                         clock_settime
384 ACE_HAS_NONCONST_OPENDIR                Platform uses non-const char *
385                                         in call to opendir
386 ACE_HAS_NONCONST_UNLINK                 Platform uses non-const char *
387                                         in call to unlink
388 ACE_HAS_NONCONST_GETBY                  Platform uses non-const char *
389                                         in calls to gethostbyaddr,
390                                         gethostbyname, getservbyname
391 ACE_HAS_NONCONST_MSGSND                 Platform has a non-const
392                                         parameter to msgsend() (e.g.,
393                                         SCO).
394 ACE_HAS_NONCONST_READV                  Platform omits const qualifier from
395                                         iovec parameter in readv() prototype.
396 ACE_HAS_NONCONST_SELECT_TIMEVAL         Platform's select() uses
397                                         non-const timeval* (only found
398                                         on Linux right now)
399 ACE_HAS_NONCONST_SENDMSG                Platform omits const qualifier
400                                         from msghdr parameter in sendmsg()
401                                         prototype.
402 ACE_HAS_NONCONST_SETRLIMIT              Platform omits const qualifier
403                                         from rlimit parameter in setrlimit()
404                                         prototype.
405 ACE_HAS_NONCONST_STAT                   Platform's stat function has non const
406                                         name argument
407 ACE_HAS_NONCONST_SWAB                   Platform's swab function has non
408                                         const src argument
409 ACE_HAS_NONCONST_WRITEV                 Platform omits const qualifier from
410                                         iovec parameter in writev() prototype.
411 ACE_HAS_OLD_MALLOC                      Compiler/platform uses old
412                                         malloc()/free() prototypes
413                                         (ugh)
414 ACE_HAS_ONLY_SCHED_FIFO                 Platform, e.g., HP NonStop OSS,
415                                         only supports SCHED_FIFO
416                                         POSIX scheduling policy.
417 ACE_HAS_ONLY_SCHED_OTHER                Platform, e.g., Solaris 2.5,
418                                         only supports SCHED_OTHER
419                                         POSIX scheduling policy.
420 ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R   Uses ctime_r & asctime_r with
421                                         only two parameters
422                                         vs. three.
423 ACE_HAS_OSF_TIMOD_H                     Platform supports the OSF TLI
424                                         timod STREAMS module
425 ACE_HAS_3_PARAM_WCSTOK                  Platform has 3-parameter version
426                                         of wcstok(), which was added in
427                                         1994 in the ISO C standard Normative
428                                         Addendum 1.  Other standards like XPG4
429                                         define a 2 parameter wcstok().
430 ACE_HAS_PENTIUM                         Platform is an Intel Pentium
431                                         microprocessor.
432 ACE_HAS_POLL                            Platform contains <poll.h>
433 ACE_HAS_POSITION_INDEPENDENT_POINTERS   Platform supports
434                                         "position-independent" features
435                                         provided by ACE_Based_Pointer<>.
436 ACE_HAS_POSIX_MESSAGE_PASSING           Platform supports POSIX message queues.
437                                         Corresponds to _POSIX_MESSAGE_PASSING
438                                         constant in <unistd.h>.
439 ACE_HAS_POSIX_NONBLOCK                  Platform supports POSIX
440                                         O_NONBLOCK semantics
441 ACE_HAS_POSIX_REALTIME_SIGNALS          Platform supports POSIX RT signals.
442                                         Corresponds to _POSIX_REALTIME_SIGNALS
443                                         constant in <unistd.h>.
444 ACE_HAS_POSIX_SEM                       Platform supports POSIX
445                                         real-time semaphores (e.g.,
446                                         VxWorks and Solaris).  Corresponds
447                                         to _POSIX_SEMAPHORES constant
448                                         in <unistd.h>
449 ACE_HAS_POSIX_SEM_TIMEOUT               Platform supports timed wait operation
450                                         on POSIX realtime semaphores.
451 ACE_HAS_POSIX_TIME                      Platform supports the POSIX
452                                         struct timespec type
453 ACE_HAS_PROC_FS                         Platform supports the /proc
454                                         file system and defines tid_t
455                                         in <sys/procfs.h>
456 ACE_HAS_POWERPC_TIMER                   Platform supports PowerPC
457                                         time-base register.
458 ACE_HAS_PRUSAGE_T                       Platform supports the
459                                         prusage_t struct
460 ACE_HAS_PTHREADS                        Platform supports POSIX
461                                         Pthreads, of one form or
462                                         another.  This macro says the
463                                         platform has a pthreads
464                                         variety - should also define
465                                         one of the below to say which
466                                         one.  Also may need some
467                                         ACE_HAS_... thing for
468                                         extensions.
469 ACE_HAS_PTHREADS_UNIX98_EXT             Platform has the UNIX98 extensions to
470                                         Pthreads (rwlocks)
471 ACE_HAS_PTHREAD_ATTR_SETCREATESUSPEND_NP  Platform has
472                                         pthread_attr_setcreatesuspend_np().
473 ACE_HAS_PTHREAD_CONDATTR_SETKIND_NP     Platform has pthread_condattr_setkind_np().
474 ACE_HAS_PTHREAD_MUTEXATTR_SETKIND_NP    Platform has
475                                         pthread_mutexattr_setkind_np().
476 ACE_HAS_PTHREAD_GETCONCURRENCY          Platform has pthread_getconcurrency().
477 ACE_HAS_PTHREAD_SETCONCURRENCY          Platform has pthread_setconcurrency().
478 ACE_HAS_PTHREAD_PROCESS_ENUM            pthread.h declares an enum with
479                                         PTHREAD_PROCESS_PRIVATE and
480                                         PTHREAD_PROCESS_SHARED values.
481 ACE_HAS_PTHREAD_SETSTACK                Platform has pthread_attr_setstack().
482 ACE_HAS_PTHREAD_NP_H                    Platform has <pthread_np.h>  FreeBSD
483                                         declares non-portable (*_np) pthread
484                                         functions in this header.
485 ACE_HAS_PURIFY                          Purify'ing.  Set by wrapper_macros.GNU.
486 ACE_HAS_QUANTIFY                        Quantify'ing.  Set by wrapper_macros.GNU.
487 ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS    Platform will recurse
488                                         infinitely on thread exits
489                                         from TSS cleanup routines
490                                         (e.g., AIX).
491 ACE_HAS_REENTRANT_FUNCTIONS             Platform supports reentrant
492                                         functions (i.e., all the POSIX
493                                         *_r functions).
494 ACE_HAS_XPG4_MULTIBYTE_CHAR             Platform has support for
495                                         multi-byte character support
496                                         compliant with the XPG4
497                                         Worldwide Portability
498                                         Interface wide-character
499                                         classification.
500 ACE_HAS_REGEX                           Platform supports the POSIX
501                                         regular expression library
502 ACE_HAS_DLSYM_SEGFAULT_ON_INVALID_HANDLE For OpenBSD: The dlsym call
503                                         segfaults when passed an invalid
504                                         handle.  Other platforms handle
505                                         this more gracefully.
506 ACE_HAS_SELECT_H                        Platform has special header for select().
507 ACE_USE_SELECT_REACTOR_FOR_REACTOR_IMPL For Win32: Use Select_Reactor
508                                         as default implementation of
509                                         Reactor instead of
510                                         WFMO_Reactor.
511 ACE_HAS_SEMUN                           Compiler/platform defines a
512                                         union semun for SysV shared
513                                         memory
514 ACE_HAS_SET_T_ERRNO                     Platform has a function to set
515                                         t_errno (e.g., Tandem).
516 ACE_HAS_SIGACTION_CONSTP2               Platform's sigaction() function takes
517                                         const sigaction* as 2nd parameter.
518 ACE_HAS_SIGINFO_T                       Platform supports SVR4
519                                         extended signals
520 ACE_HAS_SIGSUSPEND                      Platform supports sigsuspend()
521 ACE_HAS_SIGISMEMBER_BUG                 Platform has bug with
522                                         sigismember() (HP/UX 11).
523 ACE_HAS_SIGNAL_OBJECT_AND_WAIT          Platform supports the Win32
524                                         SignalObjectAndWait() function
525                                         (WinNT 4.0 and beyond).
526 ACE_HAS_SIGWAIT                         Platform/compiler has the
527                                         sigwait(2) prototype
528 ACE_HAS_SIG_ATOMIC_T                    Compiler/platform defines the
529                                         sig_atomic_t typedef
530 ACE_HAS_SIG_C_FUNC                      Compiler requires extern "C"
531                                         functions for signals.
532 ACE_HAS_SIZET_SOCKET_LEN                OS/compiler uses size_t *
533                                         rather than int * for socket
534                                         lengths
535 ACE_HAS_SOCKADDR_IN_SIN_LEN             Platform has sin_len member in struct
536                                         sockaddr_in.
537 ACE_HAS_SOCKADDR_IN6_SIN_LEN            Platform has sin6_len member in struct
538                                         sockaddr_in6.
539 ACE_HAS_SOCKADDR_MSG_NAME               Platform requires (struct
540                                         sockaddr *) for msg_name field
541                                         of struct msghdr.
542 ACE_HAS_SOCKLEN_T                       Platform provides socklen_t
543                                         type, such as Linux with
544                                         glibc2.
545 ACE_HAS_SOCK_BUF_SIZE_MAX               Platform limits the maximum socket
546                                         message size.
547 ACE_HAS_SPARCWORKS_401_SIGNALS          Compiler has brain-damaged
548                                         SPARCwork SunOS 4.x signal
549                                         prototype...
550 ACE_HAS_SSIZE_T                         Compiler supports the ssize_t
551                                         typedef
552 ACE_HAS_STHREADS                        Platform supports Solaris
553                                         threads
554 ACE_HAS_STANDARD_CPP_LIBRARY            Platform/compiler supports
555                                         Standard C++ Library
556 ACE_HAS_STDCPP_STL_INCLUDES             Standard C++ headers can be
557                                         included in the standard way.
558                                         e.g. #include <vector>
559 ACE_HAS_STRBUF_T                        Compiler/platform supports
560                                         struct strbuf
561 ACE_HAS_STRDUP_EMULATION                Use ACE's strdup() emulation (even
562                                         if platform has a native strdup()).
563                                         This is useful if you need control
564                                         over what memory allocator is used.
565 ACE_HAS_WCSDUP_EMULATION                Use ACE's wcsdup() emulation (even
566                                         if platform has a native wcsdup()).
567                                         This is useful if you need control
568                                         over what memory allocator is used.
569 ACE_HAS_STRNLEN                         Platform supports strnlen(3).
570 ACE_HAS_STREAMS                         Platform supports STREAMS
571 ACE_HAS_STREAM_PIPES                    Platform supports STREAM pipes
572 ACE_HAS_STRICT                          Use the STRICT compilation mode on Win32.
573 ACE_HAS_STRING_CLASS                    Platform/Compiler supports a
574                                         String class (e.g., GNU or
575                                         Win32).
576 ACE_HAS_STRUCT_NETDB_DATA               Compiler/platform has strange
577                                         hostent API for socket *_r()
578                                         calls
579 ACE_HAS_SUNOS4_SIGNAL_T                 Compiler has horrible SunOS
580                                         4.x signal handlers...
581 ACE_HAS_SVR4_DYNAMIC_LINKING            Compiler/platform supports
582                                         SVR4 dynamic linking semantics
583 ACE_HAS_SVR4_GETTIMEOFDAY               Compiler/platform supports
584                                         SVR4 gettimeofday() prototype
585 ACE_HAS_SVR4_SIGNAL_T                   Compiler/platform supports
586                                         SVR4 signal typedef
587 ACE_HAS_SVR4_TLI                        Compiler/platform supports
588                                         SVR4 TLI; that is, TLI with extensions
589                                         like t_getname(). This is sometimes
590                                         used as a pseudonym for TLI on SunOS4.
591                                         This is a modifier to ACE_HAS_TLI and
592                                         isn't used if ACE_HAS_XTI is set.
593 ACE_HAS_SYSCALL_GETRUSAGE               HP/UX has an undefined syscall
594                                         for GETRUSAGE...
595 ACE_HAS_SYSENT_H                        Platform provides <sysent.h>
596                                         header
597 ACE_HAS_SYSV_SYSINFO                    Platform supports system
598                                         configuration information
599 ACE_HAS_SYSV_IPC                        Platform supports System V IPC
600                                         (most versions of UNIX, but
601                                         not Win32)
602 ACE_HAS_SYS_FILIO_H                     Platform provides
603                                         <sys/filio.h> header
604 ACE_HAS_SYS_LOADAVG_H                   Compiler/platform contains the
605                                         <sys/loadavg.h> file.
606 ACE_HAS_SYS_PSTAT_H                     Compiler/platform contains the
607                                         <sys/pstat.h> file.
608 ACE_HAS_SYS_SOCKIO_H                    Compiler/platform provides the
609                                         sockio.h file
610 ACE_HAS_SYS_SYSCALL_H                   Compiler/platform contains the
611                                         <sys/syscall.h> file.
612 ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA   Compiler's template
613                                         instantiation mechanism
614                                         supports the use of "#pragma
615                                         instantiate".  Edison Design
616                                         Group compilers, e.g., SGI C++
617                                         and Green Hills 1.8.8 and
618                                         later, support this.
619 ACE_HAS_TEMPLATE_TYPEDEFS               Compiler implements templates
620                                         that support typedefs inside
621                                         of classes used as formal
622                                         arguments to a template
623                                         class.
624 ACE_HAS_TERMIO                          Platform has terminal ioctl
625                                         flags like TCGETS and TCSETS and
626                                         termio struct.
627 ACE_HAS_TERMIOS                         Platform has POSIX terminal
628                                         interface and termios struct.
629 ACE_HAS_LAZY_MAP_MANAGER                ACE supports lazy Map Managers
630                                         that allow deletion of entries
631                                         during active iteration.
632 ACE_HAS_THREADS                         Platform supports threads
633 ACE_HAS_THREAD_SAFE_ACCEPT              Platform allows multiple
634                                         threads to call accept() on
635                                         the same port (e.g., WinNT).
636 ACE_HAS_THREAD_SELF                     Platform has thread_self()
637                                         rather than pthread_self()
638                                         (e.g., DCETHREADS and AIX)
639 ACE_HAS_THREAD_SPECIFIC_STORAGE         Compiler/platform has
640                                         thread-specific storage
641 ACE_HAS_THR_C_DEST                      The pthread_keycreate()
642                                         routine *must* take extern C
643                                         functions.
644 ACE_HAS_THR_C_FUNC                      The pthread_create() routine
645                                         *must* take extern C
646                                         functions.
647 ACE_HAS_TIMEZONE                        Platform/compiler supports
648                                         global "timezone" variable.
649 ACE_HAS_TIMEZONE_GETTIMEOFDAY           Platform/compiler supports
650                                         timezone * as second parameter
651                                         to gettimeofday()
652 ACE_HAS_TIMOD_H                         Platform supports TLI timod
653                                         STREAMS module
654 ACE_HAS_TIUSER_H                        Platform provides TLI tiuser.h
655                                         header file.
656 ACE_HAS_TLI                             Platform supports TLI.  Also
657                                         see ACE_TLI_TCP_DEVICE. If the
658                                         platform supports XTI, set ACE_HAS_XTI
659                                         instead of this.
660 ACE_HAS_TLI_PROTOTYPES                  Platform provides TLI function
661                                         prototypes
662 ACE_HAS_TR24731_2005_CRT                The platform provides an implementation
663                                         of C99 draft TR24731 (October 2005),
664                                         C run-time with more secure parameters.
665 ACE_HAS_TSS_EMULATION                   ACE provides TSS emulation.
666                                         See also
667                                         ACE_DEFAULT_THREAD_KEYS.
668 ACE_HAS_UALARM                          Platform supports ualarm()
669 ACE_HAS_UCONTEXT_T                      Platform supports ucontext_t
670                                         (which is used in the extended
671                                         signal API).
672 ACE_HAS_UNION_WAIT                      The wait() system call takes a
673                                         (union wait *) rather than int
674                                         *
675 ACE_HAS_VALGRIND                        Running with valgrind
676 ACE_HAS_VERBOSE_NOTSUP                  Prints out console message in
677                                         ACE_NOTSUP.  Useful for
678                                         tracking down origin of
679                                         ACE_NOTSUP.
680 ACE_HAS_VERSIONED_NAMESPACE             Wrap all library code within a
681                                         "versioned namespace" to
682                                         prevent symbol conflicts with
683                                         other versions of ACE shared
684                                         libraries in third party
685                                         libraries.  Default namespace
686                                         name may be overridden by
687                                         defining preprocessor symbol
688                                         ACE_VERSIONED_NAMESPACE_NAME
689                                         to desired name.
690 ACE_LACKS_INTMAX_T                      Platform lacks the intmax_t type
691 ACE_LACKS_UINTMAX_T                     Platform lacks the uintmax_t type.
692 ACE_LACKS_INTPTR_T                      Platform lacks the intptr_t type
693 ACE_LACKS_UINTPTR_T                     Platform lacks the uintptr_t type.
695 ACE_INT8_FORMAT_SPECIFIER               String literal containing *printf
696                                         format specifier (including the '%')
697                                         to be used for ACE_INT8 values.  If
698                                         not defined, ACE will attempt to
699                                         determine the correct setting.
700 ACE_INT16_FORMAT_SPECIFIER              String literal containing *printf
701                                         format specifier (including the '%')
702                                         to be used for ACE_INT16 values.  If
703                                         not defined, ACE will attempt to
704                                         determine the correct setting.
705 ACE_INT32_FORMAT_SPECIFIER              String literal containing *printf
706                                         format specifier (including the '%')
707                                         to be used for ACE_INT32 values.  If
708                                         not defined, ACE will attempt to
709                                         determine the correct setting.
710 ACE_INT64_FORMAT_SPECIFIER              String literal containing *printf
711                                         format specifier (including the '%')
712                                         to be used for ACE_INT64 values.  If
713                                         not defined, ACE will attempt to
714                                         determine the correct setting.
715 ACE_UINT8_FORMAT_SPECIFIER              String literal containing *printf
716                                         format specifier (including the '%')
717                                         to be used for ACE_UINT8 values.  If
718                                         not defined, ACE will attempt to
719                                         determine the correct setting.
720 ACE_UINT16_FORMAT_SPECIFIER             String literal containing *printf
721                                         format specifier (including the '%')
722                                         to be used for ACE_UINT16 values.  If
723                                         not defined, ACE will attempt to
724                                         determine the correct setting.
725 ACE_UINT32_FORMAT_SPECIFIER             String literal containing *printf
726                                         format specifier (including the '%')
727                                         to be used for ACE_UINT32 values.  If
728                                         not defined, ACE will attempt to
729                                         determine the correct setting.
730 ACE_UINT64_FORMAT_SPECIFIER             String literal containing *printf
731                                         format specifier (including the '%')
732                                         to be used for ACE_UINT64 values.  If
733                                         not defined, ACE will attempt to
734                                         determine the correct setting.
736 ACE_HAS_VOIDPTR_GETTIMEOFDAY            Platform/compiler supports
737                                         void * as second parameter
738                                         to gettimeofday
739 ACE_HAS_VOIDPTR_MMAP                    Platform requires void * for
740                                         mmap().
741 ACE_HAS_VOIDPTR_SOCKOPT                 OS/compiler uses void * arg 4
742                                         setsockopt() rather than const
743                                         char *
744 ACE_HAS_WCSNLEN                         Platform supports wcsnlen(3).
745 ACE_HAS_WIN32_OVERLAPPED_IO             Platform has Windows overlapped I/O;
746                                         requires I/O completion ports.
747 ACE_HAS_WIN32_TRYLOCK                   The Win32 platform support
748                                         TryEnterCriticalSection()
749                                         (WinNT 4.0 and beyond)
750 ACE_HAS_WINSOCK2                        The Win32 platform supports
751                                         WinSock 2.0
752 ACE_HAS_XLI                             Platform has the XLI version
753                                         of TLI
754 ACE_HAS_XTI                             Platform has XTI
755                                         (X/Open-standardized superset
756                                         of TLI).  Implies ACE_HAS_TLI
757                                         but uses a different header
758                                         file.
759 ACE_INITIALIZE_MEMORY_BEFORE_USE        Memory is explicitly initialized before
760                                         use. Useful when using a profiler like
761                                         purify or valgrind
762 ACE_HRTIME_T_IS_BASIC_TYPE              ACE_hrtime_t is a basic type that
763                                         doesn't require ACE_U64_TO_U32
764                                         conversion
765 ACE_LACKS_ACCESS                        Platform lacks access() (e.g.,
766                                         VxWorks and Chorus)
767 ACE_LACKS_ACE_IOSTREAM                  Platform can not build
768                                         ace/IOStream{,_T}.cpp.  This
769                                         does not necessarily mean that
770                                         the platform does not support
771                                         iostreams.
772 ACE_LACKS_AUTO_MMAP_REPLACEMENT         No system support for replacing any
773                                         previous mappings.
774 ACE_LACKS_BSEARCH                       Compiler/platform lacks the
775                                         standard C library bsearch()
776                                         function
777 ACE_LACKS_CLOSEDIR                      Platform lacks closedir and the closedir
778                                         emulation must be used
779 ACE_LACKS_OPENDIR                       Platform lacks opendir and the opendir
780                                         emulation must be used
781 ACE_LACKS_READDIR                       Platform lacks readdir and the readdir
782                                         emulation must be used
783 ACE_LACKS_COND_TIMEDWAIT_RESET          pthread_cond_timedwait does
784                                         *not* reset the time argument
785                                         when the lock is acquired.
786 ACE_LACKS_CONST_STRBUF_PTR              Platform uses struct strbuf *
787                                         rather than const struct
788                                         strbuf * (e.g., HP/UX 10.x)
789 ACE_LACKS_CONST_TIMESPEC_PTR            Platform forgot const in
790                                         cond_timewait (e.g., HP/UX).
791 ACE_LACKS_COND_T                        Platform lacks condition
792                                         variables (e.g., Win32 and
793                                         VxWorks)
794 ACE_LACKS_CONDATTR_PSHARED              Platform has no implementation
795                                         of
796                                         pthread_condattr_setpshared(),
797                                         even though it supports
798                                         pthreads!
799 ACE_LACKS_DIFFTIME                      Platform lacks difftime() implementation
800 ACE_LACKS_DUP2                          Platform lacks dup2().
801 ACE_LACKS_FCNTL                         Platform lacks POSIX-style fcntl ().
802 ACE_LACKS_FSYNC                         Platform lacks fsync().
803 ACE_LACKS_INLINE_FUNCTIONS              Platform can't handle "inline"
804                                         keyword correctly.
805 ACE_LACKS_EXEC                          Platform lacks the exec()
806                                         family of system calls (e.g.,
807                                         Win32, VxWorks, Chorus)
808 ACE_LACKS_FILELOCKS                     Platform lacks file locking
809                                         mechanism
810 ACE_LACKS_FLOATING_POINT                Platform does not support
811                                         floating point operations
812                                         (e.g., certain Chorus hardware
813                                         platforms)
814 ACE_LACKS_FORK                          Platform lacks the fork()
815                                         system call (e.g., Win32,
816                                         VxWorks, Chorus)
817 ACE_LACKS_GETOPT_PROTOTYPE              Platform lacks the getopt()
818                                         prototype (e.g., LynxOS)
819 ACE_LACKS_GETPGID                       Platform lacks getpgid() call
820                                         (e.g., Win32, Chorus, and
821                                         FreeBSD).
822 ACE_LACKS_GETSERVBYNAME                 Platforms lacks
823                                         getservbyname() (e.g., VxWorks
824                                         and Chorus).
825 ACE_LACKS_GETIPNODEBYADDR               Platform lacks getipnodebyaddr().
826 ACE_LACKS_GETIPNODEBYNAME               Platform lacks getipnodebyname().
827 ACE_LACKS_INET_ATON                     Platform lacks the inet_aton()
828                                         function.
829 ACE_LACKS_INET_ATON_PROTOTYPE           Platform/compiler lacks the
830                                         inet_aton() prototype (e.g.,
831                                         LynxOS)
832 ACE_LACKS_IOSTREAM_FX                   iostream header does not
833                                         declare ipfx (), opfx (),
834                                         etc.
835 ACE_LACKS_KEY_T                         Platform lacks key_t (e.g.,
836                                         Chorus, VxWorks, Win32)
837 ACE_LACKS_LINEBUFFERED_STREAMBUF        Platform lacks streambuf
838                                         "linebuffered ()".
839 ACE_LACKS_LONGLONG_T                    Compiler/platform does not
840                                         support the signed or unsigned long
841                                         long datatype.
842 ACE_LACKS_LSTAT                         Platform lacks the lstat() function.
843 ACE_LACKS_MADVISE                       Platform lacks madvise()
844                                         (e.g., Linux)
845 ACE_LACKS_MALLOC_H                      Platform lacks malloc.h
846 ACE_LACKS_MEMORY_H                      Platform lacks memory.h (e.g.,
847                                         VxWorks and Chorus)
848 ACE_LACKS_MKFIFO                        Platform lacks mkfifo() e.g.,
849                                         VxWorks, Chorus, pSoS, and WinNT.
850 ACE_LACKS_MKTEMP                        Platform lacks the mktemp() function.
851 ACE_LACKS_MKTEMP_PROTOTYPE              Platform/compiler lacks the
852                                         mktemp() prototype (e.g.,
853                                         LynxOS)
854 ACE_LACKS_MKSTEMP      Platform lacks the mkstemp() function.
855 ACE_LACKS_MKSTEMP_PROTOTYPE             Platform/compiler lacks the
856                                         mkstemp() prototype (e.g.,
857                                         LynxOS)
858 ACE_LACKS_MMAP                          The platform doesn't have
859                                         mmap(2) (e.g., SCO UNIX).
860 ACE_LACKS_MODE_MASKS                    Platform/compiler doesn't have
861                                         open() mode masks.
862 ACE_LACKS_MPROTECT                      The platform doesn't have
863                                         mprotect(2) (e.g., EPLX real
864                                         time OS from CDC (based on
865                                         LYNX))
866 ACE_LACKS_MSG_ACCRIGHTS                 Platform defines ACE_HAS_MSG,
867                                         but lacks msg_accrights{,len}.
868 ACE_LACKS_MSG_WFMO                      Platform lacks
869                                         MsgWaitForMultipleObjects
870                                         (only needs to be defined when
871                                         ACE_WIN32 is also defined).
872 ACE_LACKS_MSYNC                         Platform lacks msync() (e.g.,
873                                         Linux)
874 ACE_LACKS_MUTEXATTR_PSHARED             Platform lacks
875                                         pthread_mutexattr_setpshared().
876 ACE_LACKS_NAMED_POSIX_SEM               Platform lacks named POSIX
877                                         semaphores (e.g., Chorus)
878 ACE_LACKS_NETDB_REENTRANT_FUNCTIONS     Platform does not support
879                                         reentrant netdb functions
880                                         (getprotobyname_r,
881                                         getprotobynumber_r,
882                                         gethostbyaddr_r,
883                                         gethostbyname_r,
884                                         getservbyname_r).
885 ACE_LACKS_NEW_H                         OS doesn't have, or we don't want to
886                                         use, new.h.
887 ACE_LACKS_NULL_PTHREAD_STATUS           OS requires non-null status pointer
888                                         for ::pthread_join ().
889 ACE_LACKS_NUMERIC_LIMITS    Platform lacks std::numeric_limits<>.
890 ACE_LACKS_PERFECT_MULTICAST_FILTERING   Platform lacks IGMPv3 "perfect" filtering
891                                         of multicast dgrams at the socket level.
892                                         If == 1, ACE_SOCK_Dgram_Mcast will bind
893                                         the first joined multicast group to the
894                                         socket, and all future joins on that
895                                         socket will fail with an error.
896 ACE_LACKS_PRAGMA_ONCE                   Compiler complains about #pragma once
897 ACE_LACKS_PRI_T                         Platform lacks pri_t (e.g.,
898                                         Tandem NonStop UNIX).
899 ACE_LACKS_PTHREAD_CANCEL                Platform lacks
900                                         pthread_cancel().
901 ACE_LACKS_PTHREAD_SCOPE_PROCESS         Platform lacks support for
902                                         PTHREAD_SCOPE_PROCESS
903 ACE_LACKS_PTHREAD_SIGMASK               Platform lacks pthread_sigmask ().
904 ACE_LACKS_PTHREAD_THR_SIGSETMASK        Platform lacks
905                                         pthread_thr_sigsetmask (e.g.,
906                                         MVS, HP/UX, and OSF/1 3.2)
907 ACE_LACKS_PUTENV_PROTOTYPE              Platform/compiler lacks the
908                                         putenv() prototype (e.g.,
909                                         LynxOS)
910 ACE_LACKS_PWD_REENTRANT_FUNCTIONS       Platform lacks getpwnam_r()
911                                         methods (e.g., SGI 6.2).
912 ACE_LACKS_QSORT                         Compiler/platform lacks the
913                                         standard C library qsort()
914                                         function
915 ACE_LACKS_READLINK                      Platform lacks the readlink() function.
916 ACE_LACKS_READV                         Platform doesn't define readv,
917                                         so use our own
918 ACE_LACKS_RENAME                        Platform lacks rename().
919 ACE_LACKS_RLIMIT                        Platform/compiler lacks
920                                         {get,set}rlimit() function
921                                         (e.g., VxWorks, Chorus, and
922                                         SCO UNIX)
923 ACE_LACKS_RLIMIT_PROTOTYPE              Platform/compiler lacks
924                                         {get,set}rlimit() prototypes
925                                         (e.g., Tandem)
926 ACE_LACKS_READDIR_R                     Platform uses ACE_HAS_DIRENT
927                                         but does not have readdir_r
928                                         ().
929 ACE_LACKS_REALPATH                      Platform/compiler lacks
930                                         realpath () function (e.g.,
931                                         LynxOS)
932 ACE_LACKS_RECVMSG                       Platform lacks recvmsg()
933                                         (e.g., Linux)
934 ACE_LACKS_RWLOCK_T                      Platform lacks readers/writer
935                                         locks.
936 ACE_LACKS_RWLOCKATTR_PSHARED            Platform lacks
937                                         pthread_rwlockattr_setpshared().
938 ACE_LACKS_SBRK                          Platform lacks a working
939                                         sbrk() (e.g., Win32 and
940                                         VxWorks)
941 ACE_LACKS_SCANDIR_PROTOTYPE             Platform/compiler lacks
942                                         scandir() prototype
943                                         (e.g., LynxOS)
944 ACE_LACKS_SEEKDIR                       Platform uses ACE_HAS_DIRENT
945                                         but does not have seekdir ().
946 ACE_LACKS_SEMBUF_T                      Platform lacks struct sembuf
947                                         (e.g., Win32 and VxWorks)
948 ACE_LACKS_SETDETACH                     Platform lacks
949                                         pthread_attr_setdetachstate()
950                                         (e.g., HP/UX 10.x)
951 ACE_LACKS_SETSCHED                      Platform lacks
952                                         pthread_attr_setsched()
953                                         (e.g. MVS)
954 ACE_LACKS_SIGACTION                     Platform lacks struct
955                                         sigaction (e.g., Win32 and
956                                         Chorus)
957 ACE_LACKS_SIGNED_CHAR                   Platform lacks "signed char"
958                                         type (broken!)
959 ACE_LACKS_SIGSET                        Platform lacks signal sets
960                                         (e.g., Chorus and Win32)
961 ACE_LACKS_STRPTIME                      Platform/compiler lacks the strptime()
962                                         function.
963 ACE_LACKS_WCSCHR                        Platform/compiler lacks wcschr()
964 ACE_LACKS_STRDUP                        Platform/compiler lacks strdup()
965 ACE_LACKS_WCSDUP                        Platform/compiler lacks wcsdup()
966 ACE_LACKS_WCSRCHR                       Platform/compiler lacks wcsrchr()
967 ACE_LACKS_SWAB                          Platform/compiler lacks
968                                         swab () function.
969 ACE_LACKS_SYS_MSG_H                     Platform lacks sys/msg.h
970                                         (e.g., Chorus and VxWorks)
971 ACE_LACKS_SYS_PARAM_H                   Platform lacks <sys/param.h>
972                                         (e.g., MVS)
973 ACE_LACKS_SENDMSG                       Platform lacks sendmsg()
974                                         (e.g., Linux)
975 ACE_LACKS_SI_ADDR                       Platform lacks the si_addr
976                                         field of siginfo_t (e.g.,
977                                         VxWorks and HP/UX 10.x)
978 ACE_LACKS_SYMLINKS                      Platform lacks symbolic links
979 ACE_LACKS_SYSV_SHMEM                    Platform lacks System V shared
980                                         memory (e.g., Win32 and
981                                         VxWorks)
982 ACE_LACKS_SIGINFO_H                     Platform lacks the siginfo.h
983                                         include file (e.g., MVS)
984 ACE_LACKS_SOCKET_BUFSIZ                 Platform doesn't support
985                                         SO_SNDBUF/SO_RCVBUF
986 ACE_LACKS_SOCKETPAIR                    Platform lacks the
987                                         socketpair() call (e.g., SCO
988                                         UNIX)
989 ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES  Compiler doesn't support
990                                         static data member templates
991 ACE_LACKS_STRCASECMP                    Compiler/platform lacks
992                                         strcasecmp() (e.g., DG/UX,
993                                         UNIXWARE, VXWORKS)
994 ACE_LACKS_STRCASECMP_PROTOTYPE          Platform/compiler lacks the
995                                         strcasecmp() prototype (e.g.,
996                                         LynxOS)
997 ACE_LACKS_STRNCASECMP_PROTOTYPE         Platform/compiler lacks the
998                                         strncasecmp() prototype (e.g.,
999                                         LynxOS)
1000 ACE_LACKS_STRRECVFD                     Platform doesn't define struct
1001                                         strrecvfd.
1002 ACE_LACKS_SYSCALL                       Platform doesn't have
1003                                         syscall() prototype
1004 ACE_LACKS_T_ERRNO                       Header files lack t_errno for
1005                                         TLI
1006 ACE_LACKS_TCP_NODELAY                   OS does not support TCP_NODELAY.
1007 ACE_LACKS_TELLDIR                       Platform uses ACE_HAS_DIRENT
1008                                         but does not have telldir ().
1009 ACE_LACKS_THREAD_STACK_SIZE             Platform lacks
1010                                         pthread_attr_setstacksize()
1011                                         (e.g., Linux pthreads)
1012 ACE_LACKS_THR_CONCURRENCY_FUNCS    (ONLY APPLIES TO SOLARIS)
1013                                         Platform does not support
1014                                         thr_getconcurrency/thr_setconcurrency
1015                                         functions, or their implementation
1016                                         is effectively a "no-op".  This
1017                                         notably applies for Solaris >= 5.9.
1018                                         Note that if you build on Solaris 8
1019                                         and run on Solaris 9+, you can
1020                                         encounter thread creation errors
1021                                         unless you rebuild on the target
1022                                         platform.
1023 ACE_LACKS_TIMEDWAIT_PROTOTYPES          MIT pthreads platform lacks
1024                                         the timedwait prototypes
1025 ACE_LACKS_TIMESPEC_T                    Platform does not define
1026                                         timepec_t as a typedef for
1027                                         struct timespec.
1028 ACE_LACKS_TRUNCATE                      Platform doesn't have truncate()
1029                                         (e.g., vxworks)
1030 ACE_LACKS_UALARM_PROTOTYPE              Platform/compiler lacks the
1031                                         ualarm() prototype (e.g.,
1032                                         Solaris)
1033 ACE_LACKS_CHAR_RIGHT_SHIFTS             Compiler does not have any istream
1034                                         operator>> for chars, u_chars, or
1035                                         signed chars.
1036 ACE_LACKS_CHAR_STAR_RIGHT_SHIFTS        Compiler does not have
1037                                         operator>> (istream &, u_char *) or
1038                                         operator>> (istream &, signed char *)
1039 ACE_LACKS_UCONTEXT_H                    Platform lacks the ucontext.h
1040                                         file
1041 ACE_LACKS_UMASK                         Platform lacks umask function
1042 ACE_LACKS_UNBUFFERED_STREAMBUF          Platform lacks streambuf
1043                                         "unbuffered ()".
1044 ACE_LACKS_UNISTD_H                      Platform lacks the unistd.h
1045                                         file (e.g., VxWorks and Win32)
1046 ACE_LACKS_UNIX_DOMAIN_SOCKETS           ACE platform has no UNIX
1047                                         domain sockets
1048 ACE_LACKS_UNIX_SIGNALS                  Platform lacks full signal
1049                                         support (e.g., Win32 and
1050                                         Chorus).
1051 ACE_LACKS_UNSIGNEDLONGLONG_T            Compiler/platform does not
1052                                         support the unsigned long
1053                                         long datatype.
1054 ACE_LACKS_UTSNAME_T                     Platform lacks struct utsname
1055                                         (e.g., Win32 and VxWorks)
1056 ACE_LACKS_UNAME                         Platform lacks uname calls
1057 ACE_LACKS_WAIT                          The platform lacks wait
1058 ACE_LACKS_WIN32_GETPROCESSTIMES         The Windows platform doesn't have
1059                                         GetProcessTimes().
1060 ACE_LACKS_WIN32_MOVEFILEEX              The Windows platform doesn't have
1061                                         MoveFileEx().
1062 ACE_LACKS_WIN32_SECURITY_DESCRIPTORS    The Windows platform doesn't have
1063                                         security descriptor support.
1064 ACE_LACKS_WRITEV                        Platform doesn't define
1065                                         writev, so use our own
1067 ACE_NEEDS_DEV_IO_CONVERSION             Necessary with some compilers
1068                                         to pass ACE_TTY_IO as
1069                                         parameter to DEV_Connector.
1070 ACE_NEEDS_FUNC_DEFINITIONS              Compiler requires a definition
1071                                         for a "hidden" function, e.g.,
1072                                         a private, unimplemented copy
1073                                         constructor or assignment
1074                                         operator.  The SGI C++
1075                                         compiler needs this, in
1076                                         template classes, with
1077                                         ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA.
1078 ACE_NEEDS_HUGE_THREAD_STACKSIZE         Required by platforms with
1079                                         small default stacks.
1080 ACE_NEEDS_LWP_PRIO_SET                  OS has LWPs, and when the
1081                                         priority of a bound thread is
1082                                         set, then the LWP priority
1083                                         must be set also.
1084 ACE_NEEDS_SCHED_H                       Platform needs to #include
1085                                         <sched.h>
1086                                         to get thread scheduling
1087                                         defs.
1089 ACE_NO_WIN32_LEAN_AND_MEAN              If this is set, then ACE does not
1090                                         define WIN32_LEAN_AND_MEAN before
1091                                         including <windows.h>. Needed for
1092                                         code that uses non-lean Win32
1093                                         facilities such as COM.
1095 ACE_SHM_OPEN_REQUIRES_ONE_SLASH         The path specified on shm_open() must
1096                                         have a leading, single slash and not
1097                                         have any other slashes.
1099 ACE_WSTRING_HAS_USHORT_SUPPORT          If a platform has wchar_t as a
1100                                         separate type, then
1101                                         ACE_WString doesn't have a
1102                                         constructor that understands
1103                                         an ACE_USHORT16 string.  So
1104                                         this macro enables
1105                                         one. (mostly used my ACE Name
1106                                         Space).
1108 ACE_HAS_BROKEN_PREALLOCATED_OBJECTS_AFTER_FORK
1109                                         Under QNX/RTP the objects preallocated
1110                                         in ACE_OS_Object_Manager cannot be
1111                                         destroyed after a fork() call.
1112                                         Since these objects are only destroyed
1113                                         at application shutdown we take the
1114                                         simpler approach of not destroying
1115                                         them at all.
1116                                         Both QNX/RTP and LynxOS suffer from
1117                                         this problem.
1119 ACE_DONT_INIT_WINSOCK                   This definition defines whether or not
1120                                         to explicitly initialize Winsock during
1121                                         ACE::init() (i.e., whether WSAStartup()
1122                                         is called). Some Win32 platforms have
1123                                         dependent characteristics between
1124                                         ACE initialization and
1125                                         network initialization.
1127 ----------------------------------------
1129 The following macros determine the svc.conf file format ACE uses.
1131 Macro                                   Description
1132 -----                                   -----------
1133 ACE_HAS_CLASSIC_SVC_CONF                This macro forces ACE to use
1134                                         the classic svc.conf format.
1136 ACE_HAS_XML_SVC_CONF                    This macro forces ACE to use the XML
1137                                         svc.conf format.
1139 ACE_USES_CLASSIC_SVC_CONF               This macro should be defined
1140                                         as 0 or 1, depending on the
1141                                         preferred svc.conf file
1142                                         format.  Defining this macro
1143                                         to 0 means ACE will use XML
1144                                         svc.conf file format.
1145                                         Defining it to 1 will force
1146                                         ACE to use the classic
1147                                         svc.conf format.
1148                                         ** This macro takes precedence
1149                                         ** over previous two macros.
1151 ----------------------------------------
1152 The following is a partial list of where some of these macros are used
1153 in the code.  This list was originally compiled by Jam Hamidi
1154 (jh1@core01.osi.com).  It is now hopelessly out of date.  Hopefully,
1155 someone will come along and update it....
1157 ACE_HAS_ALLOCA:
1158 ---------------
1160   Used in:
1161      libsrc/IPC_SAP/SOCK_SAP/SOCK_Connect.C
1162         for allocation of iovp
1164      libsrc/IPC_SAP/SPIPE_SAP/SPIPE_Msg.C
1165         for alocation of iovp
1167   In solaris:
1168      alloca() allocates size bytes of space in the stack frame of
1169      the  caller,  and  returns a pointer to the allocated block.
1170      This temporary space is automatically freed when the  caller
1171      returns.  Note: if the allocated block is beyond the current
1172      stack limit, the resulting behavior is undefined.
1174   In HPUX:
1175      no equivalent.
1177   Notes:
1178      in HPUX it has to do new and delete. Affects performance.
1181 ACE_HAS_AUTOMATIC_INIT_FINI:
1182 ----------------------------
1184   Used in:
1185      libsrc/Service_Configurator/Service_Repository.i
1186      libsrc/Service_Configurator/Parse_Node.i
1187      include/Parse_Node.i
1188      include/Service_Repository.i
1190   In solaris:
1191      _init() initializes a loadable module. It is  called  before
1192      any other routine in a loadable module.
1193      _info()  returns  information  about  a   loadable   module.
1194      _fini() should return the return value from mod_remove(9F).
1195      This flag if set, doesn't do anything.  If not set, forces
1196      _init() and _fini() to be executed as is:
1197        dlsym ((char *) handle, "_fini").
1199   In HPUX:
1200      don't set.
1201      Maybe have to look into shl_load( ), shl_definesym( ),
1202      shl_findsym( ), shl_gethandle( ), shl_getsymbols( ),
1203      shl_unload( ), shl_get( )(3X) - explicit load of shared libraries
1204      Means Service Configurator won't be available.
1205      TBA.
1208 ACE_HAS_CPLUSPLUS_HEADERS:
1209 --------------------------
1211   Used In:
1212      ace/OS.h
1214   HPUX:
1215      set it.
1217   Notes:
1218      If this is not defined, libc.h and osfcn.h get included.
1219      Only needed for older compiler/OS platforms that don't
1220      provide standard C++ header files in /usr/include.
1222 ACE_HAS_HI_RES_TIMER:
1223 ---------------------
1225   Used In:
1226      libsrc/Misc/High_Res_Timer.h
1227      libsrc/Misc/High_Res_Timer.C
1228      include/High_Res_Timer.h
1230   In Solaris,
1231      C++ wrapper around gethrtime(), which returns a long long.
1232          gethrtime() returns the current high-resolution  real  time.
1233      Time  is  expressed as nanoseconds since some arbitrary time
1234      in the past; it is not correlated in any way to the time  of
1235      day,  and  thus  is not subject to resetting, drifting, etc.
1237   In HPUX
1238      look into: getclock(), reltimer(), getitimer()
1239      maybe even vtimes structure vm_utime, vm_stime ?
1241   Notes:
1242      TBA
1245 ACE_LACKS_T_ERRNO:
1246 -------------------
1248   Used In:
1249      ace/OS.h
1251   HPUX:
1252      set it.
1254   Notes:
1255      if set, adds:
1256      extern int t_errno;
1259 ACE_HAS_POSIX_NONBLOCK:
1260 -----------------------
1262   Used in:
1263      ace/OS.h
1265   HPUX:
1266      set it.
1268   Notes:
1269      if defined, sets ACE_NONBLOCK and O_NONBLOCK
1270      O_NONBLOCK is used in libsrc/Misc/misc.C to do a
1271        fcntl (fd, F_SETFL, opt)
1272      ACE_NONBLOCK is used in libsrc/IPC_SAP/FIFO_SAP/FIFO_Recv.C in the
1273        disable member function and options passed to the open function
1274        in libsrc/IPC_SAP/FIFO_SAP/FIFO.C
1277 ACE_HAS_PROC_FS:
1278 ----------------
1280   Used in:
1281      ace/OS.h
1282      libsrc/Misc/Profile_Timer.i
1284   Notes:
1285      if set, includes <sys/procfs.h>
1286      the PIOCUSAGE define is used in Profile_Timer.
1288   Solaris:
1289      procfs.h defines things for the prpsinfo structure (basically to
1290      do a "ps" from inside a program).
1292   HPUX:
1293      don't set: obviously a different mechanism.
1294      Look into /usr/include/sys/proc.h.  The structure is proc.  The
1295      pointer to the kernel's proc table may be obtained by
1296      extern  struct  proc *proc, *procNPROC;
1297      extern  int nproc;
1300 ACE_HAS_PRUSAGE_T:
1301 ------------------
1303   Used in:
1304      libsrc/Misc/Profile_Timer.h
1305      libsrc/Misc/Profile_Timer.C
1307   Notes:
1308      If defined, declares the Profile_Timer class that does start(),
1309      stop() and basically gets real_time, user_time, system_time for
1310      an interval.
1311      This stuff is highly non-portable.
1313   HPUX:
1314      don't set
1317 ACE_HAS_SEMUN:
1318 --------------
1320   Used in:
1321      libsrc/Semaphores/Semaphore_Simple.h
1323   Notes:
1324      if not defined, defines semun as:
1325      union semun {
1326            int          val;    /* value for SETVAL */
1327            struct semid_ds      *buf;   /* buffer for IPC_STAT & IPC_SET */
1328            ushort               *array; /* array for GETALL & SETALL */
1329      };
1331   HPUX:
1332      don't set.
1333      in /usr/include/sem.h:
1334      /* The fourth argument to semctl() varies depending on the value of
1335        its first argument.  If desired, "union semun" can be declared
1336        by the user, but this is not necessary since the individual
1337        member can just be passed as the argument. */
1340 ACE_HAS_SIG_ATOMIC_T:
1341 ---------------------
1343   Used in:
1344      ace/OS.h
1346   Notes:
1347      if not defined, does a:
1348      typedef int sig_atomic_t;
1349      This is used in the Reactor and service configurator.
1351   HPUX:
1352      set it.
1353      in /usr/include/sys/signal.h:
1354      typedef unsigned int sig_atomic_t;
1357 ACE_HAS_SSIZE_T:
1358 ----------------
1360   Used in:
1361      ace/OS.h
1363   Notes:
1364      if not defined, does a
1365      typedef int ssize_t;
1366      used mostly in IPC_SAP.  (don't confuse with size_t).
1368   HPUX:
1369      set it.
1370      in /usr/include/sys/types.h
1373 ACE_HAS_STRBUF_T:
1374 -----------------
1376   Used in:
1377      include/Str_Buf.h
1379   Notes:
1380      if not defined, declares the strbuf structure as:
1381      struct strbuf
1382      {
1383        int      maxlen;                 /* no. of bytes in buffer */
1384        int      len;                    /* no. of bytes returned */
1385        void     *buf;                   /* pointer to data */
1386      };
1388   Solaris:
1389      defined in /usr/include/sys/stropts.h
1390      Sys V.4 Streams.
1391      uses strbuf as parameter to putmsg, putpmsg:
1392      int putmsg(int fildes, const struct strbuf *ctlptr,
1393           const struct strbuf *dataptr, int flags);
1395   HPUX:
1396      don't set.
1397      no SYS V.4 streams.
1400 ACE_HAS_STREAMS:
1401 ----------------
1403   Used In:
1404      ace/OS.h
1405      libsrc/IPC_SAP/SOCK_SAP/LSOCK.C
1407   Notes:
1408      if defined, includes <stropts.h>
1410   HPUX:
1411      don't set.
1412      no SYS V.4 streams.
1415 ACE_HAS_STREAM_PIPES:
1416 ---------------------
1418   Used in:
1419      libsrc/IPC_SAP/SPIPE_SAP/SPIPE_Msg.h
1420      libsrc/IPC_SAP/SPIPE_SAP/SPIPE_Msg.C
1421      libsrc/IPC_SAP/SPIPE_SAP/SPIPE_Listener.h
1422      libsrc/IPC_SAP/SPIPE_SAP/SPIPE_Listener.C
1423      libsrc/IPC_SAP/SPIPE_SAP/SPIPE.h
1424      libsrc/IPC_SAP/SPIPE_SAP/SPIPE.C
1425      libsrc/IPC_SAP/FIFO_SAP/FIFO_Send_Msg.h
1426      libsrc/IPC_SAP/FIFO_SAP/FIFO_Send_Msg.C
1427      libsrc/IPC_SAP/FIFO_SAP/FIFO_Send_Msg.i
1428      libsrc/IPC_SAP/FIFO_SAP/FIFO_Recv_Msg.h
1429      libsrc/IPC_SAP/FIFO_SAP/FIFO_Recv_Msg.C
1430      libsrc/IPC_SAP/FIFO_SAP/FIFO_Recv_Msg.i
1432   Notes:
1433      if not set, won't be able to use the SPIPE class (IPC_SAP) with
1434      rendezvous handles.
1436   HPUX:
1437      don't set.
1438      No sysV.4 streams.
1441 ACE_HAS_SVR4_DYNAMIC_LINKING:
1442 -----------------------------
1444   Used in:
1445      ace/OS.h
1446      tests/Service_Configurator/CCM_App.C
1448   Notes:
1449      if defined, includes <dlfcn.h>
1450      with dlopen(), dlsym(), etc..
1452   HPUX:
1453      don't set.
1454      has its own:
1455      shl_findsym( ), shl_gethandle( ), shl_getsymbols( ),
1456      shl_unload( ), shl_get( )(3X) - explicit load of shared libraries
1459 ACE_HAS_SVR4_GETTIMEOFDAY:
1460 --------------------------
1462   Used in:
1463      ace/OS.h
1464      libsrc/Reactor/Timer_Queue.i
1466   Notes:
1467      has to do with gettimeofday ().
1469   Solaris:
1470      gettimeofday (struct timeval *tp)
1472   HPUX:
1473      don't set.
1474      it has gettimeofday (struct timeval *tp, struct timezone *tzp);
1475      most calls do a:
1476      #if defined (ACE_HAS_SVR4_GETTIMEOFDAY)
1477       ::gettimeofday (&cur_time);
1478      #else
1479       ::gettimeofday (&cur_time, 0);
1480      #endif /* ACE_HAS_SVR4_GETTIMEOFDAY */
1483 ACE_HAS_POLL:
1484 ------------
1485   Used in:
1486      ace/OS.h
1488   Notes:
1489      #if defined (ACE_HAS_POLL)
1490      #include /**/ <poll.h>
1491      #endif /* ACE_HAS_POLL */
1493 ACE_USE_POLL_IMPLEMENTATION:
1494 ------------------
1496   Used in:
1497      ace/OS.h
1499   Notes:
1500     Use the poll() event demultiplexor rather than select().
1502   HPUX:
1503      set it.
1506 ACE_HAS_SVR4_SIGNAL_T:
1507 ----------------------
1509   Used in:
1510      ace/OS.h
1512   Notes:
1513      #if defined (ACE_HAS_SVR4_SIGNAL_T)
1514      typedef void (*SignalHandler)(int);
1515      typedef void (*SignalHandlerV)(void);
1516      #elif defined (ACE_HAS_SIGNALHANDLERV_INT_ARG)
1517      typedef void (*SignalHandler)(int);
1518      typedef void (*SignalHandlerV)(int);
1519      #else
1520      #define SignalHandler SIG_PF
1521      typedef void (*SignalHandlerV)(...);
1522      #endif /* ACE_HAS_SVR4_SIGNAL_T */
1524   HPUX:
1525      set it.
1528 ACE_HAS_SVR4_TLI:
1529 -----------------
1531   Used in:
1532      libsrc/IPC_SAP/TLI_SAP/TLI.C
1533      libsrc/IPC_SAP/TLI_SAP/TLI.h
1534      libsrc/IPC_SAP/TLI_SAP/TLI_Stream.C
1536   Notes:
1537      TLI is the transport layer calls as in: t_bind(), t_open(), t_unbind(),
1538      t_optmgmt(), ... in SunOS and Solaris.
1540   HPUX:
1541      don't set.
1542      Not supported.
1545 ACE_HAS_SYS_FILIO_H:
1546 --------------------
1548   Used in:
1549      ace/OS.h
1551   Notes:
1552      if not defined, includes <sys/filio.h>.
1553      didn't find any reference to anything in this file in the ACE code.
1555   Solaris:
1556      filio.h defines FIOCLEX, FIOASYNC, ... as _IO('f', 1), ..
1557      for FIOLFS,.. solaris has this to say:
1558      /*
1559       * ioctl's for Online: DiskSuite.
1560       * WARNING - the support for these ioctls may be withdrawn
1561       * in the future OS releases.
1562       */
1564   HPUX:
1565      <sys/ioctl.h> defines FIOASYNC and some other ones,
1566      <sgtty.h> defines some like FIOCLEX.
1567      some are never defined.
1568      use #ifdef HP-UX to modify sysincludes.h
1571 ACE_HAS_TEMPLATE_TYPEDEFS:
1572 --------------------------
1574   Used in:
1575      libsrc/ASX/*.[Chi]
1577   Notes:
1578      cfront-based C++ compilers don't implement templates that support
1579      classes with typedefs of other types as formal arguments.  This
1580      typedef uses the C++ preprocessor to work around this problem.
1582 ACE_HAS_THREADS:
1583 ----------------
1585   Used in:
1586      libsrc/Service_Configurator/Svc_Conf.y.C
1587      libsrc/Service_Configurator/Thread_Spawn.i
1588      libsrc/Threads/Synch.C
1589      libsrc/Threads/Synch.i
1590      libsrc/Threads/Thr_Manager.i
1591      libsrc/ASX/STREAM.C
1592      libsrc/ASX/Queue.C
1593      libsrc/ASX/Module.C
1594      libsrc/ASX/Stream_Modules.C
1595      libsrc/ASX/Multiplexor.C
1596      libsrc/ASX/Message_List.C
1597      include/Message_List.h
1598      include/Module.h
1599      include/Multiplexor.h
1600      include/Queue.h
1601      include/STREAM.h
1602      include/Stream_Modules.h
1603      include/Service_Types.h
1604      include/Thread_Spawn.h
1605      include/Synch.h
1606      include/Thr_Manager.h
1608   Notes:
1609      We use Message_List.h even in a non-threaded environment.
1610      our XOMessageList.h does this by #ifdefs around Threaded things.
1612   HPUX:
1613      not until 10.0.
1616 ACE_HAS_TIMOD_H:
1617 ----------------
1619   Used in:
1620      ace/OS.h
1622   Notes:
1623      if defined, include <sys/timod.h>
1625   Solaris:
1626      timod is a STREAMS module for use with the Transport  Inter-
1627      face  (TI)  functions  of the Network Services library.  The
1628      timod module converts a set of ioctl(2) calls  into  STREAMS
1629      messages  that  may be consumed by a transport protocol pro-
1630      vider that supports the Transport Interface.  This allows  a
1631      user to initiate certain TI functions as atomic operations.
1633   HPUX:
1634      don't set.
1637 ACE_HAS_TIUSER_H:
1638 -----------------
1640   Used in:
1641      ace/OS.h
1643   Notes:
1644      if set, includes <tiuser.h>
1646   Solaris:
1647      in conjunction with t_bind, t_accept, etc.. transport layer.
1649   HPUX:
1650      don't set.
1653 ACE_USE_POLL_IMPLEMENTATION:
1654 ----------------------------
1656   Used in:
1657      libsrc/Reactor/Reactor.i
1658      include/Event_Handler.h
1659      ace/OS.h
1660      include/Reactor.h
1662   Notes:
1663      in the reactor, use poll instead of select.  In general,
1664      good thing to have set.
1666 ACE_USES_GPROF:
1667 ----------------------------
1668   Used in:
1669     ace/Base_Thread_Adapter.h
1670     ace/Base_Thread_Adapter.inl
1671     ace/Base_Thread_Adapter.cpp
1673   Notes:
1674     When using gprof mainly on Linux, #define ACE_USES_GPROF
1675     will add calls to getitimer/setitimer in order to initialize profile
1676     timer and overcome the problem of gprof with multithreaded applications.
1678 ACE_QTREACTOR_CLEAR_PENDING_EVENTS:
1679 ----------------------------
1680   Used in:
1681     ace/QtReactor.cpp:
1682     QtReactor by default does not clear qt events pending for
1683     activated socket. Clearing costs much, at least 2 hash accesses
1684     in ACE, and 2 another in Qt. It is also better to not clear
1685     pending events as some side effects are unknown. However,
1686     when events are not clear, then some user applications may be
1687     confused by handle_input/output/exception called without any
1688     data eg. in ACE_Acceptor::make_svc_handler. This swithc is
1689     intended to quickly fix user application which does not
1690     follow some reactor rules.
1691  Linux:
1692    It seems linux::qt does not queue pending events. Do not define
1693    this switch.
1694  Windows:
1695    Windows::qt queues pending events. If user application has handle_*
1696    methods which cannot be called without data, then turn on this switch
1697    to quickly fix the bug. However, one should seriously fix the
1698    application then.