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