diff options
-rw-r--r-- | ChangeLog-97a | 31 | ||||
-rw-r--r-- | ace/Handle_Set.cpp | 24 | ||||
-rw-r--r-- | ace/OS.h | 220 | ||||
-rw-r--r-- | ace/OS.i | 11 | ||||
-rw-r--r-- | ace/README | 2 | ||||
-rw-r--r-- | ace/Signal.cpp | 8 | ||||
-rw-r--r-- | ace/Signal.i | 6 | ||||
-rw-r--r-- | ace/TLI.cpp | 8 | ||||
-rw-r--r-- | ace/TLI_Stream.i | 2 | ||||
-rw-r--r-- | ace/config-tandem.h | 484 | ||||
-rw-r--r-- | ace/config-unixware-2.1.2-g++.h | 80 | ||||
-rw-r--r-- | include/makeinclude/platform_tandem.GNU | 89 | ||||
-rw-r--r-- | include/makeinclude/platform_unixware_g++.GNU | 42 |
13 files changed, 973 insertions, 34 deletions
diff --git a/ChangeLog-97a b/ChangeLog-97a index c22bc6b3a54..b97db7bc7e4 100644 --- a/ChangeLog-97a +++ b/ChangeLog-97a @@ -1,3 +1,34 @@ +Sat Jun 21 10:48:34 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> + + * ace: Added a number of minor changes to signal assignment + code so that ACE will compile with Tandem NonStop. Thanks + to Jan Perman <uabjjpp@osd.ericsson.se> for these fixes. + + * ace/config-tandem.h: Added a new config file for the + Tandem NonStop-UX 4.2MP platform. Thanks to Jan Perman + <uabjjpp@osd.ericsson.se> for contributing this. + + * include/makeinclude/platform_tandem.GNU: Added a new platform + file for the Tandem NonStop-UX 4.2MP platform. Thanks to + Jan Perman <uabjjpp@osd.ericsson.se> for contributing this. + + * ace/config-unixware-2.1.2-g++.h: Added a new config file for + UNIXWARE 2.1.2. Thanks to Ganesh Pai (gpai@voicetek.com) for + contributing this. + + * include/makeinclude/platform_unixware_g++.GNU: Updated the + UNIXWARE platform config file to work for version 2.1.2. Thanks + to Ganesh Pai (gpai@voicetek.com) for contributing this. + + * ace/Handle_Set.cpp (count_bits): Added another 0xff mask to + prevent problems with sign extension on machines with 32 bit + ints and 64 bit longs. Thanks to James Johnson for reporting + this. + + * ace/OS.h: Updated all of the ACE_DEFAULT* macros in OS.h so that + they can be overridden by #defines in the config.h file. Thanks + to Chuck Gehr for suggesting this. + Thu Jun 19 22:20:20 1997 David L. Levine <levine@cs.wustl.edu> * ace/OS.h (VxWorks/g++ only): added horrible hack to work around diff --git a/ace/Handle_Set.cpp b/ace/Handle_Set.cpp index b09333d144e..e146368ca07 100644 --- a/ace/Handle_Set.cpp +++ b/ace/Handle_Set.cpp @@ -78,6 +78,28 @@ ACE_Handle_Set::ACE_Handle_Set (const ACE_FD_SET_TYPE &fd_mask) // Counts the number of bits enabled in N. Uses a table lookup to // speed up the count. +#if 0 +// If there are platforms where fd_mask isn't typedef'd to "int" we'll +// have to use the following code. OS_FDMASK_TYPE is set in the +// config*.h file to match whatever the OS has decided it should be. +// For the Alpha, that is "int", for Linux it is "u_long." + +int +ACE_Handle_Set::count_bits (OS_FDMASK_TYPE n) const +{ + ACE_TRACE ("ACE_Handle_Set::count_bits"); + int rval = 0; + + for (int i = 0; i < sizeof (u_long); ++i) + { + rval += ACE_Handle_Set::nbits_[n & 0xff]; + n >>= 8; + } + + return rval; +} +#endif /* 0 */ + int ACE_Handle_Set::count_bits (u_long n) const { @@ -85,7 +107,7 @@ ACE_Handle_Set::count_bits (u_long n) const return (ACE_Handle_Set::nbits_[n & 0xff] + ACE_Handle_Set::nbits_[(n >> 8) & 0xff] + ACE_Handle_Set::nbits_[(n >> 16) & 0xff] - + ACE_Handle_Set::nbits_[n >> 24]); + + ACE_Handle_Set::nbits_[(n >> 24) & 0xff]); } // Synchronize the underlying FD_SET with the MAX_FD and the SIZE. @@ -27,109 +27,212 @@ #endif /* ACE_HAS_4_4BSD_SENDMSG_RECVMSG */ // Define the default constants for ACE. Many of these are used for -// the ACE tests and applications. You may want to change some of -// these to correspond to your environment. +// the ACE tests and applications. You can change these values by +// defining the macros in your config.h file. +#if !defined (ACE_DEFAULT_TIMEOUT) #define ACE_DEFAULT_TIMEOUT 5 +#endif /* ACE_DEFAULT_TIMEOUT */ + +#if !defined (ACE_DEFAULT_THREADS) #define ACE_DEFAULT_THREADS 1 +#endif /* ACE_DEFAULT_THREADS */ // The following 3 defines are used in the IP multicast and broadcast tests. +#if !defined (ACE_DEFAULT_BROADCAST_PORT) #define ACE_DEFAULT_BROADCAST_PORT 10000 +#endif /* ACE_DEFAULT_BROADCAST_PORT */ + +#if !defined (ACE_DEFAULT_MULTICAST_PORT) #define ACE_DEFAULT_MULTICAST_PORT 10001 +#endif /* ACE_DEFAULT_MULTICAST_PORT */ + +#if !defined (ACE_DEFAULT_MULTICAST_ADDR) #define ACE_DEFAULT_MULTICAST_ADDR "224.9.9.2" +#endif /* ACE_DEFAULT_MULTICAST_ADDR */ // Default port number for HTTP. +#if !defined (ACE_DEFAULT_HTTP_SERVER_PORT) #define ACE_DEFAULT_HTTP_SERVER_PORT 80 +#endif /* ACE_DEFAULT_HTTP_SERVER_PORT */ // Used in many IPC_SAP tests +#if !defined (ACE_DEFAULT_SERVER_PORT) #define ACE_DEFAULT_SERVER_PORT 10002 +#endif /* ACE_DEFAULT_SERVER_PORT */ // Used in Acceptor tests +#if !defined (ACE_DEFAULT_SERVER_PORT_STR) #define ACE_DEFAULT_SERVER_PORT_STR "10002" +#endif /* ACE_DEFAULT_SERVER_PORT_STR */ // Used for the Service_Directory test +#if !defined (ACE_DEFAULT_SERVICE_PORT) #define ACE_DEFAULT_SERVICE_PORT 10003 +#endif /* ACE_DEFAULT_SERVICE_PORT */ // Used for the ACE_Thread_Spawn test -#define ACE_DEFAULT_THR_PORT 10004 +#if !defined (ACE_DEFAULT_THR_PORT ) +#define ACE_DEFAULT_THR_PORT 10004 +#endif /* ACE_DEFAULT_THR_PORT */ // Used for SOCK_Connect::connect() tests +#if !defined (ACE_DEFAULT_LOCAL_PORT) #define ACE_DEFAULT_LOCAL_PORT 10005 +#endif /* ACE_DEFAULT_LOCAL_PORT */ // Used for Connector tests +#if !defined (ACE_DEFAULT_LOCAL_PORT_STR) #define ACE_DEFAULT_LOCAL_PORT_STR "10005" +#endif /* ACE_DEFAULT_LOCAL_PORT_STR */ // Used for the name server. +#if !defined (ACE_DEFAULT_NAME_SERVER_PORT) #define ACE_DEFAULT_NAME_SERVER_PORT 10006 +#endif /* ACE_DEFAULT_NAME_SERVER_PORT */ + +#if !defined (ACE_DEFAULT_NAME_SERVER_PORT_STR) #define ACE_DEFAULT_NAME_SERVER_PORT_STR "10006" +#endif /* ACE_DEFAULT_NAME_SERVER_PORT_STR */ // Used for the token server. +#if !defined (ACE_DEFAULT_TOKEN_SERVER_PORT) #define ACE_DEFAULT_TOKEN_SERVER_PORT 10007 +#endif /* ACE_DEFAULT_TOKEN_SERVER_PORT */ + +#if !defined (ACE_DEFAULT_TOKEN_SERVER_PORT_STR) #define ACE_DEFAULT_TOKEN_SERVER_PORT_STR "10007" +#endif /* ACE_DEFAULT_TOKEN_SERVER_PORT_STR */ // Used for the logging server. +#if !defined (ACE_DEFAULT_LOGGING_SERVER_PORT) #define ACE_DEFAULT_LOGGING_SERVER_PORT 10008 +#endif /* ACE_DEFAULT_LOGGING_SERVER_PORT */ + +#if !defined (ACE_DEFAULT_LOGGING_SERVER_PORT_STR) #define ACE_DEFAULT_LOGGING_SERVER_PORT_STR "10008" +#endif /* ACE_DEFAULT_LOGGING_SERVER_PORT_STR */ // Used for the logging server. +#if !defined (ACE_DEFAULT_THR_LOGGING_SERVER_PORT) #define ACE_DEFAULT_THR_LOGGING_SERVER_PORT 10008 +#endif /* ACE_DEFAULT_THR_LOGGING_SERVER_PORT */ + +#if !defined (ACE_DEFAULT_THR_LOGGING_SERVER_PORT_STR) #define ACE_DEFAULT_THR_LOGGING_SERVER_PORT_STR "10008" +#endif /* ACE_DEFAULT_THR_LOGGING_SERVER_PORT_STR */ // Used for the gateway server. +#if !defined (ACE_DEFAULT_GATEWAY_SERVER_PORT) #define ACE_DEFAULT_GATEWAY_SERVER_PORT 10009 +#endif /* ACE_DEFAULT_GATEWAY_SERVER_PORT */ + +#if !defined (ACE_DEFAULT_GATEWAY_SERVER_PORT_STR) #define ACE_DEFAULT_GATEWAY_SERVER_PORT_STR "10009" +#endif /* ACE_DEFAULT_GATEWAY_SERVER_PORT_STR */ // Used for the peer server. +#if !defined (ACE_DEFAULT_PEER_SERVER_PORT) #define ACE_DEFAULT_PEER_SERVER_PORT 10010 +#endif /* ACE_DEFAULT_PEER_SERVER_PORT */ + +#if !defined (ACE_DEFAULT_PEER_SERVER_PORT_STR) #define ACE_DEFAULT_PEER_SERVER_PORT_STR "10010" +#endif /* ACE_DEFAULT_PEER_SERVER_PORT_STR */ // Used for the time server. +#if !defined (ACE_DEFAULT_TIME_SERVER_PORT) #define ACE_DEFAULT_TIME_SERVER_PORT 10011 +#endif /* ACE_DEFAULT_TIME_SERVER_PORT */ + +#if !defined (ACE_DEFAULT_TIME_SERVER_PORT_STR) #define ACE_DEFAULT_TIME_SERVER_PORT_STR "10011" +#endif /* ACE_DEFAULT_TIME_SERVER_PORT_STR */ + +#if !defined (ACE_DEFAULT_TIME_SERVER_STR) #define ACE_DEFAULT_TIME_SERVER_STR "ACE_TS_TIME" +#endif /* ACE_DEFAULT_TIME_SERVER_STR */ +#if !defined (ACE_DEFAULT_SERVER_HOST) #define ACE_DEFAULT_SERVER_HOST "localhost" +#endif /* ACE_DEFAULT_SERVER_HOST */ // Default shared memory key +#if !defined (ACE_DEFAULT_SHM_KEY) #define ACE_DEFAULT_SHM_KEY 1234 +#endif /* ACE_DEFAULT_SHM_KEY */ // Default segment size used by SYSV shared memory (128 K) +#if !defined (ACE_DEFAULT_SEGMENT_SIZE) #define ACE_DEFAULT_SEGMENT_SIZE 1024 * 128 +#endif /* ACE_DEFAULT_SEGMENT_SIZE */ // Maximum number of SYSV shared memory segments // (does anyone know how to figure out the right values?!) +#if !defined (ACE_DEFAULT_MAX_SEGMENTS) #define ACE_DEFAULT_MAX_SEGMENTS 6 +#endif /* ACE_DEFAULT_MAX_SEGMENTS */ // Used by the FIFO tests. +#if !defined (ACE_DEFAULT_RENDEZVOUS) #define ACE_DEFAULT_RENDEZVOUS "/tmp/fifo.ace" +#endif /* ACE_DEFAULT_RENDEZVOUS */ // Name of the map that's stored in shared memory. +#if !defined (ACE_NAME_SERVER_MAP) #define ACE_NAME_SERVER_MAP "Name Server Map" +#endif /* ACE_NAME_SERVER_MAP */ // Default file permissions. +#if !defined (ACE_DEFAULT_FILE_PERMS) #define ACE_DEFAULT_FILE_PERMS 0666 +#endif /* ACE_DEFAULT_FILE_PERMS */ // Default directory permissions. +#if !defined (ACE_DEFAULT_DIR_PERMS) #define ACE_DEFAULT_DIR_PERMS 0777 +#endif /* ACE_DEFAULT_DIR_PERMS */ // Default size of the ACE Reactor. +#if !defined (ACE_DEFAULT_REACTOR_SIZE) #define ACE_DEFAULT_REACTOR_SIZE FD_SETSIZE +#endif /* ACE_DEFAULT_REACTOR_SIZE */ // Default size of the ACE Map_Manager. +#if !defined (ACE_DEFAULT_MAP_SIZE) #define ACE_DEFAULT_MAP_SIZE 1024 +#endif /* ACE_DEFAULT_MAP_SIZE */ // Defaults for ACE Timer Wheel +#if !defined (ACE_DEFAULT_TIMER_WHEEL_SIZE) #define ACE_DEFAULT_TIMER_WHEEL_SIZE 1024 +#endif /* ACE_DEFAULT_TIMER_WHEEL_SIZE */ + +#if !defined (ACE_DEFAULT_TIMER_WHEEL_RESOLUTION) #define ACE_DEFAULT_TIMER_WHEEL_RESOLUTION 100 +#endif /* ACE_DEFAULT_TIMER_WHEEL_RESOLUTION */ // Default size for ACE Timer Hash table +#if !defined (ACE_DEFAULT_TIMER_HASH_TABLE_SIZE) #define ACE_DEFAULT_TIMER_HASH_TABLE_SIZE 1024 +#endif /* ACE_DEFAULT_TIMER_HASH_TABLE_SIZE */ // Defaults for the ACE Free List +#if !defined (ACE_DEFAULT_FREE_LIST_PREALLOC) #define ACE_DEFAULT_FREE_LIST_PREALLOC 0 +#endif /* ACE_DEFAULT_FREE_LIST_PREALLOC */ + +#if !defined (ACE_DEFAULT_FREE_LIST_LWM) #define ACE_DEFAULT_FREE_LIST_LWM 0 +#endif /* ACE_DEFAULT_FREE_LIST_LWM */ + +#if !defined (ACE_DEFAULT_FREE_LIST_HWM) #define ACE_DEFAULT_FREE_LIST_HWM 25000 +#endif /* ACE_DEFAULT_FREE_LIST_HWM */ + +#if !defined (ACE_DEFAULT_FREE_LIST_INC) #define ACE_DEFAULT_FREE_LIST_INC 100 +#endif /* ACE_DEFAULT_FREE_LIST_INC */ // Here are all ACE-specific global declarations needed throughout // ACE. @@ -876,7 +979,9 @@ enum ACE_Thread_State // been reclaimed yet. }; -#define ACE_DEFAULT_THREAD_PRIORITY (-0x7fffffffL-1L) +#if !defined (ACE_DEFAULT_THREAD_PRIORITY) +#define ACE_DEFAULT_THREAD_PRIORITY (-0x7fffffffL - 1L) +#endif /* ACE_DEFAULT_THREAD_PRIORITY */ // Convenient macro for testing for deadlock, as well as for detecting // when mutexes fail. @@ -1454,6 +1559,9 @@ typedef void (*ACE_SignalHandlerV)(int); #if defined (ACE_HAS_SIG_C_FUNC) } #endif /* ACE_HAS_SIG_C_FUNC */ +#elif defined (ACE_HAS_TANDEM_SIGNALS) +typedef void (*ACE_SignalHandler)(...); +typedef void (*ACE_SignalHandlerV)(...); #elif defined (ACE_HAS_IRIX_53_SIGNALS) typedef void (*ACE_SignalHandler)(...); typedef void (*ACE_SignalHandlerV)(...); @@ -1542,16 +1650,35 @@ struct utsname #include /**/ <sys/timeb.h> -// The following 3 defines are used by the ACE Name Server... +// The following defines are used by the ACE Name Server... +#if !defined (ACE_DEFAULT_NAMESPACE_DIR_W) #define ACE_DEFAULT_NAMESPACE_DIR_W L"C:\\temp" +#endif /* ACE_DEFAULT_NAMESPACE_DIR_W */ + +#if !defined (ACE_DEFAULT_NAMESPACE_DIR_A) #define ACE_DEFAULT_NAMESPACE_DIR_A "C:\\temp" +#endif /* ACE_DEFAULT_NAMESPACE_DIR_A */ + +#if !defined (ACE_DEFAULT_LOCALNAME_A) #define ACE_DEFAULT_LOCALNAME_A "\\localnames" +#endif /* ACE_DEFAULT_LOCALNAME_A */ + +#if !defined (ACE_DEFAULT_LOCALNAME_W) #define ACE_DEFAULT_LOCALNAME_W L"\\localnames" +#endif /* ACE_DEFAULT_LOCALNAME_W */ + +#if !defined (ACE_DEFAULT_GLOBALNAME_A) #define ACE_DEFAULT_GLOBALNAME_A "\\globalnames" +#endif /* ACE_DEFAULT_GLOBALNAME_A */ + +#if !defined (ACE_DEFAULT_GLOBALNAME_W) #define ACE_DEFAULT_GLOBALNAME_W L"\\globalnames" +#endif /* ACE_DEFAULT_GLOBALNAME_W */ // Need to work around odd glitches with NT. +#if !defined (ACE_MAX_DEFAULT_PORT) #define ACE_MAX_DEFAULT_PORT 0 +#endif /* ACE_MAX_DEFAULT_PORT */ // We're on WinNT or Win95 #define ACE_PLATFORM_A "Win32" @@ -1560,23 +1687,31 @@ struct utsname #define ACE_PLATFORM_EXE_SUFFIX_W L".exe" // Used for ACE_MMAP_Memory_Pool +#if !defined (ACE_DEFAULT_BACKING_STORE) #define ACE_DEFAULT_BACKING_STORE __TEXT ("C:\\temp\\ace-malloc-XXXXXX") +#endif /* ACE_DEFAULT_BACKING_STORE */ // Used for logging +#if !defined (ACE_DEFAULT_LOGFILE) #define ACE_DEFAULT_LOGFILE "C:\\temp\\logfile" +#endif /* ACE_DEFAULT_LOGFILE */ // Used for dynamic linking +#if !defined (ACE_DEFAULT_SVC_CONF) #define ACE_DEFAULT_SVC_CONF ".\\svc.conf" +#endif /* ACE_DEFAULT_SVC_CONF */ // The following are #defines and #includes that are specific to // WIN32. - #define ACE_STDIN GetStdHandle (STD_INPUT_HANDLE) #define ACE_STDOUT GetStdHandle (STD_OUTPUT_HANDLE) #define ACE_STDERR GetStdHandle (STD_ERROR_HANDLE) // Default semaphore key and mutex name +#if !defined (ACE_DEFAULT_SEM_KEY) #define ACE_DEFAULT_SEM_KEY "ACE_SEM_KEY" +#endif /* ACE_DEFAULT_SEM_KEY */ + #define ACE_INVALID_SEM_KEY 0 #define ACE_SEH_TRY __try @@ -1777,7 +1912,10 @@ typedef char TCHAR; #define ACE_MAX_DEFAULT_PORT 65535 // Default semaphore key +#if !defined (ACE_DEFAULT_SEM_KEY) #define ACE_DEFAULT_SEM_KEY 1234 +#endif /* ACE_DEFAULT_SEM_KEY */ + #define ACE_INVALID_SEM_KEY -1 // Define the pathname separator characters for UNIX. @@ -1807,27 +1945,54 @@ typedef char TCHAR; #define ACE_DLL_PREFIX "lib" // The following 3 defines are used by the ACE Name Server... +#if !defined (ACE_DEFAULT_NAMESPACE_DIR_A) #define ACE_DEFAULT_NAMESPACE_DIR_A "/tmp" +#endif /* ACE_DEFAULT_NAMESPACE_DIR_A */ + +#if !defined (ACE_DEFAULT_LOCALNAME_A) #define ACE_DEFAULT_LOCALNAME_A "/localnames" +#endif /* ACE_DEFAULT_LOCALNAME_A */ + +#if !defined (ACE_DEFAULT_GLOBALNAME_A) #define ACE_DEFAULT_GLOBALNAME_A "/globalnames" +#endif /* ACE_DEFAULT_GLOBALNAME_A */ + #if defined (ACE_HAS_UNICODE) +#if !defined (ACE_DEFAULT_NAMESPACE_DIR_W) #define ACE_DEFAULT_NAMESPACE_DIR_W L"/tmp" +#endif /* ACE_DEFAULT_NAMESPACE_DIR_W */ +#if !defined (ACE_DEFAULT_LOCALNAME_W) #define ACE_DEFAULT_LOCALNAME_W L"/localnames" +#endif /* ACE_DEFAULT_LOCALNAME_W */ +#if !defined (ACE_DEFAULT_GLOBALNAME_W) #define ACE_DEFAULT_GLOBALNAME_W L"/globalnames" +#endif /* ACE_DEFAULT_GLOBALNAME_W */ #else +#if !defined (ACE_DEFAULT_NAMESPACE_DIR_W) #define ACE_DEFAULT_NAMESPACE_DIR_W "/tmp" +#endif /* ACE_DEFAULT_NAMESPACE_DIR_W */ +#if !defined (ACE_DEFAULT_LOCALNAME_W) #define ACE_DEFAULT_LOCALNAME_W "/localnames" +#endif /* ACE_DEFAULT_LOCALNAME_W */ +#if !defined (ACE_DEFAULT_GLOBALNAME_W) #define ACE_DEFAULT_GLOBALNAME_W "/globalnames" +#endif /* ACE_DEFAULT_GLOBALNAME_W */ #endif /* ACE_HAS_UNICODE */ // Used for ACE_MMAP_Memory_Pool +#if !defined (ACE_DEFAULT_BACKING_STORE) #define ACE_DEFAULT_BACKING_STORE "/tmp/ace-malloc-XXXXXX" +#endif /* ACE_DEFAULT_BACKING_STORE */ // Used for logging +#if !defined (ACE_DEFAULT_LOGFILE) #define ACE_DEFAULT_LOGFILE "/tmp/logfile" +#endif /* ACE_DEFAULT_LOGFILE */ // Used for dynamic linking. +#if !defined (ACE_DEFAULT_SVC_CONF) #define ACE_DEFAULT_SVC_CONF "./svc.conf" +#endif /* ACE_DEFAULT_SVC_CONF */ // The following are #defines and #includes that are specific to UNIX. @@ -2396,7 +2561,9 @@ typedef long ACE_INT32; // Default number of <ACE_Event_Handler>s supported by // <ACE_Timer_Heap>. +#if !defined (ACE_DEFAULT_TIMERS) #define ACE_DEFAULT_TIMERS _SC_TIMER_MAX +#endif /* ACE_DEFAULT_TIMERS */ // Note that this assumes shorts are 16 bits. typedef u_short ACE_USHORT16; @@ -3267,34 +3434,69 @@ private: if (POINTER == 0) { errno = ENOMEM; return; } \ } while (0) +#if !defined (ACE_DEFAULT_MUTEX_A) #define ACE_DEFAULT_MUTEX_A "ACE_MUTEX" +#endif /* ACE_DEFAULT_MUTEX_A */ #if defined (UNICODE) +#if !defined (ACE_DEFAULT_NAMESPACE_DIR) #define ACE_DEFAULT_NAMESPACE_DIR ACE_DEFAULT_NAMESPACE_DIR_W +#endif /* ACE_DEFAULT_NAMESPACE_DIR */ +#if !defined (ACE_DEFAULT_LOCALNAME) #define ACE_DEFAULT_LOCALNAME ACE_DEFAULT_LOCALNAME_W +#endif /* ACE_DEFAULT_LOCALNAME */ +#if !defined (ACE_DEFAULT_GLOBALNAME) #define ACE_DEFAULT_GLOBALNAME ACE_DEFAULT_GLOBALNAME_W +#endif /* ACE_DEFAULT_GLOBALNAME */ +#if !defined (ACE_DIRECTORY_SEPARATOR_STR) #define ACE_DIRECTORY_SEPARATOR_STR ACE_DIRECTORY_SEPARATOR_STR_W +#endif /* ACE_DIRECTORY_SEPARATOR_STR */ +#if !defined (ACE_DIRECTORY_SEPARATOR_CHAR) #define ACE_DIRECTORY_SEPARATOR_CHAR ACE_DIRECTORY_SEPARATOR_CHAR_W +#endif /* ACE_DIRECTORY_SEPARATOR_CHAR */ +#if !defined (ACE_PLATFORM) #define ACE_PLATFORM ACE_PLATFORM_W +#endif /* ACE_PLATFORM */ +#if !defined (ACE_PLATFORM_EXE_SUFFIX) #define ACE_PLATFORM_EXE_SUFFIX ACE_PLATFORM_EXE_SUFFIX_W - +#endif /* ACE_PLATFORM_EXE_SUFFIX */ +#if !defined (ACE_DEFAULT_MUTEX_W) #define ACE_DEFAULT_MUTEX_W L"ACE_MUTEX" +#endif /* ACE_DEFAULT_MUTEX_W */ +#if !defined (ACE_DEFAULT_MUTEX) #define ACE_DEFAULT_MUTEX ACE_DEFAULT_MUTEX_W +#endif /* ACE_DEFAULT_MUTEX */ #else +#if !defined (ACE_DEFAULT_NAMESPACE_DIR) #define ACE_DEFAULT_NAMESPACE_DIR ACE_DEFAULT_NAMESPACE_DIR_A +#endif /* ACE_DEFAULT_NAMESPACE_DIR */ +#if !defined (ACE_DEFAULT_LOCALNAME) #define ACE_DEFAULT_LOCALNAME ACE_DEFAULT_LOCALNAME_A +#endif /* ACE_DEFAULT_LOCALNAME */ +#if !defined (ACE_DEFAULT_GLOBALNAME) #define ACE_DEFAULT_GLOBALNAME ACE_DEFAULT_GLOBALNAME_A +#endif /* ACE_DEFAULT_GLOBALNAME */ +#if !defined (ACE_DIRECTORY_SEPARATOR_STR) #define ACE_DIRECTORY_SEPARATOR_STR ACE_DIRECTORY_SEPARATOR_STR_A +#endif /* ACE_DIRECTORY_SEPARATOR_STR */ +#if !defined (ACE_DIRECTORY_SEPARATOR_CHAR) #define ACE_DIRECTORY_SEPARATOR_CHAR ACE_DIRECTORY_SEPARATOR_CHAR_A +#endif /* ACE_DIRECTORY_SEPARATOR_CHAR */ +#if !defined (ACE_PLATFORM) #define ACE_PLATFORM ACE_PLATFORM_A +#endif /* ACE_PLATFORM */ +#if !defined (ACE_PLATFORM_EXE_SUFFIX) #define ACE_PLATFORM_EXE_SUFFIX ACE_PLATFORM_EXE_SUFFIX_A - +#endif /* ACE_PLATFORM_EXE_SUFFIX */ +#if !defined (ACE_DEFAULT_MUTEX_W) #define ACE_DEFAULT_MUTEX_W "ACE_MUTEX" +#endif /* ACE_DEFAULT_MUTEX_W */ +#if !defined (ACE_DEFAULT_MUTEX) #define ACE_DEFAULT_MUTEX ACE_DEFAULT_MUTEX_A - +#endif /* ACE_DEFAULT_MUTEX */ #endif /* UNICODE */ #if defined (ACE_HAS_INLINED_OSCALLS) @@ -6,6 +6,11 @@ #define ACE_INLINE #endif /* ACE_HAS_INLINED_OSCALLS */ +#if defined (ACE_LACKS_RLIMIT_PROTO) +int getrlimit (int resource, struct rlimit *rlp); +int setrlimit (int resource, const struct rlimit *rlp); +#endif /* ACE_LACKS_RLIMIT_PROTO */ + #if !defined (ACE_HAS_STRERROR) #if defined (ACE_HAS_SYS_ERRLIST) extern char *sys_errlist[]; @@ -3709,7 +3714,11 @@ ACE_OS::puts (const char *s) ACE_INLINE ACE_SignalHandler ACE_OS::signal (int signum, ACE_SignalHandler func) { - return ::signal (signum, func); +#if !defined(ACE_HAS_TANDEM_SIGNALS) + return ::signal (signum, func); +#else + return (ACE_SignalHandler) ::signal (signum, (void (*)(int)) func); +#endif /* !ACE_HAS_TANDEM_SIGNALS */ } ACE_INLINE int diff --git a/ace/README b/ace/README index 18e453add2f..b95ddf753f7 100644 --- a/ace/README +++ b/ace/README @@ -96,6 +96,7 @@ ACE_HAS_REENTRANT_FUNCTIONS Platform supports reentrant functions (i.e., all t ACE_HAS_REGEX Platform supports the POSIX regular expression library ACE_HAS_SELECT_H Platform has special header for select(). 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_SIGINFO_T Platform supports SVR4 extended signals ACE_HAS_SIG_MACROS Platform/compiler has macros for sig{empty,fill,add,del}set (e.g., SCO and FreeBSD) ACE_HAS_SIGNAL_OBJECT_AND_WAIT Platform supports the Win32 SignalObjectAndWait() function (WinNT 4.0 and beyond). @@ -188,6 +189,7 @@ ACE_LACKS_NETDB_REENTRANT_FUNCTIONS Platform does not support reentrant netdb fu gethostbyname_r, getservbyname_r). ACE_LACKS_RPC_H Platform lacks the ONC RPC header files. ACE_LACKS_PARAM_H Platform lacks <sys/param.h> (e.g., MVS) +ACE_LACKS_RLIMIT_PROTO Platform/compiler lacks {get,set}rlimit() prototypes (e.g., Tandem) ACE_LACKS_POSIX_PROTO Platform lacks POSIX prototypes for certain System V functions like shared memory and message queues. ACE_LACKS_PRI_T Platform lacks pri_t (e.g., Tandem NonStop UNIX). ACE_LACKS_PTHREAD_CANCEL Platform lacks pthread_cancel(). diff --git a/ace/Signal.cpp b/ace/Signal.cpp index c512b55a952..efd82ce11bd 100644 --- a/ace/Signal.cpp +++ b/ace/Signal.cpp @@ -99,7 +99,11 @@ ACE_Sig_Action::ACE_Sig_Action (ACE_SignalHandler sig_handler, else this->sa_.sa_mask = *sig_mask; // Structure assignment... +#if !defined(ACE_HAS_TANDEM_SIGNALS) this->sa_.sa_handler = ACE_SignalHandlerV (sig_handler); +#else + this->sa_.sa_handler = (void (*)()) ACE_SignalHandlerV (sig_handler); +#endif /* !ACE_HAS_TANDEM_SIGNALS */ } ACE_Sig_Action::ACE_Sig_Action (ACE_SignalHandler sig_handler, @@ -115,7 +119,11 @@ ACE_Sig_Action::ACE_Sig_Action (ACE_SignalHandler sig_handler, else this->sa_.sa_mask = *sig_mask; // Structure assignment... +#if !defined(ACE_HAS_TANDEM_SIGNALS) this->sa_.sa_handler = ACE_SignalHandlerV (sig_handler); +#else + this->sa_.sa_handler = (void (*)()) ACE_SignalHandlerV (sig_handler); +#endif /* !ACE_HAS_TANDEM_SIGNALS */ ACE_OS::sigaction (signum, &this->sa_, 0); } diff --git a/ace/Signal.i b/ace/Signal.i index ad074dedca2..cc73b80f8aa 100644 --- a/ace/Signal.i +++ b/ace/Signal.i @@ -108,7 +108,11 @@ ACE_INLINE void ACE_Sig_Action::handler (ACE_SignalHandler handler) { ACE_TRACE ("ACE_Sig_Action::handler"); - this->sa_.sa_handler = ACE_SignalHandlerV (handler); +#if !defined(ACE_HAS_TANDEM_SIGNALS) + this->sa_.sa_handler = ACE_SignalHandlerV (sig_handler); +#else + this->sa_.sa_handler = (void (*)()) ACE_SignalHandlerV (sig_handler); +#endif /* !ACE_HAS_TANDEM_SIGNALS */ } ACE_INLINE void diff --git a/ace/TLI.cpp b/ace/TLI.cpp index 5c584cbf1ee..5b93aaf47fb 100644 --- a/ace/TLI.cpp +++ b/ace/TLI.cpp @@ -130,7 +130,11 @@ ACE_TLI::set_option (int level, int option, void *optval, int optlen) if (this->so_opt_req.opt.len > this->so_opt_req.opt.maxlen) { +#if !defined (ACE_HAS_SET_T_ERRNO) t_errno = TBUFOVFLW; +#else + set_t_errno (TBUFOVFLW); +#endif /* ACE_HAS_SET_T_ERRNO */ return -1; } @@ -158,7 +162,11 @@ ACE_TLI::get_option (int level, int option, void *optval, int &optlen) if (this->so_opt_ret.opt.len > this->so_opt_ret.opt.maxlen) { +#if !defined (ACE_HAS_SET_T_ERRNO) t_errno = TBUFOVFLW; +#else + set_t_errno (TBUFOVFLW); +#endif /* ACE_HAS_SET_T_ERRNO */ return -1; } diff --git a/ace/TLI_Stream.i b/ace/TLI_Stream.i index bc27e6d72c5..5139e8fb819 100644 --- a/ace/TLI_Stream.i +++ b/ace/TLI_Stream.i @@ -49,7 +49,7 @@ ACE_TLI_Stream::send_n (const void *buf, size_t n, int flags) const { ACE_TRACE ("ACE_TLI_Stream::send_n"); size_t b_sent; - ssize_t b_written; + ssize_t b_written = 0; for (b_sent = 0; b_sent < n; b_sent += b_written) if ((b_written = ACE_OS::t_snd (this->get_handle (), diff --git a/ace/config-tandem.h b/ace/config-tandem.h new file mode 100644 index 00000000000..df135d282fe --- /dev/null +++ b/ace/config-tandem.h @@ -0,0 +1,484 @@ +/* -*- C++ -*- */ +// Testing TANDEM +// $Id: + +// The following configuration file is designed to work for Tandems NonStop-UX +// 4.2MP platforms using the NCC 3.20 compiler. + +// Note this is a test version it might include several errors I +// have done a test and set/unset until I errors disappered. +// Some of the options that should be set aren't because of the simple fact +// that i haven't the time to check what is wrong. +// e.g. widecharacter are supported but a wcstok which only take 2 parameters +// are included by the compiler, to get the correct wcstok that takes 3 params +// we must set _XOPEN_SOURCE and we get ALOT of errors and warnings. +// So this config is done to get things to start to work it isn't finished. +// Janne (Jan.Perman@osd.Ericsson.se) + +#if !defined (ACE_CONFIG_H) +#define ACE_CONFIG_H + +#if ! defined (__ACE_INLINE__) +#define __ACE_INLINE__ +#endif /* ! __ACE_INLINE__ */ + +// Tandem doesn't include this although they are defined +// in sys/time.h and sys/resource.h +#define ACE_LACKS_RLIMIT_PROTO // jjpp +// Tandem has a function to set t_errno (set_t_errno) +#define ACE_HAS_SET_T_ERRNO // jjpp + +// Compiler/platform supports the "long long" datatype. +#define ACE_HAS_LONGLONG_T + +// It does but problems with wcstok +// ACE_HAS_UNICODE Platform/compiler supports UNICODE + +//Platform supports System V IPC (most versions of UNIX, but not Win32) +#define ACE_HAS_SYSV_IPC + +// OS/compiler omits the const from the sendmsg() prototype. +#define ACE_HAS_BROKEN_SENDMSG + +//OS/compiler's header files are inconsistent with libC definition of rand_r(). +//#define ACE_HAS_BROKEN_RANDR // Defines it the same way as sunos5.4 + +//Platform supports system configuration information +#define ACE_HAS_SYSINFO + +//Platform supports the POSIX regular expression library +#define ACE_HAS_REGEX + +// Platform supports recvmsg and sendmsg +#define ACE_HAS_MSG + +//Compiler/platform contains the <sys/syscall.h> file. +#define ACE_HAS_SYSCALL_H + +//Platform provides <sysent.h> header +#define ACE_HAS_SYSENT_H + +// Platform has terminal ioctl flags like TCGETS and TCSETS. +#define ACE_HAS_TERM_IOCTLS + +// ? ACE_HAS_AUTOMATIC_INIT_FINI Compiler/platform correctly calls +// init()/fini() for shared libraries + +//Platform supports POSIX O_NONBLOCK semantics +#define ACE_HAS_POSIX_NONBLOCK + +// Compiler/platform has correctly prototyped header files +#define ACE_HAS_CPLUSPLUS_HEADERS + +// Platform supports IP multicast +//#define ACE_HAS_IP_MULTICAST + +//Compiler/platform supports alloca() +#define ACE_HAS_ALLOCA +//Compiler/platform has <alloca.h> +#define ACE_HAS_ALLOCA_H + +//Platform contains <poll.h> +#define ACE_HAS_POLL + +// Platform supports the POSIX struct timespec type +#define ACE_HAS_POSIX_TIME // As i understand it, but i'm in deep water +//Platform supports the SVR4 timestruc_t type +#define ACE_HAS_SVR4_TIME + +//ACE_HAS_PROC_FS Platform supports the /proc file +// system and defines tid_t in <sys/procfs.h> +// Has /proc but no tid_t + +//ACE_HAS_PRUSAGE_T Platform supports the prusage_t struct + + +// To get this to work a patch in sys/signal must be made +// typedef void SIG_FUNC_TYPE(int); +//#if defined (__cplusplus) +// void (*sa_handler)(int); +//#else +// ... +//#endif +//#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES +#define ACE_HAS_TANDEM_SIGNALS +//Compiler/platform defines the sig_atomic_t typedef +#define ACE_HAS_SIG_ATOMIC_T +//Platform supports SVR4 extended signals +#define ACE_HAS_SIGINFO_T +//Platform supports ucontext_t (which is used in the extended signal API). +#define ACE_HAS_UCONTEXT_T +//Compiler/platform supports SVR4 signal typedef +//#define ACE_HAS_SVR4_SIGNAL_T +//ACE_HAS_SVR4_SIGNAL_T + + +// Platform/compiler has the sigwait(2) prototype +#define ACE_HAS_SIGWAIT +//sigwait() takes only one argument. +#define ACE_HAS_ONEARG_SIGWAIT + + +//Compiler/platform provides the sockio.h file +#define ACE_HAS_SOCKIO_H + +// Compiler supports the ssize_t typedef +#define ACE_HAS_SSIZE_T // Limits.h must be included + +//Platform supports STREAMS +#define ACE_HAS_STREAMS + +#define ACE_HAS_STREAM_PIPES +//Platform supports STREAM pipes + +//Compiler/platform supports strerror () +#define ACE_HAS_STRERROR + +//Compiler/platform supports struct strbuf +#define ACE_HAS_STRBUF_T + +//Compiler/platform supports SVR4 dynamic linking semantics +#define ACE_HAS_SVR4_DYNAMIC_LINKING +//Compiler/platform supports SVR4 gettimeofday() prototype +//#define ACE_HAS_SVR4_GETTIMEOFDAY // Defines it the same way as sunos5.4 + +//Compiler/platform supports SVR4 TLI (in particular, T_GETNAME stuff)... +#define ACE_HAS_SVR4_TLI + +//Platform provides <sys/filio.h> header +#define ACE_HAS_SYS_FILIO_H + +//Platform supports TLI timod STREAMS module +#define ACE_HAS_TIMOD_H +//Platform supports TLI tiuser header +#define ACE_HAS_TIUSER_H + +//Platform supports TLI +#define ACE_HAS_TLI +//Platform provides TLI function prototypes +#define ACE_HAS_TLI_PROTOTYPES + +//Platform lacks streambuf "linebuffered ()". +#define ACE_LACKS_LINEBUFFERED_STREAMBUF + +// Platform lacks "signed char" type (broken!) +#define ACE_LACKS_SIGNED_CHAR + + +//? ACE_NEEDS_DEV_IO_CONVERSION Necessary with some compilers +//to pass ACE_TTY_IO as parameter to DEV_Connector. + +#define ACE_PAGE_SIZE 4096 +// Defines the page size of the system (not used on Win32 or +// with ACE_HAS_GETPAGESIZE). + + +/****** THREAD SPECIFIC **********/ +#define ACE_HAS_THREADS //Platform supports threads +#define ACE_HAS_STHREADS //Platform supports Solaris threads +#define ACE_HAS_THR_MINSTACK // Tandem uses thr_minstack instead of thr_min_stack +#define ACE_LACKS_PRI_T // Tandem lacks pri_t +#define ACE_MT_SAFE //Compile using multi-thread libraries +//ACE_HAS_MT_SAFE_SOCKETS Sockets may be called in multi- +// threaded programs + +// Compiler/platform has threadspecific storage +#define ACE_HAS_THREAD_SPECIFIC_STORAGE +//Platform supports thr_keydelete (e.g,. UNIXWARE) +#define ACE_HAS_THR_KEYDELETE + + + + +//ACE_HAS_REENTRANT_FUNCTIONS Platform supports reentrant +// functions (i.e., all the POSIX *_r functions). +//ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS Platform will recurse infinitely on +// thread exits from TSS cleanup routines (e.g., AIX). +//ACE_NEEDS_HUGE_THREAD_STACKSIZE Required by platforms with small +// default stacks. +//ACE_HAS_ONLY_SCHED_OTHER Platform, e.g., Solaris 2.5, only +// supports SCHED_OTHER POSIX scheduling policy. + + +//************************************* +//ACE_HAS_PTHREADS Platform supports POSIX Pthreads +//ACE_HAS_PTHREAD_CONDATTR_SETKIND_NP Platform has pthread_condattr_ +// setkind_np(). +//ACE_HAS_PTHREAD_DSTATE_PTR pthread_attr_setdetachstate() takes +// pointer to 2nd arg. +//ACE_HAS_PTHREAD_EQUAL Platform has pthread_equal(). +//ACE_HAS_PTHREAD_GETSPECIFIC_DATAPTR pthread_getspecific() takes a data +// pointer for 2nd arg. +//ACE_HAS_PTHREAD_MUTEXATTR_SETKIND_NP Platform has +// pthread_mutexattr_setkind_np(). +//ACE_HAS_PTHREAD_T Platform has pthread_t defined. +//ACE_HAS_PTHREAD_YIELD_VOIDPTR pthread_yield() takes a void pointer +// arg. +//ACE_HAS_THREAD_SELF Platform has thread_self() rather +// than pthread_self() (e.g., DCETHREADS and AIX) +//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_YIELD_VOID_PTR Platform requires pthread_yield() to +// take a NULL. +//ACE_LACKS_CONDATTR_PSHARED Platform has no implementation of +// pthread_condattr_setpshared(), even though it supports pthreads! +//ACE_LACKS_PTHREAD_THR_SIGSETMASK Platform lacks pthread_thr_ +// sigsetmask (e.g., MVS, HP/UX, and OSF/1 3.2) +//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_THREAD_STACK_SIZE Platform lacks pthread_attr_ +// setstacksize() (e.g., Linux pthreads) + +//ACE_HAS_IRIX62_THREADS Platform supports the very odd IRIX +// 6.2 threads... + +/*********************************/ + +/******* SIGNAL STUFF *******/ +//ACE_HAS_SIGNAL_OBJECT_AND_WAIT Platform supports the Win32 +// SignalObjectAndWait() function (WinNT 4.0 and beyond). +//#define ACE_HAS_SIGNAL_SAFE_OS_CALLS +//Automatically restart OS system +// calls when EINTR occurs + +// 10 millisecond fudge factor to account for Solaris timers... +//#if !defined (ACE_TIMER_SKEW) +//#define ACE_TIMER_SKEW 1000 * 10 +//#endif /* ACE_TIMER_SKEW */ + + +// Platform supports the getrusage() system call. +//#define ACE_HAS_GETRUSAGE +//Platform uses non-const char * in calls to gethostbyaddr, gethostbyname, +// getservbyname +#define ACE_HAS_NONCONST_GETBY +// Platform's select() uses non-const timeval* (only found on Linux right now) +#define ACE_HAS_NONCONST_SELECT_TIMEVAL +// And on Tandem :-) +//Uses ctime_r & asctime_r with only two parameters vs. three. +#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R +//Platform has special header for select(). +#define ACE_HAS_SELECT_H +// Platform/compiler supports Standard C++ Library +#define ACE_HAS_STANDARD_CPP_LIBRARY +//Platform/compiler support the System V sprintf(). +//?#define ACE_HAS_SYSV_SPRINTF +//Platform/compiler supports _sys_errlist symbol +//#define ACE_HAS_SYS_ERRLIST +//Platform lacks madvise() (e.g., Linux) +#define ACE_LACKS_MADVISE +//Platform lacks the si_addr field of siginfo_t (e.g.,VxWorks and HP/UX 10.x) +//?#define ACE_LACKS_SI_ADDR +//Compiler/platform lacks strcasecmp() (e.g., DG/UX, UNIXWARE, VXWORKS) +#define ACE_LACKS_STRCASECMP +//<time.h> doesn't automatically #include /**/ <sys/time.h> +#define ACE_NEEDS_SYSTIME_H + +//ACE_HAS_64BIT_LONGS Platform has 64bit longs and 32bit ints... +//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_BROKEN_BITSHIFT Compiler has integer overflow +// problem with bit-shift operations. +// ? ACE_HAS_BROKEN_CONVERSIONS Compiler can't handle calls like +// foo->operator T *() +//ACE_HAS_BROKEN_CTIME Compiler/platform uses macro for ctime +// (e.g., MVS) +//ACE_HAS_BROKEN_HPUX_TEMPLATES Earlier versions of HP/UX C++ are +// damned... +//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_POSIX_TIME Platform defines struct timespec in +// <sys/timers.h> +//ACE_HAS_BROKEN_SETRLIMIT OS/compiler omits the const from the +// rlimit parameter in the setrlimit() prototype. +//ACE_HAS_BROKEN_WRITEV OS/compiler omits the const from the +// iovec parameter in the writev() prototype. +// There is a bstring in the Tandem but where man bstring OK, find bstring NOK +// ? ACE_HAS_BSTRING Platform has <bstring.h> (which contains bzero() prototype) +//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 *. +// Yes in man, no in header file +//ACE_HAS_CHARPTR_SOCKOPT OS/platform uses char * for sockopt, +// rather than const char * +// sprintf() returns char * rather than int (e.g., SunOS 4.x) +//#define ACE_HAS_CHARPTR_SPRINTF +//ACE_HAS_CLOCK_GETTIME Platform supports POSIX 1.b +// clock_gettime () +//ACE_HAS_COMPLEX_LOCK Platform supports non-standard +// readers/writer locks... +//? ACE_HAS_EXCEPTIONS Compiler supports C++ exception +// handling +// Platform supports getpagesize() call (otherwise, ACE_PAGE_SIZE must be +// defined, except on Win32) +//#define ACE_HAS_GETPAGESIZE // Man getpagesize ok grep /usr/.. not +// found +//ACE_HAS_GNU_CSTRING_H Denotes that GNU has cstring.h as +// standard which redefines memchr() +//ACE_HAS_HI_RES_TIMER Compiler/platform supports SunOS +// high resolution timers +//ACE_HAS_INLINED_OSCALLS Inline all the static class OS +// methods to remove call overhead +//ACE_HAS_IRIX_GETTIMEOFDAY Denotes that IRIX 5.3 has second +// argument to gettimeofday() which is variable ... +//ACE_HAS_LIMITED_RUSAGE_T The rusage_t structure has only two +// fields. +//ACE_HAS_LONG_MAP_FAILED Platform defines MAP_FAILED as a +// long constant. +//? ACE_HAS_NONCONST_MSGSND Platform has a non-const parameter to +// msgsend() (e.g., SCO). +// Has it msgsend at all + +//ACE_HAS_OLD_MALLOC Compiler/platform uses old malloc()/ +// free() prototypes (ugh) +// ACE_HAS_ORBIX Platform has Orbix CORBA implementation +//? ACE_HAS_POSIX_SEM Platform supports POSIX real-time +//semaphores (e.g., VxWorks and Solaris) +//Compiler/platform defines a union semun for SysV shared memory +//#define ACE_HAS_SEMUN +//ACE_HAS_SIN_LEN Platform supports new BSD inet_addr +// len field. +//? ACE_HAS_SIZET_SOCKET_LEN OS/compiler uses size_t * rather +//than int * for socket lengths +//ACE_HAS_SOCKADDR_MSG_NAME Platform requires (struct sockaddr *) +//for msg_name field of struct msghdr. +//ACE_HAS_STRICT Use the STRICT compilation mode on Win32. +//? ACE_HAS_STRUCT_NETDB_DATA Compiler/platform has strange +// hostent API for socket *_r() calls +//? ACE_HAS_STRUCT_PROTOENT_DATA Compiler/platform has strange +//protoent API for socket *_r() calls +//ACE_HAS_SUNOS4_GETTIMEOFDAY SunOS 4 style prototype. +//? ACE_HAS_SYSCALL_GETRUSAGE HP/UX has an undefined syscall for +//GETRUSAGE... +//ACE_HAS_TEMPLATE_TYPEDEFS Compiler implements templates that +// support typedefs inside of classes used as formal arguments to a template +// class. +//ACE_HAS_TID_T Platform supports the tid_t type +//(e.g., AIX) +//Platform/compiler supports timezone * as second parameter to gettimeofday() +//#define ACE_HAS_TIMEZONE_GETTIMEOFDAY According to man we have but not +//when compiling +//ACE_HAS_UNION_WAIT The wait() system call takes a ( +// union wait *) rather than int * +//? ACE_HAS_USING_KEYWORD Compiler supports the new using +// keyword for C++ namespaces. +//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_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_XT Platform has Xt and Motif +//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_EXEC Platform lacks the exec() family of +// system calls (e.g., Win32, VxWorks, Chorus) +//ACE_LACKS_FILELOCKS Platform lacks file locking mechanism +//ACE_LACKS_IOSTREAM_FX iostream header does not declare +// ipfx (), opfx (), etc. +//ACE_LACKS_MALLOC_H Platform lacks malloc.h +//ACE_LACKS_MEMORY_H Platform lacks memory.h +//(e.g., VxWorks and Chorus) +//ACE_LACKS_MKTEMP ACE has no mktemp() +//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_MSGBUF_T Platform lacks struct msgbuf (e.g., +// NT and MSV). +//ACE_LACKS_MSYNC Platform lacks msync() (e.g., Linux) +//ACE_LACKS_NETDB_REENTRANT_FUNCTIONS Platform does not support reentrant +// netdb functions (getprotobyname_r, getprotobynumber_r, gethostbyaddr_r, +// gethostbyname_r, getservbyname_r). +//ACE_LACKS_RPC_H Platform lacks the ONC RPC header +// files. +//ACE_LACKS_PARAM_H Platform lacks <sys/param.h> (e.g., +//MVS) +//ACE_LACKS_POSIX_PROTO Platform lacks POSIX prototypes for +//certain System V functions like shared memory and message queues. +//ACE_LACKS_RECVMSG Platform lacks recvmsg() (e.g., Linux) +//ACE_LACKS_RWLOCK_T Platform lacks readers/writer locks. +//ACE_LACKS_SBRK Platform lacks a working sbrk() +// (e.g., Win32 and VxWorks) +//ACE_LACKS_SEMBUF_T Platform lacks struct sembuf +//(e.g., Win32 and VxWorks) +//ACE_LACKS_SIGACTION Platform lacks struct sigaction +// (e.g., Win32 and Chorus) +//? ACE_LACKS_SYS_NERR Platforms/compiler lacks the sys_nerr +// variable (e.g., VxWorks and MVS). +//ACE_LACKS_SYSV_MSG_H Platform lacks sys/msg.h +//(e.g., Chorus and VxWorks) +//ACE_LACKS_KEYDELETE Platform lacks TSS keydelete +//(e.g., HP/UX) +//ACE_LACKS_KEY_T Platform lacks key_t +//(e.g., Chorus, VxWorks, Win32) +//ACE_LACKS_SENDMSG Platform lacks sendmsg() +// (e.g., Linux) +//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_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_STRRECVFD Platform doesn't define struct +//strrecvfd. +//ACE_LACKS_SYSCALL Platform doesn't have syscall() +// prototype +//ACE_LACKS_SYSV_MSQ_PROTOS Platform doesn't have prototypes for +//Sys V msg()* queues. +//ACE_LACKS_T_ERRNO Header files lack t_errno for TLI +//ACE_LACKS_TCP_H Platform doesn't have netinet/tcp.h +//ACE_LACKS_UCONTEXT_H Platform lacks the ucontext.h file +//ACE_LACKS_UNIX_DOMAIN_SOCKETS ACE platform has no UNIX domain sockets +//ACE_LACKS_UTSNAME_T Platform lacks struct utsname +// (e.g., Win32 and VxWorks) +//ACE_NDEBUG Turns off debugging features +//ACE_NEEDS_READV Platform doesn't define readv, so +// use our own +//ACE_NEEDS_WRITEV Platform doesn't define writev, so +//use our own +//ACE_NLOGGING Turns off the LM_DEBUG and LM_ERROR +//logging macros... +//ACE_NTRACE Turns off the tracing feature. +//ACE_REDEFINES_XTI_FUNCTIONS Platform redefines the t_... names +//(UnixWare) +//ACE_SELECT_USES_INT Platform uses int for select() +//rather than fd_set +//? 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_TEMPLATES_REQUIRE_SPECIALIZATION Compiler's template mechanism +//requires the use of explicit C++ specializations for all used +//templates. This is also used for GNU G++ if you don't use the "repo" +//patches. +//ACE_USE_POLL Use the poll() event demultiplexor +//rather than select(). + + + +// Turns off the tracing feature. +// #define ACE_NTRACE 0 +#if !defined (ACE_NTRACE) +#define ACE_NTRACE 1 +#endif /* ACE_NTRACE */ + +// Defines the page size of the system. +#define ACE_PAGE_SIZE 4096 + +#endif /* ACE_CONFIG_H */ diff --git a/ace/config-unixware-2.1.2-g++.h b/ace/config-unixware-2.1.2-g++.h new file mode 100644 index 00000000000..1b16765fa2d --- /dev/null +++ b/ace/config-unixware-2.1.2-g++.h @@ -0,0 +1,80 @@ +// The following configuration file is designed to work +// for Unixware platforms running UnixWare 2.1.2 and gcc version 2.7.2.2 + +#if !defined (ACE_CONFIG_H) +#define ACE_CONFIG_H + +// See README for what the ACE_HAS... and ACE_LACKS... macros mean + +#if ! defined (__ACE_INLINE__) +#define __ACE_INLINE__ +#endif /* ! __ACE_INLINE__ */ + +#define ACE_NEEDS_SYSTIME_H + +#define ACE_HAS_SIZET_SOCKET_LEN +#define ACE_HAS_AUTOMATIC_INIT_FINI +#define ACE_HAS_CPLUSPLUS_HEADERS +#define ACE_HAS_GNU_CSTRING_H +#define ACE_HAS_STRING_CLASS +#define ACE_HAS_MSG +#define ACE_HAS_SVR4_GETTIMEOFDAY +#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R +#define ACE_HAS_MT_SAFE_SOCKETS +#define ACE_HAS_NONCONST_GETBY +#define ACE_HAS_POLL +#define ACE_HAS_POSIX_NONBLOCK +#define ACE_HAS_POSIX_TIME +#define ACE_HAS_REENTRANT_FUNCTIONS +#define ACE_HAS_REGEX +#define ACE_HAS_LAZY_V +#define ACE_HAS_SELECT_H +#define ACE_HAS_SIGINFO_T +#define ACE_HAS_UCONTEXT_T +#define ACE_HAS_SIGWAIT +#define ACE_HAS_SIG_ATOMIC_T +#define ACE_HAS_SOCKIO_H +#define ACE_HAS_SSIZE_T +#define ACE_HAS_STHREADS +#define ACE_HAS_THR_KEYDELETE +#define ACE_HAS_STRBUF_T +#define ACE_HAS_STREAMS +#define ACE_HAS_STREAM_PIPES +#define ACE_HAS_STRERROR +#define ACE_HAS_SVR4_DYNAMIC_LINKING +#define ACE_HAS_SVR4_TIME +#define ACE_HAS_SYSCALL_H +#define ACE_HAS_SYSINFO +#define ACE_HAS_SYSV_IPC +#define ACE_HAS_SYS_FILIO_H +#define ACE_HAS_TERM_IOCTLS +#define ACE_HAS_THREADS +#define ACE_HAS_THREAD_SPECIFIC_STORAGE +#define ACE_HAS_THREAD_T +#define ACE_HAS_TIMOD_H +#define ACE_HAS_TIUSER_H +#define ACE_HAS_TLI +#define ACE_HAS_TLI_PROTOTYPES +#define ACE_HAS_UNIXWARE_SVR4_SIGNAL_T +#define ACE_HAS_VOIDPTR_SOCKOPT +#define ACE_HAS_THR_MINSTACK + +#define ACE_LACKS_MADVISE +#define ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES +#define ACE_LACKS_STRCASECMP +#define ACE_LACKS_PRI_T +#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS +#define ACE_LACKS_PWD_REENTRANT_FUNCTIONS + +#define ACE_MT_SAFE +#define ACE_PAGE_SIZE 4096 +#define ACE_REDEFINES_XTI_FUNCTIONS +#define ACE_TEMPLATES_REQUIRE_SOURCE +#define ACE_TEMPLATES_REQUIRE_SPECIALIZATION + +// Turns off the tracing feature. +#if !defined (ACE_NTRACE) +#define ACE_NTRACE 1 +#endif /* ACE_NTRACE */ + +#endif /* ACE_CONFIG_H */ diff --git a/include/makeinclude/platform_tandem.GNU b/include/makeinclude/platform_tandem.GNU new file mode 100644 index 00000000000..6f07d2fd1e6 --- /dev/null +++ b/include/makeinclude/platform_tandem.GNU @@ -0,0 +1,89 @@ +# NonStop-UX NCC 3.20 + +# Please see the config-NonS... file for more information about status +# This file is built from Sunos5(os) and sgic++(compiler) + +CC = cc +CXX = NCC +DLD = $(CXX) +LD = $(CXX) +CPPFLAGS += -no_exceptions +CPPFLAGS += -I/usr/include3.18 +CPPFLAGS += -D_REENTRANT +#CPPFLAGS += -ptused -prelink +CPPFLAGS += -pta +#CPPFLAGS += +pp +#CPPFLAGS += -show +#-D_SGI_MP_SOURCE +#3106 nested comment is not allowed +#3203 statement is unreachable +#3252 argument of type "X" is incompatible with parameter of type "Y" +#3262 Parameter "X" declared and never referenced +#3611 a value of "X" cannot be assigned to an entity of type "Y" +#3140 macro redefined differently (param redefines NULL) + +CPPFLAGS += -woff 3106,3203,3262 +#CPPFLAGS += -woff 3106,3203,3262,3611,3252 +#CPPFLAGS += -woff 3106,3203,3212,3252,3262,3611 + +# For the new 32 bit C++ compiler (-n32) +#CPPFLAGS += -n32 -woff 1174,1209,1375,1506,1110,1552,1021,1171 +# For the old C++ compiler (-32) +#CPPFLAGS += +pp +LDFLAGS += -rpath "$(WRAPPER_ROOT)/ace" +#LDFLAGS += -Wl,-woff,85 +LIBS += -lsocket +LIBS += -ldl +LIBS += -lnsl +LIBS += -lgen +LIBS += -lthread +PIC = -KPIC +AR = ar +ARFLAGS = r +RANLIB = echo +SOFLAGS = -shared $(CPPFLAGS) -all +SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.o $<; \ + $(SOLINK.cc) -o $@ $(LDFLAGS) $(VSHDIR)$*.o + +#3106 nested comment is not allowed +#3203 statement is unreachable +#3252 argument of type "X" is incompatible with parameter of type "Y" +#3262 Parameter declared and never referenced +#3611 a value of "X" cannot be assigned to an entity of type "Y" +#WARNOFF += -woff 3106,3203,3262,3611 +#INCDIR += -I/usr/include -I/usr/include3.18 +# -I /usr/ucbinclude +#### No threads +#CCFLAGS += -no_exceptions -pta $(WARNOFF) $(INCDIR) +#### Threads +#CCFLAGS += -D_REENTRANT -no_exceptions -pta $(WARNOFF) + +#DLD = $(CXX) +#LD = $(CXX) +#LDFLAGS += -R $(WRAPPER_ROOT)/ace +#LIBS += -lsocket -ldl -lnsl -lgen -lthread # Threads +#LIBS += -lsocket -ldl -lnsl -lgen # No threads +#PIC = -PIC +# SUNC++ 4.1 has a bug with the -xar command: +# +# from 'CC -readme' the following bug is reported: +# +# 4. Using -xar to add generated templates +# ---------------------------------------- +# +# When using -xar to add generated templates to an archive, +# please be aware that this command will both update +# existing object files in the archive, and add new ones. +# Existing object files that may be obsolete will still +# be present. In these cases, the safest course of action +# would be to delete the .a file prior to the invocation of -xar. +# +# so here we remove the archive prior to making the new one +# +#AR = CC +#ARFLAGS = -xar -o +#RANLIB = echo +#SOFLAGS = -G $(CPPFLAGS) +#SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.o $<; \ + $(SOLINK.cc) -o $@ -h $@ $(LDFLAGS) $(VSHDIR)$*.o + diff --git a/include/makeinclude/platform_unixware_g++.GNU b/include/makeinclude/platform_unixware_g++.GNU index 865051dcecb..b75f67c3287 100644 --- a/include/makeinclude/platform_unixware_g++.GNU +++ b/include/makeinclude/platform_unixware_g++.GNU @@ -1,25 +1,25 @@ -# UnixWare V2.01 with g++ *not* using Orbix +# UnixWare V2.2.1.2 with g++ version 2.7.2.2 *not* using Orbix # # SOBUILD - compile into .so directly # -CC = gcc -CXX = g++ -CFLAGS += $(DCFLAGS) +CC = gcc +CXX = g++ +CFLAGS += $(DCFLAGS) -I/usr/include -D__STDC__=0 #-w CCFLAGS += $(CFLAGS) -fno-implicit-templates # -fno-strict-prototypes -DCFLAGS += -g -DLD = $(CXX) -LD = $(CXX) -LDFLAGS += -L/usr/lib -LIBS += -lsocket -lnsl -lgen -lthread -PIC = -fpic -AR = ar -ARFLAGS = ruv -RANLIB = /bin/true -#SOFLAGS = -assert pure-text -SOFLAGS = -shared -SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.so $< -# SOLINK = $(SOLINK.cc) -o $@ $(LDFLAGS) $< -PRELIB = (echo "int main() { return 0; }" > gcctemp.c && \ - $(COMPILE.cc) -o gcctemp.o gcctemp.c && \ - $(LINK.cc) -o gcctemp gcctemp.o $^ $(LDFLAGS) $(LIBS); \ - status=$$?; rm -f gcctemp*; exit $$status) +DCFLAGS += -g +DLD = $(CXX) +LD = $(CXX) +LDFLAGS += -L/usr/lib +LIBS += -lsocket -lnsl -lgen -lthread +PIC = -fpic +AR = ar +ARFLAGS = ruv +RANLIB = /bin/true +#SOFLAGS = -assert pure-text +SOFLAGS = -shared +SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.so $< +# SOLINK = $(SOLINK.cc) -o $@ $(LDFLAGS) $< +PRELIB = (echo "int main() { return 0; }" > gcctemp.c && \ + $(COMPILE.cc) -o gcctemp.o gcctemp.c && \ + $(LINK.cc) -o gcctemp gcctemp.o $^ $(LDFLAGS) $(LIBS); \ + status=$$?; rm -f gcctemp*; exit $$status) |