summaryrefslogtreecommitdiff
path: root/ace
diff options
context:
space:
mode:
authorlevine <levine@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1997-12-13 21:09:18 +0000
committerlevine <levine@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1997-12-13 21:09:18 +0000
commit1730b6b4150d1125038afdf8ca5845ff1fd3d1e3 (patch)
treecc75d3444e89dd1dcadffcd6a11470cc072e5441 /ace
parent7f2d2315132fcfda189a0671a0b5845e6619e7e7 (diff)
downloadATCD-1730b6b4150d1125038afdf8ca5845ff1fd3d1e3.tar.gz
incorporated Torbjorn's unified configs
Diffstat (limited to 'ace')
-rw-r--r--ace/config-linux-common.h156
-rw-r--r--ace/config-linux-lxpthreads.h124
-rw-r--r--ace/config-linux-pthread.h117
-rw-r--r--ace/config-linux.h120
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 */