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