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