diff options
-rw-r--r-- | ace/README | 1 | ||||
-rw-r--r-- | ace/config-vxworks5.x-g++.h | 46 |
2 files changed, 28 insertions, 19 deletions
diff --git a/ace/README b/ace/README index fd8cb90eda4..e05d1e23edc 100644 --- a/ace/README +++ b/ace/README @@ -62,6 +62,7 @@ ACE_HAS_LIMITED_RUSAGE_T The rusage_t structure has only two fields. ACE_HAS_LONGLONG_T Compiler/platform supports the "long long" datatype. ACE_HAS_LONG_FDMASK Compiler/platform has typedef u_long fdmask (e.g., Linux). ACE_HAS_LONG_MAP_FAILED Platform defines MAP_FAILED as a long constant. +ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION Avoid #including iostream.h except where needed. Some platforms, such as g++/VxWorks, have trouble with it. See config-vxworks5.x-g++.h for gory details. 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?) diff --git a/ace/config-vxworks5.x-g++.h b/ace/config-vxworks5.x-g++.h index 63751710a96..dd54618a56e 100644 --- a/ace/config-vxworks5.x-g++.h +++ b/ace/config-vxworks5.x-g++.h @@ -2,7 +2,8 @@ // $Id$ // The following configuration file is designed to work for VxWorks -// 5.2/5.3 platforms using the GNU g++ 2.7.2 compiler, without repo patch +// 5.2/5.3 platforms using the GNU/Cygnus g++ 2.7.2 compiler, without +// repo patch. #if !defined (ACE_CONFIG_H) #define ACE_CONFIG_H @@ -11,54 +12,63 @@ #define __ACE_INLINE__ #endif /* ! __ACE_INLINE__ */ -#define ACE_LACKS_ACCESS -#define ACE_LACKS_GETSERVBYNAME -#define ACE_LACKS_COND_T -#define ACE_LACKS_EXEC -#define ACE_LACKS_KEY_T -#define ACE_LACKS_FILELOCKS -#define ACE_LACKS_IOSTREAM_FX -#define ACE_LACKS_LINEBUFFERED_STREAMBUF -#define ACE_LACKS_MEMORY_H -#define ACE_LACKS_PWD_FUNCTIONS -#define ACE_LACKS_RWLOCK_T -#define ACE_LACKS_SIGNED_CHAR -#define ACE_LACKS_STRCASECMP -#define ACE_LACKS_SYSV_MSG_H -#define ACE_LACKS_SYS_NERR #define ACE_HAS_BROKEN_SENDMSG #define ACE_HAS_BROKEN_WRITEV #define ACE_HAS_CHARPTR_SOCKOPT #define ACE_HAS_CLOCK_GETTIME #define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES #define ACE_HAS_CPLUSPLUS_HEADERS +// On g++/VxWorks, iostream.h defines a static instance (yes, instance) +// of the Iostream_init class. That causes all files that #include it +// to put in the global constructor/destructor hooks. For files that +// don't have any static instances of non-class (built-in) types, the +// hooks refer to the file name, e.g., "foo.cpp". That file name gets +// embedded in a variable name by munch. The output from munch won't +// compile, though, because of the period! So, let g++/VxWorks users +// include iostream.h only where they need it. +#define ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION #define ACE_HAS_MSG #define ACE_HAS_MT_SAFE_SOCKETS #define ACE_HAS_POSIX_NONBLOCK #define ACE_HAS_POSIX_SEM #define ACE_HAS_POSIX_TIME -#define ACE_HAS_SIG_ATOMIC_T #define ACE_HAS_SIGINFO_T #define ACE_HAS_SIGWAIT +#define ACE_HAS_SIG_ATOMIC_T #define ACE_HAS_STRERROR #define ACE_HAS_THREADS +#define ACE_LACKS_ACCESS +#define ACE_LACKS_COND_T +#define ACE_LACKS_EXEC +#define ACE_LACKS_FILELOCKS +#define ACE_LACKS_GETSERVBYNAME +#define ACE_LACKS_IOSTREAM_FX +#define ACE_LACKS_KEY_T +#define ACE_LACKS_LINEBUFFERED_STREAMBUF #define ACE_LACKS_MADVISE #define ACE_LACKS_MALLOC_H +#define ACE_LACKS_MEMORY_H #define ACE_LACKS_MKTEMP #define ACE_LACKS_MMAP #define ACE_LACKS_MPROTECT #define ACE_LACKS_MSYNC #define ACE_LACKS_PARAM_H +#define ACE_LACKS_PWD_FUNCTIONS #define ACE_LACKS_RLIMIT +#define ACE_LACKS_RWLOCK_T #define ACE_LACKS_SBRK #define ACE_LACKS_SEMBUF_T #define ACE_LACKS_SIGINFO_H +#define ACE_LACKS_SIGNED_CHAR #define ACE_LACKS_SI_ADDR #define ACE_LACKS_SOCKETPAIR #define ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES +#define ACE_LACKS_STRCASECMP #define ACE_LACKS_STRRECVFD #define ACE_LACKS_SYSCALL +#define ACE_LACKS_SYSV_MSG_H #define ACE_LACKS_SYSV_SHMEM +#define ACE_LACKS_SYS_NERR #define ACE_LACKS_UCONTEXT_H #define ACE_LACKS_UTSNAME_T #define ACE_MT_SAFE @@ -74,5 +84,3 @@ #endif /* ACE_NTRACE */ #endif /* ACE_CONFIG_H */ - - |