diff options
-rw-r--r-- | ChangeLog-97a | 74 | ||||
-rw-r--r-- | README | 1 | ||||
-rw-r--r-- | ace/IO_SAP.cpp | 11 | ||||
-rw-r--r-- | ace/IPC_SAP.cpp | 10 | ||||
-rw-r--r-- | ace/Memory_Pool.cpp | 1 | ||||
-rw-r--r-- | ace/OS.h | 94 | ||||
-rw-r--r-- | ace/OS.i | 3 | ||||
-rw-r--r-- | ace/README | 2 | ||||
-rw-r--r-- | ace/config-chorus.h | 12 | ||||
-rw-r--r-- | ace/config-vxworks-ghs-1.8.h | 2 | ||||
-rw-r--r-- | ace/config-vxworks5.2-g++.h | 2 | ||||
-rw-r--r-- | ace/config-win32-msvc2.0.h | 1 | ||||
-rw-r--r-- | ace/config-win32-msvc4.x.h | 1 | ||||
-rw-r--r-- | ace/config-winnt-4.0-msvc4.x.h | 1 |
14 files changed, 153 insertions, 62 deletions
diff --git a/ChangeLog-97a b/ChangeLog-97a index 3cc65feae9c..fab6bdcf3b0 100644 --- a/ChangeLog-97a +++ b/ChangeLog-97a @@ -1,3 +1,43 @@ +Fri Mar 21 15:10:59 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu> + + * ace/Memory_Pool.cpp: Added #if !defined + (ACE_LACKS_SYSV_SHMEM) to handle systems like Chorus that + lack this feature. + +Thu Mar 20 18:58:50 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu> + + * ace/Svc_Handler.cpp (destroy): Added a state variable to keep + track of when we are closing down the Svc_Handler. This is + necessary to prevent endless recursive calls to handle_close() + due to the recent enhancements to ACE_Timer_{List,Heap}. Thanks + to Bert Craytor <Bert_Craytor@peoplesoft.com> for reporting + this. + + * tests/Conn_Test.cpp: Added a new test that makes sure the + Acceptor, Connector, and Svc_Handler are working correctly. + + * ace: Added some more changes for Chorus. Thanks to Wei Chiang + <chiang@tele.nokia.fi> for these changes. + + * ace/OS.h: Added #define for SIGSEGV for platforms that lack it + (e.g., Chorus). + + * ace: Made a bunch of minor changes to support SunOS 4.x better. + Thanks to Scott Halstead <scott.halstead@gs.com> for reporting + these problems. + + * tests/Conn_Test.cpp: Added ACE_TEMPLATES_REQUIRE_SPECIALIZATION + for the various templates used in this test. Thanks to Thilo + Kielmann <kielmann@informatik.uni-siegen.de> for reporting this. + + * ace/Connector.cpp (connector): Fixed some minor bugs that + prevented the ACE_Connector from compiling. Thanks to David + Levine for noticing this. + + * ace/OS.h: Moved the ACE_LACKS_SIGACTION block so that it will + work on Win32. Thanks to Matthias Kerkhoff + <make@cs.tu-berlin.de> for pointing this out. + Thu Mar 20 22:38:27 1997 David L. Levine <levine@cs.wustl.edu> * ace/Timer_Heap.cpp: added template specializations. @@ -27,26 +67,6 @@ Thu Mar 20 22:38:27 1997 David L. Levine <levine@cs.wustl.edu> * include/makeinclude/platform_{chorus,hpux,hpux_gcc}.GNU: split out CFLAGS and CCFLAGS from CC and CXX. -Thu Mar 20 18:58:50 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu> - - * ace: Made a bunch of minor changes to support SunOS 4.x better. - Thanks to Scott Halstead <scott.halstead@gs.com> for reporting - these problems. - - * tests/Conn_Test.cpp: Added ACE_TEMPLATES_REQUIRE_SPECIALIZATION - for the various templates used in this test. Thanks to Thilo - Kielmann <kielmann@informatik.uni-siegen.de> for reporting this. - - * ace/Connector.cpp (connector): Fixed some minor bugs that - prevented the ACE_Connector from compiling. Thanks to David - Levine for noticing this. - - * ace/OS.h: Moved the ACE_LACKS_SIGACTION block so that it will - work on Win32. Thanks to Matthias Kerkhoff - <make@cs.tu-berlin.de> for pointing this out. - -Thu Mar 20 15:52:34 1997 David L. Levine <levine@cs.wustl.edu> - * ace/config-aix-4.[12].x.h: added back ACE_HAS_THREAD_SELF and and ACE_HAS_SVR4_DYNAMIC_LINKING; removed ACE_HAS_PTHREAD_T. Thanks to Chris Lahey <CLahey@cccis.com> for figuring these out. @@ -64,8 +84,6 @@ Thu Mar 20 12:25:30 1997 <harrison@samba.cs.wustl.edu> Build->Settings->Code Generation->Processor to use the RDTSC instruction in ACE_OS::gethrtime. -Thu Mar 20 01:13:19 1997 <harrison@samba.cs.wustl.edu> - * ace/High_Res_Timer.{cpp,i}: By default, High_Res_Timer is constructed with a scale_factor == 1. This allowed me to remove all the checks for scale_factor == 0 in the code. @@ -77,18 +95,6 @@ Thu Mar 20 01:13:19 1997 <harrison@samba.cs.wustl.edu> This allows the scale_factor of 1 to still result in correct values. -Thu Mar 20 00:30:39 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu> - - * ace/Svc_Handler.cpp (destroy): Added a state variable to keep - track of when we are closing down the Svc_Handler. This is - necessary to prevent endless recursive calls to handle_close() - due to the recent enhancements to ACE_Timer_{List,Heap}. Thanks - to Bert Craytor <Bert_Craytor@peoplesoft.com> for reporting - this. - - * tests/Conn_Test.cpp: Added a new test that makes sure the - Acceptor, Connector, and Svc_Handler are working correctly. - Wed Mar 19 15:02:09 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu> * ace: Added zillions of minor changes so that ACE will compile on @@ -487,6 +487,7 @@ Elliot Lau <eeklau@post1.com> Mark Wright <markw@odi.com.au> Michael Newton <michaeln@in.ot.com.au> Kumar Neelakantan <kneelaka@painewebber.com> +Scott Halstead <scott.halstead@gs.com> I would particularly like to thank Paul Stephenson, who worked with me at Ericsson and is now at ObjectSpace. Paul devised the recursive diff --git a/ace/IO_SAP.cpp b/ace/IO_SAP.cpp index 798b324b766..b043ac5074a 100644 --- a/ace/IO_SAP.cpp +++ b/ace/IO_SAP.cpp @@ -54,16 +54,21 @@ ACE_IO_SAP::enable (int signum) const return ACE_IO_SAP::INVALID_HANDLE; #endif /* F_SETOWN */ #endif /* SIGURG */ +#if defined (SIGIO) // <== case SIGIO: #if defined (F_SETOWN) && defined (FASYNC) if (ACE_OS::fcntl (this->handle_, F_SETOWN, ACE_IO_SAP::pid_) == ACE_IO_SAP::INVALID_HANDLE) return ACE_IO_SAP::INVALID_HANDLE; if (ACE::set_flags (this->handle_, FASYNC) == ACE_IO_SAP::INVALID_HANDLE) return ACE_IO_SAP::INVALID_HANDLE; - break; #else return ACE_IO_SAP::INVALID_HANDLE; #endif /* F_SETOWN && FASYNC */ +#else // <== + return ACE_IO_SAP::INVALID_HANDLE; // <== +#endif /* SIGIO <== */ + break; + case ACE_NONBLOCK: if (ACE::set_flags (this->handle_, ACE_NONBLOCK) == ACE_IO_SAP::INVALID_HANDLE) return ACE_IO_SAP::INVALID_HANDLE; @@ -100,6 +105,7 @@ ACE_IO_SAP::disable (int signum) const #endif /* F_SETOWN */ break; #endif /* SIGURG */ +#if defined (SIGIO) // <== case SIGIO: #if defined (F_SETOWN) && defined (FASYNC) if (ACE_OS::fcntl (this->handle_, F_SETOWN, 0) == ACE_IO_SAP::INVALID_HANDLE) @@ -109,6 +115,9 @@ ACE_IO_SAP::disable (int signum) const #else return ACE_IO_SAP::INVALID_HANDLE; #endif /* F_SETOWN && FASYNC */ +#else // <== + return ACE_IO_SAP::INVALID_HANDLE; // <== +#endif /* SIGIO <== */ break; case ACE_NONBLOCK: if (ACE::clr_flags (this->handle_, ACE_NONBLOCK) == ACE_IO_SAP::INVALID_HANDLE) diff --git a/ace/IPC_SAP.cpp b/ace/IPC_SAP.cpp index 52b2a19c8bb..0c7ac720f1a 100644 --- a/ace/IPC_SAP.cpp +++ b/ace/IPC_SAP.cpp @@ -68,6 +68,7 @@ ACE_IPC_SAP::enable (int signum) const #endif /* F_SETOWN */ break; #endif /* SIGURG */ +#if defined (SIGIO) // <== case SIGIO: #if defined (F_SETOWN) && defined (FASYNC) if (ACE_OS::fcntl (this->handle_, F_SETOWN, ACE_IPC_SAP::pid_) == -1) @@ -77,7 +78,10 @@ ACE_IPC_SAP::enable (int signum) const #else return -1; #endif /* F_SETOWN && FASYNC */ - break; +#else // <== + return -1; // <== +#endif /* SIGIO <== */ + break; case ACE_NONBLOCK: if (ACE::set_flags (this->handle_, ACE_NONBLOCK) == ACE_INVALID_HANDLE) return -1; @@ -124,6 +128,7 @@ ACE_IPC_SAP::disable (int signum) const return -1; #endif /* F_SETOWN */ #endif /* SIGURG */ +#if defined (SIGIO) // <== case SIGIO: #if defined (F_SETOWN) && defined (FASYNC) if (ACE_OS::fcntl (this->handle_, F_SETOWN, 0) == -1) @@ -134,6 +139,9 @@ ACE_IPC_SAP::disable (int signum) const #else return -1; #endif /* F_SETOWN && FASYNC */ +#else // <== + return -1; // <== +#endif /* SIGIO <== */ case ACE_NONBLOCK: if (ACE::clr_flags (this->handle_, ACE_NONBLOCK) == -1) return -1; diff --git a/ace/Memory_Pool.cpp b/ace/Memory_Pool.cpp index dd61df574e0..369c34fb4ac 100644 --- a/ace/Memory_Pool.cpp +++ b/ace/Memory_Pool.cpp @@ -447,6 +447,7 @@ ACE_Shared_Memory_Pool::commit_backing_store_name (size_t rounded_bytes, off_t &offset) { ACE_TRACE ("ACE_Shared_Memory_Pool::update"); + size_t counter; SHM_TABLE *st = (SHM_TABLE *) this->base_addr_; @@ -181,19 +181,37 @@ #define ACE_ALLOC_HOOK_DEFINE(CLASS) #endif /* ACE_HAS_ALLOC_HOOKS */ -#if defined (VXWORKS) +#if defined (ACE_LACKS_KEY_T) +#if defined (ACE_WIN32) +// Win32 doesn't use numeric values to name its semaphores, it uses +// strings! +typedef char *key_t; +#else typedef int key_t; +#endif /* ACE_WIN32 */ +#endif /* ACE_LACKS_KEY_T */ + +#if defined (VXWORKS) #include /**/ <vxWorks.h> #endif /* VXWORKS */ -#if defined (CHORUS) -#include /**/ <chorus.h> -#endif /* CHORUS */ - // This file should be a link to the platform/compiler-specific // configuration file (e.g., config-sunos5-sunc++-4.x.h). #include "ace/config.h" +#if defined (ACE_LACKS_FILELOCKS) +struct flock +{ + short l_type; + short l_whence; + off_t l_start; + off_t l_len; /* len == 0 means until end of file */ + long l_sysid; + pid_t l_pid; + long l_pad[4]; /* reserve area */ +}; +#endif /* ACE_LACKS_FILELOCKS */ + #if defined (ACE_HAS_CHARPTR_SPRINTF) #define ACE_SPRINTF_ADAPTER(X) ::strlen (X) #else @@ -1237,10 +1255,6 @@ typedef int ACE_thread_key_t; #include /**/ <errno.h> #include /**/ <stdlib.h> -#if defined (CHORUS) // This must come after limits.h is included -#define MAXPATHLEN _POSIX_PATH_MAX -#endif /* CHORUS */ - // This must come after signal.h is #included. #if defined (SCO) #define SIGIO SIGPOLL @@ -1333,7 +1347,11 @@ typedef void (__cdecl *ACE_SignalHandlerV)(int); typedef void (*ACE_SignalHandler)(int); typedef void (*ACE_SignalHandlerV)(...); #else /* This is necessary for some older broken version of cfront */ +#if defined (SIG_PF) #define ACE_SignalHandler SIG_PF +#else +typedef void (*ACE_SignalHandler)(int); +#endif /* SIG_PF */ typedef void (*ACE_SignalHandlerV)(...); #endif /* ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES */ @@ -1438,7 +1456,6 @@ typedef void (*ACE_SignalHandlerV)(...); #define RUSAGE_SELF 1 struct shmaddr { }; -struct shmid_ds { }; struct msqid_ds {}; // Fake the UNIX rusage structure. Perhaps we can add more to this @@ -1449,10 +1466,6 @@ struct rusage FILETIME ru_stime; }; -// Win32 doesn't use numeric values to name its semaphores, it uses -// strings! -typedef char *key_t; - // MMAP flags #define PROT_READ PAGE_READONLY #define PROT_WRITE PAGE_READWRITE @@ -1544,7 +1557,6 @@ inline DWORD ACE_HIGH_DWORD (ACE_QWORD q) { return (DWORD) (q >> 32); } // Win32 dummies to help compilation. -typedef void *sigset_t; // Who knows? typedef int mode_t; typedef int uid_t; typedef int gid_t; @@ -1558,7 +1570,6 @@ struct t_discon { }; struct t_unitdata { }; struct t_uderr { }; struct netbuf { }; -struct flock { }; // not used with Win32 locking... // Wrapper for NT Events. typedef HANDLE ACE_event_t; @@ -1753,7 +1764,28 @@ extern "C" { #if !defined (ACE_LACKS_TCP_H) #include /**/ <netinet/tcp.h> #endif /* ACE_LACKS_TCP_H */ -#if defined (VXWORKS) + +#if defined (CHORUS) +#include /**/ <chorus.h> +#include /**/ <cx/select.h> +#include /**/ <sys/uio.h> +#include /**/ <time.h> +#include /**/ <sys/ioctl.h> +#include /**/ <dirent.h> +#include /**/ <sys/stat.h> +#include /**/ <unistd.h> +#include /**/ <pwd.h> +#include /**/ <stdfileio.h> + +// This must come after limits.h is included +#define MAXPATHLEN _POSIX_PATH_MAX + +typedef cx_fd_mask fd_mask; +#ifndef howmany +#define howmany(x, y) (((x)+((y)-1))/(y)) +#endif /* howmany */ +typedef void (*__sighandler_t)(int); // keep Signal compilation happy +#elif defined (VXWORKS) #include /**/ <sys/times.h> #else #include /**/ <sys/uio.h> @@ -1918,9 +1950,9 @@ extern "C" #if defined (ACE_HAS_BROKEN_MSG_H) #define _KERNEL #endif /* ACE_HAS_BROKEN_MSG_H */ -#if !defined (VXWORKS) +#if !defined (ACE_LACKS_SYSV_MSG_H) #include /**/ <sys/msg.h> -#endif /* VXWORKS */ +#endif /* ACE_LACKS_SYSV_MSG_H */ #if defined (ACE_HAS_BROKEN_MSG_H) #undef _KERNEL #endif /* ACE_HAS_BROKEN_MSG_H */ @@ -1990,6 +2022,10 @@ typedef fd_set ACE_FD_SET_TYPE; #endif /* FILENAME_MAX */ #endif /* MAXNAMELEN */ +#if defined (ACE_LACKS_SIGSET) +typedef void *sigset_t; +#endif /* ACE_LACKS_SIGSET */ + #if defined (ACE_LACKS_SIGACTION) struct sigaction { @@ -2009,6 +2045,26 @@ struct sigaction #define SIGINT 2 #endif /* SIGINT */ +#if !defined (SIGSEGV) +#define SIGSEGV 11 +#endif /* SIGSEGV */ + +#if !defined (SIG_DFL) +#define SIG_DFL ((__sighandler_t)0) +#endif /* SIG_DFL */ + +#if !defined (SIG_IGN) +#define SIG_IGN ((__sighandler_t)1) /* ignore signal */ +#endif /* SIG_IGN */ + +#if !defined (SIG_ERR) +#define SIG_ERR ((__sighandler_t)-1) /* error return from signal */ +#endif /* SIG_ERR */ + +#if !defined (SIGIO) +#define SIGIO 29 +#endif /* SIGSEGV */ + #if !defined (SIGQUIT) #define SIGQUIT 3 #endif /* SIGQUIT */ @@ -3920,7 +3920,8 @@ ACE_OS::thr_self (ACE_hthread_t &self) #elif defined (ACE_HAS_THREAD_SELF) self = ::thread_self (); #elif defined (ACE_HAS_PTHREADS) || defined (ACE_HAS_SETKIND_NP) - self = ::pthread_self (); + // Note, don't use "::" here since the following call is often a macro. + self = pthread_self (); #elif defined (ACE_HAS_STHREADS) self = ::thr_self (); #elif defined (ACE_HAS_WTHREADS) diff --git a/ace/README b/ace/README index d9547908216..2337fd4393a 100644 --- a/ace/README +++ b/ace/README @@ -179,7 +179,9 @@ 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_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_SI_ADDR Platform lacks the si_addr field of siginfo_t (e.g., VxWorks and HP/UX 10.x) ACE_LACKS_SYSV_SHMEM Platform lacks System V shared memory (e.g., Win32 and VxWorks) diff --git a/ace/config-chorus.h b/ace/config-chorus.h index 50d517cce74..049cc627ed9 100644 --- a/ace/config-chorus.h +++ b/ace/config-chorus.h @@ -20,6 +20,9 @@ #undef linux #endif +#define ACE_LACKS_SYSV_SHMEM +#define ACE_LACKS_SYSV_MSG_H +#define ACE_LACKS_KEY_T #define ACE_LACKS_EXEC #define ACE_LACKS_SIGACTION #define ACE_LACKS_SIGSET @@ -30,10 +33,10 @@ #define ACE_LACKS_STRRECVFD #define ACE_HAS_CPLUSPLUS_HEADERS +#define ACE_HAS_LONG_MAP_FAILED // Platform supports System V IPC (most versions of UNIX, but not Win32) -#define ACE_HAS_SYSV_IPC -#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES +//#define ACE_HAS_SYSV_IPC #define ACE_NEEDS_WRITEV #define ACE_NEEDS_READV @@ -49,9 +52,6 @@ #define ACE_LACKS_MEMORY_H #define ACE_LACKS_PARAM_H -// Compiler/platform supports sys_siglist array. -//#define ACE_HAS_SYS_SIGLIST - // Compiler supports the ssize_t typedef. #define ACE_HAS_SSIZE_T @@ -81,7 +81,7 @@ // Yes, we do have threads. #define ACE_HAS_THREADS -#define ACE_HAS_POSIX_SEM +//#define ACE_HAS_POSIX_SEM #define ACE_HAS_THREAD_SPECIFIC_STORAGE #define ACE_MT_SAFE // And they're even POSIX pthreads diff --git a/ace/config-vxworks-ghs-1.8.h b/ace/config-vxworks-ghs-1.8.h index 679ed67954a..40c5d00ad4c 100644 --- a/ace/config-vxworks-ghs-1.8.h +++ b/ace/config-vxworks-ghs-1.8.h @@ -11,6 +11,8 @@ #define __ACE_INLINE__ #endif /* ! __ACE_INLINE__ */ +#define ACE_LACKS_SYSV_MSG_H +#define ACE_LACKS_KEY_T #define ACE_LACKS_EXEC #define ACE_LACKS_MEMORY_H #define ACE_LACKS_FILELOCKS diff --git a/ace/config-vxworks5.2-g++.h b/ace/config-vxworks5.2-g++.h index 394f868a873..ac7176c6e30 100644 --- a/ace/config-vxworks5.2-g++.h +++ b/ace/config-vxworks5.2-g++.h @@ -11,7 +11,9 @@ #define __ACE_INLINE__ #endif /* ! __ACE_INLINE__ */ +#define ACE_LACKS_SYSV_MSG_H #define ACE_LACKS_EXEC +#define ACE_LACKS_KEY_T #define ACE_LACKS_STRCASECMP #define ACE_LACKS_FILELOCKS #define ACE_LACKS_MEMORY_H diff --git a/ace/config-win32-msvc2.0.h b/ace/config-win32-msvc2.0.h index f4ec0aa0e2b..3ecd33a3973 100644 --- a/ace/config-win32-msvc2.0.h +++ b/ace/config-win32-msvc2.0.h @@ -8,6 +8,7 @@ #if !defined (ACE_CONFIG_H) #define ACE_CONFIG_H +#define ACE_LACKS_KEY_T #define ACE_HAS_EXCEPTIONS #define ACE_LACKS_SIGACTION #define ACE_LACKS_SIGSET diff --git a/ace/config-win32-msvc4.x.h b/ace/config-win32-msvc4.x.h index 237cadccdeb..6783d705271 100644 --- a/ace/config-win32-msvc4.x.h +++ b/ace/config-win32-msvc4.x.h @@ -8,6 +8,7 @@ #if !defined (ACE_CONFIG_H) #define ACE_CONFIG_H +#define ACE_LACKS_KEY_T #define ACE_HAS_EXCEPTIONS #define ACE_HAS_MFC #define ACE_LACKS_SIGACTION diff --git a/ace/config-winnt-4.0-msvc4.x.h b/ace/config-winnt-4.0-msvc4.x.h index 5d58bcd19c7..6e8be824cff 100644 --- a/ace/config-winnt-4.0-msvc4.x.h +++ b/ace/config-winnt-4.0-msvc4.x.h @@ -7,6 +7,7 @@ #if !defined (ACE_CONFIG_H) #define ACE_CONFIG_H +#define ACE_LACKS_KEY_T #define ACE_HAS_EXCEPTIONS #define ACE_LACKS_SIGACTION #define ACE_HAS_MFC |