diff options
-rw-r--r-- | ace/config-linux-common.h | 156 | ||||
-rw-r--r-- | ace/config-linux-lxpthreads.h | 124 | ||||
-rw-r--r-- | ace/config-linux-pthread.h | 117 | ||||
-rw-r--r-- | ace/config-linux.h | 120 |
4 files changed, 168 insertions, 349 deletions
diff --git a/ace/config-linux-common.h b/ace/config-linux-common.h index 53a8f40225e..c0824ea5f6d 100644 --- a/ace/config-linux-common.h +++ b/ace/config-linux-common.h @@ -10,18 +10,168 @@ #define ACE_HAS_BYTESEX_H +#if ! defined (__ACE_INLINE__) +#define __ACE_INLINE__ +#endif /* ! __ACE_INLINE__ */ + +// Needed to differentiate between libc 5 and libc 6 (aka glibc) +// It's there on all libc 5 systems I checked +#include <features.h> + +// JAWS uses this, argh! +#define LINUX + +// First the machine specific part + +#if defined (i386) + // If running an Intel, assume that it's a Pentium so that + // ACE_OS::gethrtime () can use the RDTSC instruction. If + // running a 486 or lower, be sure to comment this out. + // (If not running an Intel CPU, this #define will not be seen + // because of the i386 protection, so it can be ignored.) +# define ACE_HAS_PENTIUM +#endif /* i386 */ + #if defined (__alpha__) # define ACE_HAS_64BIT_LONGS // The following might be necessary on Intel as well as Alpha. -#define ACE_DEFAULT_BASE_ADDR ((char *) 0x80000000) +# define ACE_DEFAULT_BASE_ADDR ((char *) 0x80000000) // The following might only be necessary on Alpha? # define ACE_HAS_DLFCN_H_BROKEN_EXTERN_C -# define ACE_HAS_SIGWAIT -# define ACE_HAS_SIZET_SOCKET_LEN # define ACE_LACKS_RPC_H # define ACE_NEEDS_SYSTIME_H #endif /* __alpha__ */ +// Then glibc/libc5 specific parts + +#if defined(__GLIBC__) +// OS/compiler uses size_t * rather than int * for socket lengths +#define ACE_HAS_SIZET_SOCKET_LEN +#else +// Platform lacks POSIX prototypes for certain System V functions +// like shared memory and message queues. +#define ACE_LACKS_SOME_POSIX_PROTOTYPES +#endif /* __GLIBC__ */ + + +// Then the compiler specific parts + +// egcs or really modern gcc +#if __GNUC__ > 2 || ( __GNUC__ == 2 && __GNUC_MINOR__ >= 90) + +// Compiler/platform has correctly prototyped header files. +# define ACE_HAS_CPLUSPLUS_HEADERS + +# define ACE_LACKS_ACE_IOSTREAM + +// Compiler supports to-be-ANSI casts +# define ACE_HAS_ANSI_CASTS + +#endif /* EGCS */ + + +// Completely common part :-) + +// Platform/compiler has the sigwait(2) prototype +// Was only for Alpha +#define ACE_HAS_SIGWAIT + +// Fixes a problem with new versions of Linux... +#ifndef msg_accrights +#undef msg_control +#define msg_accrights msg_control +#endif + +#ifndef msg_accrightslen +#undef msg_controllen +#define msg_accrightslen msg_controllen +#endif + +// Compiler/platform supports alloca(). +#define ACE_HAS_ALLOCA + +// Compiler/platform has <alloca.h> +#define ACE_HAS_ALLOCA_H + +// Compiler/platform has the getrusage() system call. +#define ACE_HAS_GETRUSAGE +#define ACE_HAS_GETRUSAGE_PROTO + +#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES + +// Optimize ACE_Handle_Set for select(). +#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT + +// ONLY define this if you have config'd multicast into a 2.x kernel. +// If you do anything else, we've never tested it! +#define ACE_HAS_IP_MULTICAST + +#define ACE_HAS_LONGLONG_T + +#define ACE_HAS_LONG_FDMASK + +#define ACE_HAS_STRING_CLASS + +// Linux defines struct msghdr in /usr/include/socket.h +#define ACE_HAS_MSG + +// Linux "improved" the interface to select() so that it modifies +// the struct timeval to reflect the amount of time not slept +// (see NOTES in Linux's select(2) man page). +#define ACE_HAS_NONCONST_SELECT_TIMEVAL + +// Defines the page size of the system. +#define ACE_PAGE_SIZE 4096 + +// Platform defines struct timespec but not timespec_t +#define ACE_LACKS_TIMESPEC_T + +#define ACE_LACKS_STRRECVFD + +#define ACE_LACKS_MSYNC +#define ACE_LACKS_MADVISE + +// Platform supports System V IPC (most versions of UNIX, but not Win32) +#define ACE_HAS_SYSV_IPC + +// Compiler/platform contains the <sys/syscall.h> file. +#define ACE_HAS_SYSCALL_H + +#define ACE_HAS_SUNOS4_GETTIMEOFDAY + +// Compiler/platform supports strerror (). +#define ACE_HAS_STRERROR + +// Compiler supports the ssize_t typedef. +#define ACE_HAS_SSIZE_T + +// Compiler/platform defines the sig_atomic_t typedef. +#define ACE_HAS_SIG_ATOMIC_T + +// Compiler/platform defines a union semun for SysV shared memory. +#define ACE_HAS_SEMUN + +#define ACE_HAS_POSIX_TIME + +// TDN - adapted from file for SunOS4 platforms using the GNU g++ compiler +// Compiler's template mechanism must see source code (i.e., .C files). +#define ACE_TEMPLATES_REQUIRE_SOURCE + +#define ACE_HAS_TEMPLATE_SPECIALIZATION +#define ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION + +// Compiler doesn't support static data member templates. +#define ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES + +// Turns off the tracing feature. +#if !defined (ACE_NTRACE) +#define ACE_NTRACE 1 +#endif /* ACE_NTRACE */ + +#if defined(__EXCEPTIONS) +#define ACE_HAS_EXCEPTIONS +#endif + #endif /* ACE_LINUX_COMMON_H */ diff --git a/ace/config-linux-lxpthreads.h b/ace/config-linux-lxpthreads.h index 3267707f566..f8dba7f9654 100644 --- a/ace/config-linux-lxpthreads.h +++ b/ace/config-linux-lxpthreads.h @@ -28,121 +28,11 @@ #if !defined (ACE_CONFIG_H) #define ACE_CONFIG_H -#if ! defined (__ACE_INLINE__) -#define __ACE_INLINE__ -#endif /* ! __ACE_INLINE__ */ - -#if defined (i386) - // If running an Intel, assume that it's a Pentium so that - // ACE_OS::gethrtime () can use the RDTSC instruction. If - // running a 486 or lower, be sure to comment this out. - // (If not running an Intel CPU, this #define will not be seen - // because of the i386 protection, so it can be ignored.) -# define ACE_HAS_PENTIUM -#endif /* i386 */ - -#define ACE_HAS_LONG_FDMASK -#define ACE_HAS_LONGLONG_T -#define ACE_HAS_STRING_CLASS - -// Fixes a problem with new versions of Linux... -#ifndef msg_accrights -#undef msg_control -#define msg_accrights msg_control -#endif - -#ifndef msg_accrightslen -#undef msg_controllen -#define msg_accrightslen msg_controllen -#endif - -// Optimize ACE_Handle_Set for select(). -#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT - -#define ACE_HAS_POSIX_TIME - -// Platform defines struct timespec but not timespec_t -#define ACE_LACKS_TIMESPEC_T - -#define ACE_LACKS_STRRECVFD - -// Platform supports System V IPC (most versions of UNIX, but not Win32) -#define ACE_HAS_SYSV_IPC +#include "ace/config-linux-common.h" -// Compiler/platform contains the <sys/syscall.h> file. -#define ACE_HAS_SYSCALL_H - -#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES #define ACE_HAS_SVR4_DYNAMIC_LINKING #define ACE_HAS_AUTOMATIC_INIT_FINI -// Platforms lacks UNIX domain sockets. -//#define ACE_LACKS_UNIX_DOMAIN_SOCKETS - -// Compiler/platform supports alloca(). -#define ACE_HAS_ALLOCA - -//#define ACE_LACKS_SENDMSG -//#define ACE_LACKS_RECVMSG -#define ACE_LACKS_MSYNC -#define ACE_LACKS_MADVISE -#define ACE_LACKS_SOME_POSIX_PROTOTYPES - -// Compiler/platform has <alloca.h> -#define ACE_HAS_ALLOCA_H - -// Compiler/platform has the getrusage() system call. -#define ACE_HAS_GETRUSAGE -#define ACE_HAS_GETRUSAGE_PROTO - -// Compiler/platform defines the sig_atomic_t typedef. -#define ACE_HAS_SIG_ATOMIC_T - -// Compiler/platform supports sys_siglist array. -// #define ACE_HAS_SYS_SIGLIST - -// Compiler/platform defines a union semun for SysV shared memory. -#define ACE_HAS_SEMUN - -// Compiler supports the ssize_t typedef. -#define ACE_HAS_SSIZE_T - -// Compiler/platform supports strerror (). -#define ACE_HAS_STRERROR - -// Defines the page size of the system. -#define ACE_PAGE_SIZE 4096 - -#define ACE_HAS_SUNOS4_GETTIMEOFDAY -#define LINUX 2.0.27 - -// ONLY define this if you have config'd multicast into a 2.x kernel. -// If you do anything else, we've never tested it! -#define ACE_HAS_IP_MULTICAST - -// Turns off the tracing feature. -#if !defined (ACE_NTRACE) -#define ACE_NTRACE 1 -#endif /* ACE_NTRACE */ - -// Linux "improved" the interface to select() so that it modifies -// the struct timeval to reflect the amount of time not slept -// (see NOTES in Linux's select(2) man page). -#define ACE_HAS_NONCONST_SELECT_TIMEVAL - -// Linux defines struct msghdr in /usr/include/socket.h -#define ACE_HAS_MSG - -// TDN - adapted from file for SunOS4 platforms using the GNU g++ compiler -// Compiler's template mechanism must see source code (i.e., .C files). -#define ACE_TEMPLATES_REQUIRE_SOURCE - -#define ACE_HAS_TEMPLATE_SPECIALIZATION -#define ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION - -// Compiler doesn't support static data member templates. -#define ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES - // Yes, we do have threads. #define ACE_HAS_THREADS // And they're even POSIX pthreads (MIT implementation) @@ -171,6 +61,18 @@ #define ACE_HAS_SIGWAIT #define ACE_LACKS_CONDATTR_PSHARED +#if defined(__GLIBC__) +// Platform supports reentrant functions (i.e., all the POSIX *_r +// functions). +#define ACE_HAS_REENTRANT_FUNCTIONS +// getprotobyname_r have a different signature! +#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS +//Sockets may be called in multi-threaded programs +#define ACE_HAS_MT_SAFE_SOCKETS +// uses ctime_r & asctime_r with only two parameters vs. three +#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R +#endif + #include /**/ <pthread.h> #endif /* ACE_CONFIG_H */ diff --git a/ace/config-linux-pthread.h b/ace/config-linux-pthread.h index 5f2e5332ca0..e3ae0bd34a5 100644 --- a/ace/config-linux-pthread.h +++ b/ace/config-linux-pthread.h @@ -7,124 +7,11 @@ #if !defined (ACE_CONFIG_H) #define ACE_CONFIG_H -#if ! defined (__ACE_INLINE__) -#define __ACE_INLINE__ -#endif /* ! __ACE_INLINE__ */ - -#if defined (i386) - // If running an Intel, assume that it's a Pentium so that - // ACE_OS::gethrtime () can use the RDTSC instruction. If - // running a 486 or lower, be sure to comment this out. - // (If not running an Intel CPU, this #define will not be seen - // because of the i386 protection, so it can be ignored.) -# define ACE_HAS_PENTIUM -#endif /* i386 */ - -#define ACE_HAS_LONG_FDMASK -#define ACE_HAS_LONGLONG_T -#define ACE_HAS_STRING_CLASS -// Optimize ACE_Handle_Set for select(). -#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT - -// Fixes a problem with new versions of Linux... -#ifndef msg_accrights -#undef msg_control -#define msg_accrights msg_control -#endif - -#ifndef msg_accrightslen -#undef msg_controllen -#define msg_accrightslen msg_controllen -#endif - -#define ACE_HAS_POSIX_TIME - -// Platform defines struct timespec but not timespec_t -#define ACE_LACKS_TIMESPEC_T - -#define ACE_LACKS_STRRECVFD - -// ONLY define this if you have config'd multicast into a 2.x kernel. -// If you do anything else, we've never tested it! -#define ACE_HAS_IP_MULTICAST - -// Platform supports System V IPC (most versions of UNIX, but not Win32) -#define ACE_HAS_SYSV_IPC - -// Compiler/platform contains the <sys/syscall.h> file. -#define ACE_HAS_SYSCALL_H - -#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES - -// Platforms lacks UNIX domain sockets. -//#define ACE_LACKS_UNIX_DOMAIN_SOCKETS - -// Compiler/platform supports alloca(). -#define ACE_HAS_ALLOCA - -//#define ACE_LACKS_SENDMSG -//#define ACE_LACKS_RECVMSG -#define ACE_LACKS_MSYNC -#define ACE_LACKS_MADVISE - -// Compiler/platform has <alloca.h> -#define ACE_HAS_ALLOCA_H - -// Compiler/platform has the getrusage() system call. -#define ACE_HAS_GETRUSAGE - -#define ACE_HAS_GETRUSAGE_PROTO - -// Compiler/platform defines the sig_atomic_t typedef. -#define ACE_HAS_SIG_ATOMIC_T - -// Compiler/platform supports sys_siglist array. -#define ACE_HAS_SYS_SIGLIST - -// Compiler/platform defines a union semun for SysV shared memory. -#define ACE_HAS_SEMUN - -// Compiler supports the ssize_t typedef. -#define ACE_HAS_SSIZE_T - -// Compiler/platform supports strerror (). -#define ACE_HAS_STRERROR - -// Defines the page size of the system. -#define ACE_PAGE_SIZE 4096 - -#define ACE_HAS_SUNOS4_GETTIMEOFDAY -#define LINUX 2.0.29 - -// Turns off the tracing feature. -#if !defined (ACE_NTRACE) -#define ACE_NTRACE 1 -#endif /* ACE_NTRACE */ - -// Linux "improved" the interface to select() so that it modifies -// the struct timeval to reflect the amount of time not slept -// (see NOTES in Linux's select(2) man page). -#define ACE_HAS_NONCONST_SELECT_TIMEVAL - -// Linux defines struct msghdr in /usr/include/socket.h -#define ACE_HAS_MSG - -// TDN - adapted from file for SunOS4 platforms using the GNU g++ compiler -// Compiler's template mechanism must see source code (i.e., .C files). -#define ACE_TEMPLATES_REQUIRE_SOURCE - -#define ACE_HAS_TEMPLATE_SPECIALIZATION -#define ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION - -// Compiler doesn't support static data member templates. -#define ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES - -// Yes, we do have threads. -#define ACE_HAS_THREADS +#include "ace/config-linux-common.h" #define ACE_HAS_THREAD_SPECIFIC_STORAGE #if !defined (ACE_MT_SAFE) - #define ACE_MT_SAFE 1 +# define ACE_MT_SAFE 1 #endif // And they're even POSIX pthreads (MIT implementation) #define ACE_HAS_PTHREADS diff --git a/ace/config-linux.h b/ace/config-linux.h index a288d209cc5..2ff1d7a8906 100644 --- a/ace/config-linux.h +++ b/ace/config-linux.h @@ -9,127 +9,7 @@ #include "ace/config-linux-common.h" -#if ! defined (__ACE_INLINE__) -#define __ACE_INLINE__ -#endif /* ! __ACE_INLINE__ */ - -// Do we really need this #define here? -#define LINUX - -#if defined (i386) - // If running an Intel, assume that it's a Pentium so that - // ACE_OS::gethrtime () can use the RDTSC instruction. If - // running a 486 or lower, be sure to comment this out. - // (If not running an Intel CPU, this #define will not be seen - // because of the i386 protection, so it can be ignored.) -# define ACE_HAS_PENTIUM -#endif /* i386 */ - -#if defined (__alpha__) -# define ACE_HAS_64BIT_LONGS -#endif /* __alpha__ */ - -// ONLY define this if you have config'd multicast into a 2.x kernel. -// If you do anything else, we've never tested it! -#define ACE_HAS_IP_MULTICAST -#define ACE_HAS_LONG_FDMASK - -// Optimize ACE_Handle_Set for select(). -#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT - -#define ACE_HAS_LONGLONG_T -#define ACE_HAS_STRING_CLASS - -// Fixes a problem with new versions of Linux... -#ifndef msg_accrights -#undef msg_control -#define msg_accrights msg_control -#endif /* msg_accrights */ - -#ifndef msg_accrightslen -#undef msg_controllen -#define msg_accrightslen msg_controllen -#endif /* msg_accrightslen */ - -// You may need to undefine these for older versions of Linux. -//#define ACE_LACKS_SENDMSG -//#define ACE_LACKS_RECVMSG - -#define ACE_HAS_POSIX_TIME - -// Platform defines struct timespec but not timespec_t -#define ACE_LACKS_TIMESPEC_T - -#define ACE_LACKS_STRRECVFD - -// Platform supports System V IPC (most versions of UNIX, but not Win32) -#define ACE_HAS_SYSV_IPC - -// Compiler/platform contains the <sys/syscall.h> file. -#define ACE_HAS_SYSCALL_H - -#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES #define ACE_HAS_SVR4_DYNAMIC_LINKING #define ACE_HAS_AUTOMATIC_INIT_FINI -// Platforms lacks UNIX domain sockets. -//#define ACE_LACKS_UNIX_DOMAIN_SOCKETS - -// Compiler/platform supports alloca(). -#define ACE_HAS_ALLOCA - -#define ACE_LACKS_MSYNC -#define ACE_LACKS_MADVISE -#define ACE_LACKS_SOME_POSIX_PROTOTYPES - -// Compiler/platform has <alloca.h> -#define ACE_HAS_ALLOCA_H - -// Compiler/platform has the getrusage() system call. -#define ACE_HAS_GETRUSAGE -#define ACE_HAS_GETRUSAGE_PROTO - -// Compiler/platform defines the sig_atomic_t typedef. -#define ACE_HAS_SIG_ATOMIC_T - -// Compiler/platform supports sys_siglist array. -// #define ACE_HAS_SYS_SIGLIST - -// Compiler/platform defines a union semun for SysV shared memory. -#define ACE_HAS_SEMUN - -// Compiler supports the ssize_t typedef. -#define ACE_HAS_SSIZE_T - -// Compiler/platform supports strerror (). -#define ACE_HAS_STRERROR - -// Defines the page size of the system. -#define ACE_PAGE_SIZE 4096 - -#define ACE_HAS_SUNOS4_GETTIMEOFDAY - -// Turns off the tracing feature. -#if !defined (ACE_NTRACE) -#define ACE_NTRACE 1 -#endif /* ACE_NTRACE */ - -// Linux "improved" the interface to select() so that it modifies -// the struct timeval to reflect the amount of time not slept -// (see NOTES in Linux's select(2) man page). -#define ACE_HAS_NONCONST_SELECT_TIMEVAL - -// Linux defines struct msghdr in /usr/include/socket.h -#define ACE_HAS_MSG - -// TDN - adapted from file for SunOS4 platforms using the GNU g++ compiler -// Compiler's template mechanism must see source code (i.e., .C files). -#define ACE_TEMPLATES_REQUIRE_SOURCE - -#define ACE_HAS_TEMPLATE_SPECIALIZATION -#define ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION - -// Compiler doesn't support static data member templates. -#define ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES - #endif /* ACE_CONFIG_H */ |