diff options
-rw-r--r-- | ChangeLog | 44 | ||||
-rw-r--r-- | ChangeLogs/ChangeLog-02a | 44 | ||||
-rw-r--r-- | ChangeLogs/ChangeLog-03a | 44 | ||||
-rw-r--r-- | THANKS | 2 | ||||
-rw-r--r-- | ace/Dirent.h | 6 | ||||
-rw-r--r-- | ace/IOStream.h | 4 | ||||
-rw-r--r-- | ace/OS.cpp | 71 | ||||
-rw-r--r-- | ace/OS.h | 16 | ||||
-rw-r--r-- | ace/OS.i | 4 | ||||
-rw-r--r-- | ace/OS_Dirent.cpp | 10 | ||||
-rw-r--r-- | ace/OS_Dirent.h | 37 | ||||
-rw-r--r-- | ace/OS_Dirent.inl | 24 | ||||
-rw-r--r-- | ace/Synch.cpp | 6 | ||||
-rw-r--r-- | ace/config-sunos5.6.h | 68 | ||||
-rw-r--r-- | ace/config-sunos5.8.h | 6 | ||||
-rw-r--r-- | ace/config-win32-common.h | 1 | ||||
-rw-r--r-- | apps/Orbix-Examples/Event_Comm/Consumer/Notification_Receiver_Handler.cpp | 2 | ||||
-rw-r--r-- | apps/Orbix-Examples/Logger/Logger.cpp | 2 | ||||
-rw-r--r-- | bin/envinfo.cpp | 2 | ||||
-rw-r--r-- | examples/Reactor/Multicast/Log_Wrapper.cpp | 2 | ||||
-rw-r--r-- | include/makeinclude/platform_sunos5_sunc++.GNU | 7 | ||||
-rw-r--r-- | performance-tests/Misc/basic_perf.cpp | 2 | ||||
-rw-r--r-- | tests/Dirent_Test.cpp | 2 | ||||
-rw-r--r-- | tests/Enum_Interfaces_Test.cpp | 4 | ||||
-rw-r--r-- | tests/SOCK_Connector_Test.cpp | 2 |
25 files changed, 314 insertions, 98 deletions
diff --git a/ChangeLog b/ChangeLog index 2d3008e1777..960d2c4c80c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +Fri May 11 10:25:00 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu> + + * ace/Synch.cpp (get_nesting_level): Added better protection for the + case where ACE_HAS_RECURSIVE_MUTEXES -- only return + RecursionCount if ACE_WIN32 is defined. Thanks to Corey Trager + <corey.trager@tradingtechnologies.com> for reporting this. + + * ace/OS.cpp: Reformatted all the ACE_reinterpret_cast() macros so their + arguments are on the same line to avoid tickling a bug with + SunC++'s preprocessor. Thanks to Corey Trager + <corey.trager@tradingtechnologies.com> for reporting this. + Fri May 11 07:14:50 2001 Balachandran Natarajan <bala@cs.wustl.edu> * tests/CDR_Test.cpp: Reverted this change "Wed May 9 23:19:30 @@ -7,6 +19,38 @@ Fri May 11 06:47:33 2001 Balachandran Natarajan <bala@cs.wustl.edu> * tests/ARGV_Test.cpp: One of those extra ")". +Fri May 11 06:14:58 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu> + + * ace/Dirent.h (ACE_Dirent), + * ace/OS.cpp (uname), + * ace/OS.h (ACE_OS), + * ace/OS.i (hostname), + * ace/OS_Dirent.cpp (readdir_emulation), + * ace/OS_Dirent.h (ACE_OS_Dirent), + * ace/OS_Dirent.inl (ACE_OS_Dirent), + * ace/config-win32-common.h (ACE_LACKS_STRUCT_DIR), + * apps/Orbix-Examples/Event_Comm/Consumer/Notification_Receiver_Handler.cpp (Notification_Receiver_Handler), + * apps/Orbix-Examples/Logger/Logger.cpp (Logger), + * bin/envinfo.cpp (main), + * examples/Reactor/Multicast/Log_Wrapper.cpp (open), + * performance-tests/Misc/basic_perf.cpp (main), + * tests/Dirent_Test.cpp (main), + * tests/Enum_Interfaces_Test.cpp (main), + * tests/SOCK_Connector_Test.cpp (find_another_host): + Updated all of ACE and its tests to use ACE_DIR rather than DIR + to avoid conflicts with other programs (like Perl) that also + define an enumation with DIR. Thanks to Gonzo Diethelm + <Gonzalo.Diethelm@sonda.com> for contributing these fixes. + + The following fixes are all thanks to Ingo Dahm <ingo.dahm@sun.com> + + * ace/config-sunos5.6.h: Added support for SunC++ 5.2. + * ace/IOStream.h: Added support for SunC++ 5.2. + * ace/config-sunos5.8.h: Added Solaris 8 support for native + POSIX RW locks. + * include/makeinclude/platform_sunos5_sunc++.GNU: Added support + for Sun C++ 5.2. + Thu May 10 19:33:03 2001 Carlos O'Ryan <coryan@uci.edu> * tests/ARGV_Test.cpp: diff --git a/ChangeLogs/ChangeLog-02a b/ChangeLogs/ChangeLog-02a index 2d3008e1777..960d2c4c80c 100644 --- a/ChangeLogs/ChangeLog-02a +++ b/ChangeLogs/ChangeLog-02a @@ -1,3 +1,15 @@ +Fri May 11 10:25:00 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu> + + * ace/Synch.cpp (get_nesting_level): Added better protection for the + case where ACE_HAS_RECURSIVE_MUTEXES -- only return + RecursionCount if ACE_WIN32 is defined. Thanks to Corey Trager + <corey.trager@tradingtechnologies.com> for reporting this. + + * ace/OS.cpp: Reformatted all the ACE_reinterpret_cast() macros so their + arguments are on the same line to avoid tickling a bug with + SunC++'s preprocessor. Thanks to Corey Trager + <corey.trager@tradingtechnologies.com> for reporting this. + Fri May 11 07:14:50 2001 Balachandran Natarajan <bala@cs.wustl.edu> * tests/CDR_Test.cpp: Reverted this change "Wed May 9 23:19:30 @@ -7,6 +19,38 @@ Fri May 11 06:47:33 2001 Balachandran Natarajan <bala@cs.wustl.edu> * tests/ARGV_Test.cpp: One of those extra ")". +Fri May 11 06:14:58 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu> + + * ace/Dirent.h (ACE_Dirent), + * ace/OS.cpp (uname), + * ace/OS.h (ACE_OS), + * ace/OS.i (hostname), + * ace/OS_Dirent.cpp (readdir_emulation), + * ace/OS_Dirent.h (ACE_OS_Dirent), + * ace/OS_Dirent.inl (ACE_OS_Dirent), + * ace/config-win32-common.h (ACE_LACKS_STRUCT_DIR), + * apps/Orbix-Examples/Event_Comm/Consumer/Notification_Receiver_Handler.cpp (Notification_Receiver_Handler), + * apps/Orbix-Examples/Logger/Logger.cpp (Logger), + * bin/envinfo.cpp (main), + * examples/Reactor/Multicast/Log_Wrapper.cpp (open), + * performance-tests/Misc/basic_perf.cpp (main), + * tests/Dirent_Test.cpp (main), + * tests/Enum_Interfaces_Test.cpp (main), + * tests/SOCK_Connector_Test.cpp (find_another_host): + Updated all of ACE and its tests to use ACE_DIR rather than DIR + to avoid conflicts with other programs (like Perl) that also + define an enumation with DIR. Thanks to Gonzo Diethelm + <Gonzalo.Diethelm@sonda.com> for contributing these fixes. + + The following fixes are all thanks to Ingo Dahm <ingo.dahm@sun.com> + + * ace/config-sunos5.6.h: Added support for SunC++ 5.2. + * ace/IOStream.h: Added support for SunC++ 5.2. + * ace/config-sunos5.8.h: Added Solaris 8 support for native + POSIX RW locks. + * include/makeinclude/platform_sunos5_sunc++.GNU: Added support + for Sun C++ 5.2. + Thu May 10 19:33:03 2001 Carlos O'Ryan <coryan@uci.edu> * tests/ARGV_Test.cpp: diff --git a/ChangeLogs/ChangeLog-03a b/ChangeLogs/ChangeLog-03a index 2d3008e1777..960d2c4c80c 100644 --- a/ChangeLogs/ChangeLog-03a +++ b/ChangeLogs/ChangeLog-03a @@ -1,3 +1,15 @@ +Fri May 11 10:25:00 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu> + + * ace/Synch.cpp (get_nesting_level): Added better protection for the + case where ACE_HAS_RECURSIVE_MUTEXES -- only return + RecursionCount if ACE_WIN32 is defined. Thanks to Corey Trager + <corey.trager@tradingtechnologies.com> for reporting this. + + * ace/OS.cpp: Reformatted all the ACE_reinterpret_cast() macros so their + arguments are on the same line to avoid tickling a bug with + SunC++'s preprocessor. Thanks to Corey Trager + <corey.trager@tradingtechnologies.com> for reporting this. + Fri May 11 07:14:50 2001 Balachandran Natarajan <bala@cs.wustl.edu> * tests/CDR_Test.cpp: Reverted this change "Wed May 9 23:19:30 @@ -7,6 +19,38 @@ Fri May 11 06:47:33 2001 Balachandran Natarajan <bala@cs.wustl.edu> * tests/ARGV_Test.cpp: One of those extra ")". +Fri May 11 06:14:58 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu> + + * ace/Dirent.h (ACE_Dirent), + * ace/OS.cpp (uname), + * ace/OS.h (ACE_OS), + * ace/OS.i (hostname), + * ace/OS_Dirent.cpp (readdir_emulation), + * ace/OS_Dirent.h (ACE_OS_Dirent), + * ace/OS_Dirent.inl (ACE_OS_Dirent), + * ace/config-win32-common.h (ACE_LACKS_STRUCT_DIR), + * apps/Orbix-Examples/Event_Comm/Consumer/Notification_Receiver_Handler.cpp (Notification_Receiver_Handler), + * apps/Orbix-Examples/Logger/Logger.cpp (Logger), + * bin/envinfo.cpp (main), + * examples/Reactor/Multicast/Log_Wrapper.cpp (open), + * performance-tests/Misc/basic_perf.cpp (main), + * tests/Dirent_Test.cpp (main), + * tests/Enum_Interfaces_Test.cpp (main), + * tests/SOCK_Connector_Test.cpp (find_another_host): + Updated all of ACE and its tests to use ACE_DIR rather than DIR + to avoid conflicts with other programs (like Perl) that also + define an enumation with DIR. Thanks to Gonzo Diethelm + <Gonzalo.Diethelm@sonda.com> for contributing these fixes. + + The following fixes are all thanks to Ingo Dahm <ingo.dahm@sun.com> + + * ace/config-sunos5.6.h: Added support for SunC++ 5.2. + * ace/IOStream.h: Added support for SunC++ 5.2. + * ace/config-sunos5.8.h: Added Solaris 8 support for native + POSIX RW locks. + * include/makeinclude/platform_sunos5_sunc++.GNU: Added support + for Sun C++ 5.2. + Thu May 10 19:33:03 2001 Carlos O'Ryan <coryan@uci.edu> * tests/ARGV_Test.cpp: @@ -1231,6 +1231,8 @@ Sam Mok <sam.mok@westwave.com> Josh Curry <Josh.Curry@lipper.reuters.com> Norman Wilson <Norman.Wilson@liffe.com> Itzhak Briskman <ibriskman@ndsisrael.com> +James Kanyok <james.kanyok@lmco.com> +Corey Trager <corey.trager@tradingtechnologies.com> I would particularly like to thank Paul Stephenson, who worked with me at Ericsson in the early 1990's. Paul devised the recursive Makefile diff --git a/ace/Dirent.h b/ace/Dirent.h index d4d09845f44..cfe10038f69 100644 --- a/ace/Dirent.h +++ b/ace/Dirent.h @@ -46,7 +46,7 @@ public: /// Destructor calls <closedir>. ~ACE_Dirent (void); - /// Closes the directory stream and frees the DIR structure. + /// Closes the directory stream and frees the <ACE_DIR> structure. void close (void); // = Iterator methods. @@ -87,7 +87,7 @@ public: * directory stream. The new position reverts to the position * associated with the directory stream at the time the <telldir> * operation that provides loc was performed. Values returned by - * <telldir> are good only for the lifetime of the DIR pointer from + * <telldir> are good only for the lifetime of the <ACE_DIR> pointer from * which they are derived. If the directory is closed and then * reopened, the <telldir> value may be invalidated due to * undetected directory compaction. It is safe to use a previous @@ -106,7 +106,7 @@ public: private: /// Pointer to the directory stream. - DIR *dirp_; + ACE_DIR *dirp_; }; #if defined (__ACE_INLINE__) diff --git a/ace/IOStream.h b/ace/IOStream.h index 4bf781d8bb8..89ce9fb31d5 100644 --- a/ace/IOStream.h +++ b/ace/IOStream.h @@ -358,7 +358,7 @@ typedef ostream& (*__omanip_)(ostream&); // operators. Notice how the <ipfx> and <isfx> functions are used. #define GET_SIG(MT,DT) inline virtual MT& operator>> (DT v) -#if defined (__KCC) +#if defined (__KCC) || (defined (__SUNPRO_CC) && __SUNPRO_CC > 0x510) #define GET_CODE { \ if (ipfx (0)) \ { \ @@ -385,7 +385,7 @@ typedef ostream& (*__omanip_)(ostream&); // operators. Notice how the <opfx> and <osfx> functions are used. #define PUT_SIG(MT,DT) inline virtual MT& operator<< (DT v) -#if defined (__KCC) +#if defined (__KCC) || (defined (__SUNPRO_CC) && __SUNPRO_CC > 0x510) #define PUT_CODE { \ if (opfx ()) \ { \ diff --git a/ace/OS.cpp b/ace/OS.cpp index a4861ab8f9f..afaad3ef5a6 100644 --- a/ace/OS.cpp +++ b/ace/OS.cpp @@ -581,7 +581,7 @@ ACE_OS::readPPCTimeBase (u_long &most, u_long &least) // string literals, and some compilers, e.g., g++, don't handle those // efficiently in unused inline functions. int -ACE_OS::uname (struct utsname *name) +ACE_OS::uname (ACE_utsname *name) { ACE_OS_TRACE ("ACE_OS::uname"); # if defined (ACE_WIN32) @@ -6794,44 +6794,39 @@ ACE_OS_Object_Manager::init (void) ACE_CE_Errno::init (); # endif /* ACE_HAS_WINCE_BROKEN_ERRNO */ ACE_OS_PREALLOCATE_OBJECT (ACE_thread_mutex_t, ACE_OS_MONITOR_LOCK) - if (ACE_OS::thread_mutex_init (ACE_reinterpret_cast ( - ACE_thread_mutex_t *, - ACE_OS_Object_Manager::preallocated_object[ - ACE_OS_MONITOR_LOCK])) != 0) + if (ACE_OS::thread_mutex_init + // This line must not be broken to avoid tickling a bug with SunC++'s preprocessor. + (ACE_reinterpret_cast (ACE_thread_mutex_t *, ACE_OS_Object_Manager::preallocated_object[ACE_OS_MONITOR_LOCK])) != 0) ACE_OS_Object_Manager::print_error_message ( __LINE__, ACE_LIB_TEXT ("ACE_OS_MONITOR_LOCK")); ACE_OS_PREALLOCATE_OBJECT (ACE_recursive_thread_mutex_t, ACE_TSS_CLEANUP_LOCK) - if (ACE_OS::recursive_mutex_init (ACE_reinterpret_cast ( - ACE_recursive_thread_mutex_t *, - ACE_OS_Object_Manager::preallocated_object[ - ACE_TSS_CLEANUP_LOCK])) != 0) + if (ACE_OS::recursive_mutex_init + // This line must not be broken to avoid tickling a bug with SunC++'s preprocessor. + (ACE_reinterpret_cast (ACE_recursive_thread_mutex_t *, ACE_OS_Object_Manager::preallocated_object[ACE_TSS_CLEANUP_LOCK])) != 0) ACE_OS_Object_Manager::print_error_message ( __LINE__, ACE_LIB_TEXT ("ACE_TSS_CLEANUP_LOCK")); ACE_OS_PREALLOCATE_OBJECT (ACE_thread_mutex_t, ACE_LOG_MSG_INSTANCE_LOCK) - if (ACE_OS::thread_mutex_init (ACE_reinterpret_cast ( - ACE_thread_mutex_t *, - ACE_OS_Object_Manager::preallocated_object[ - ACE_LOG_MSG_INSTANCE_LOCK])) != 0) + if (ACE_OS::thread_mutex_init + // This line must not be broken to avoid tickling a bug with SunC++'s preprocessor. + (ACE_reinterpret_cast (ACE_thread_mutex_t *, ACE_OS_Object_Manager::preallocated_object[ACE_LOG_MSG_INSTANCE_LOCK])) != 0) ACE_OS_Object_Manager::print_error_message ( __LINE__, ACE_LIB_TEXT ("ACE_LOG_MSG_INSTANCE_LOCK")); # if defined (ACE_HAS_TSS_EMULATION) ACE_OS_PREALLOCATE_OBJECT (ACE_recursive_thread_mutex_t, ACE_TSS_KEY_LOCK) - if (ACE_OS::recursive_mutex_init (ACE_reinterpret_cast ( - ACE_recursive_thread_mutex_t *, - ACE_OS_Object_Manager::preallocated_object[ - ACE_TSS_KEY_LOCK])) != 0) + if (ACE_OS::recursive_mutex_init + // This line must not be broken to avoid tickling a bug with SunC++'s preprocessor. + (ACE_reinterpret_cast (ACE_recursive_thread_mutex_t *, ACE_OS_Object_Manager::preallocated_object[ACE_TSS_KEY_LOCK])) != 0) ACE_OS_Object_Manager::print_error_message ( __LINE__, ACE_LIB_TEXT ("ACE_TSS_KEY_LOCK")); # if defined (ACE_HAS_THREAD_SPECIFIC_STORAGE) ACE_OS_PREALLOCATE_OBJECT (ACE_recursive_thread_mutex_t, ACE_TSS_BASE_LOCK) - if (ACE_OS::recursive_mutex_init (ACE_reinterpret_cast ( - ACE_recursive_thread_mutex_t *, - ACE_OS_Object_Manager::preallocated_object[ - ACE_TSS_BASE_LOCK])) != 0) + if (ACE_OS::recursive_mutex_init + // This line must not be broken to avoid tickling a bug with SunC++'s preprocessor. + (ACE_reinterpret_cast (ACE_recursive_thread_mutex_t *, ACE_OS_Object_Manager::preallocated_object[ACE_TSS_BASE_LOCK])) != 0) ACE_OS_Object_Manager::print_error_message ( __LINE__, ACE_LIB_TEXT ("ACE_TSS_BASE_LOCK")); # endif /* ACE_HAS_THREAD_SPECIFIC_STORAGE */ @@ -6906,29 +6901,27 @@ ACE_OS_Object_Manager::fini (void) // Cleanup the dynamically preallocated objects. # if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0) # if !defined(ACE_HAS_BROKEN_PREALLOCATED_OBJECTS_AFTER_FORK) - if (ACE_OS::thread_mutex_destroy (ACE_reinterpret_cast ( - ACE_thread_mutex_t *, - ACE_OS_Object_Manager::preallocated_object[ACE_OS_MONITOR_LOCK])) != 0) + if (ACE_OS::thread_mutex_destroy + // This line must not be broken to avoid tickling a bug with SunC++'s preprocessor. + (ACE_reinterpret_cast (ACE_thread_mutex_t *, ACE_OS_Object_Manager::preallocated_object[ACE_OS_MONITOR_LOCK])) != 0) ACE_OS_Object_Manager::print_error_message ( __LINE__, ACE_LIB_TEXT ("ACE_OS_MONITOR_LOCK")); # endif /* ! ACE_HAS_BROKEN_PREALLOCATED_OBJECTS_AFTER_FORK */ ACE_OS_DELETE_PREALLOCATED_OBJECT (ACE_thread_mutex_t, ACE_OS_MONITOR_LOCK) # if !defined(ACE_HAS_BROKEN_PREALLOCATED_OBJECTS_AFTER_FORK) - if (ACE_OS::recursive_mutex_destroy (ACE_reinterpret_cast ( - ACE_recursive_thread_mutex_t *, - ACE_OS_Object_Manager::preallocated_object[ - ACE_TSS_CLEANUP_LOCK])) != 0) + if (ACE_OS::recursive_mutex_destroy + // This line must not be broken to avoid tickling a bug with SunC++'s preprocessor. + (ACE_reinterpret_cast (ACE_recursive_thread_mutex_t *, ACE_OS_Object_Manager::preallocated_object[ACE_TSS_CLEANUP_LOCK])) != 0) ACE_OS_Object_Manager::print_error_message ( __LINE__, ACE_LIB_TEXT ("ACE_TSS_CLEANUP_LOCK")); # endif /* ! ACE_HAS_BROKEN_PREALLOCATED_OBJECTS_AFTER_FORK */ ACE_OS_DELETE_PREALLOCATED_OBJECT (ACE_recursive_thread_mutex_t, ACE_TSS_CLEANUP_LOCK) # if !defined(ACE_HAS_BROKEN_PREALLOCATED_OBJECTS_AFTER_FORK) - if (ACE_OS::thread_mutex_destroy (ACE_reinterpret_cast ( - ACE_thread_mutex_t *, - ACE_OS_Object_Manager::preallocated_object - [ACE_LOG_MSG_INSTANCE_LOCK])) != 0) + if (ACE_OS::thread_mutex_destroy + // This line must not be broken to avoid tickling a bug with SunC++'s preprocessor. + (ACE_reinterpret_cast (ACE_thread_mutex_t *, ACE_OS_Object_Manager::preallocated_object [ACE_LOG_MSG_INSTANCE_LOCK])) != 0) ACE_OS_Object_Manager::print_error_message ( __LINE__, ACE_LIB_TEXT ("ACE_LOG_MSG_INSTANCE_LOCK ")); # endif /* ! ACE_HAS_BROKEN_PREALLOCATED_OBJECTS_AFTER_FORK */ @@ -6936,10 +6929,9 @@ ACE_OS_Object_Manager::fini (void) ACE_LOG_MSG_INSTANCE_LOCK) # if defined (ACE_HAS_TSS_EMULATION) # if !defined(ACE_HAS_BROKEN_PREALLOCATED_OBJECTS_AFTER_FORK) - if (ACE_OS::recursive_mutex_destroy (ACE_reinterpret_cast ( - ACE_recursive_thread_mutex_t *, - ACE_OS_Object_Manager::preallocated_object[ - ACE_TSS_KEY_LOCK])) != 0) + if (ACE_OS::recursive_mutex_destroy + // This line must not be broken to avoid tickling a bug with SunC++'s preprocessor. + (ACE_reinterpret_cast (ACE_recursive_thread_mutex_t *, ACE_OS_Object_Manager::preallocated_object[ACE_TSS_KEY_LOCK])) != 0) ACE_OS_Object_Manager::print_error_message ( __LINE__, ACE_LIB_TEXT ("ACE_TSS_KEY_LOCK")); # endif /* ! ACE_HAS_BROKEN_PREALLOCATED_OBJECTS_AFTER_FORK */ @@ -6947,10 +6939,9 @@ ACE_OS_Object_Manager::fini (void) ACE_TSS_KEY_LOCK) # if defined (ACE_HAS_THREAD_SPECIFIC_STORAGE) # if !defined(ACE_HAS_BROKEN_PREALLOCATED_OBJECTS_AFTER_FORK) - if (ACE_OS::recursive_mutex_destroy (ACE_reinterpret_cast ( - ACE_recursive_thread_mutex_t *, - ACE_OS_Object_Manager::preallocated_object[ - ACE_TSS_BASE_LOCK])) != 0) + if (ACE_OS::recursive_mutex_destroy + // This line must not be broken to avoid tickling a bug with SunC++'s preprocessor. + (ACE_reinterpret_cast (ACE_recursive_thread_mutex_t *, ACE_OS_Object_Manager::preallocated_object[ACE_TSS_BASE_LOCK])) != 0) ACE_OS_Object_Manager::print_error_message ( __LINE__, ACE_LIB_TEXT ("ACE_TSS_BASE_LOCK")); # endif /* ! ACE_HAS_BROKEN_PREALLOCATED_OBJECTS_AFTER_FORK */ @@ -756,7 +756,7 @@ typedef u_long ACE_pri_t; // pHILE+ calls the DIR struct XDIR instead # if !defined (ACE_PSOS_DIAB_PPC) -typedef XDIR DIR; +typedef XDIR ACE_DIR; # endif /* !defined (ACE_PSOS_DIAB_PPC) */ // Use pSOS semaphores, wrapped . . . @@ -4078,9 +4078,14 @@ extern "C" # define ACE_MAP_FIXED MAP_FIXED # endif /* ! ACE_MAP_FIXED */ -# if defined (ACE_LACKS_UTSNAME_T) -# define _SYS_NMLN 257 -struct utsname +#if defined (ACE_LACKS_UTSNAME_T) +# if !defined (SYS_NMLN) +# define SYS_NMLN 257 +# endif /* SYS_NMLN */ +# if !defined (_SYS_NMLN) +# define _SYS_NMLN SYS_NMLN +# endif /* _SYS_NMLN */ +struct ACE_utsname { ACE_TCHAR sysname[_SYS_NMLN]; ACE_TCHAR nodename[_SYS_NMLN]; @@ -4090,6 +4095,7 @@ struct utsname }; # else # include /**/ <sys/utsname.h> +typedef struct utsname ACE_utsname; # endif /* ACE_LACKS_UTSNAME_T */ // Increase the range of "address families". Please note that this @@ -5433,7 +5439,7 @@ public: //@} //@{ @name Wrappers to obtain configuration info - static int uname (struct utsname *name); + static int uname (ACE_utsname *name); static long sysinfo (int cmd, char *buf, long count); @@ -8782,7 +8782,7 @@ ACE_OS::creat (const ACE_TCHAR *filename, mode_t mode) // string literals, and some compilers, e.g., g++, don't handle those // efficiently in unused inline functions. ACE_INLINE int -ACE_OS::uname (struct utsname *name) +ACE_OS::uname (ACE_utsname *name) { ACE_OS_TRACE ("ACE_OS::uname"); #if defined (ACE_HAS_PACE) @@ -8830,7 +8830,7 @@ ACE_OS::hostname (char name[], size_t maxnamelen) return 0; } #else /* ACE_HAS_PHARLAP */ - struct utsname host_info; + ACE_utsname host_info; if (ACE_OS::uname (&host_info) == -1) return -1; diff --git a/ace/OS_Dirent.cpp b/ace/OS_Dirent.cpp index 7f7996953e3..6f7bfcd3f69 100644 --- a/ace/OS_Dirent.cpp +++ b/ace/OS_Dirent.cpp @@ -9,11 +9,11 @@ ACE_RCSID(ace, OS_Dirent, "$Id$") # include "ace/OS_Dirent.inl" #endif /* ACE_HAS_INLINED_OS_CALLS */ -DIR * +ACE_DIR * ACE_OS_Dirent::opendir_emulation (const ACE_TCHAR *filename) { #if defined (ACE_WIN32) - DIR *dir; + ACE_DIR *dir; ACE_TCHAR extra[3] = {0,0,0}; /* @@ -46,7 +46,7 @@ ACE_OS_Dirent::opendir_emulation (const ACE_TCHAR *filename) } } - ACE_NEW_RETURN (dir, DIR, 0); + ACE_NEW_RETURN (dir, ACE_DIR, 0); ACE_NEW_RETURN (dir->directory_name_, ACE_TCHAR[lastchar + ACE_OS_String::strlen (extra) + 1], 0); @@ -63,7 +63,7 @@ ACE_OS_Dirent::opendir_emulation (const ACE_TCHAR *filename) } void -ACE_OS_Dirent::closedir_emulation (DIR *d) +ACE_OS_Dirent::closedir_emulation (ACE_DIR *d) { #if defined (ACE_WIN32) if (d->current_handle_ != INVALID_HANDLE_VALUE) @@ -77,7 +77,7 @@ ACE_OS_Dirent::closedir_emulation (DIR *d) } struct dirent * -ACE_OS_Dirent::readdir_emulation (DIR *d) +ACE_OS_Dirent::readdir_emulation (ACE_DIR *d) { #if defined (ACE_WIN32) if (!d->started_reading_) diff --git a/ace/OS_Dirent.h b/ace/OS_Dirent.h index 4f19fb76643..8471267d8f2 100644 --- a/ace/OS_Dirent.h +++ b/ace/OS_Dirent.h @@ -32,14 +32,14 @@ # include /**/ <dirent.h> #endif /* !ACE_WIN32 && !ACE_PSOS */ -// At least compile on some of the platforms without DIR info yet. +// At least compile on some of the platforms without <ACE_DIR> info yet. # if !defined (ACE_HAS_DIRENT) -typedef int DIR; +typedef int ACE_DIR; struct dirent { }; # endif /* ACE_HAS_DIRENT */ -#if defined (ACE_WIN32) +#if defined (ACE_LACKS_STRUCT_DIR) struct dirent { unsigned short d_ino; unsigned short d_off; @@ -47,7 +47,7 @@ struct dirent { const ACE_TCHAR *d_name; }; -struct DIR { +struct ACE_DIR { ACE_TCHAR *directory_name_; // The name of the directory we are looking into @@ -63,12 +63,13 @@ struct DIR { int started_reading_; // A flag to remember if we started reading already. }; -#elif defined (ACE_PSOS) +#elif defined (ACE_PSOS) && !defined (ACE_PSOS_DIAB_PPC) // pHILE+ calls the DIR struct XDIR instead -# if !defined (ACE_PSOS_DIAB_PPC) -typedef XDIR DIR; -# endif /* !defined (ACE_PSOS_DIAB_PPC) */ -#endif /* ACE_WIN32 && ACE_PSOS */ +# +typedef XDIR ACE_DIR; +#else +typedef DIR ACE_DIR; +# endif /* ACE_LACKS_STRUCT_DIR */ #if defined rewinddir # undef rewinddir @@ -83,22 +84,22 @@ typedef XDIR DIR; class ACE_OS_Export ACE_OS_Dirent { public: - static DIR *opendir (const ACE_TCHAR *filename); - static void closedir (DIR *); - static struct dirent *readdir (DIR *); - static int readdir_r (DIR *dirp, + static ACE_DIR *opendir (const ACE_TCHAR *filename); + static void closedir (ACE_DIR *); + static struct dirent *readdir (ACE_DIR *); + static int readdir_r (ACE_DIR *dirp, struct dirent *entry, struct dirent **result); - static long telldir (DIR *); - static void seekdir (DIR *, + static long telldir (ACE_DIR *); + static void seekdir (ACE_DIR *, long loc); - static void rewinddir (DIR *); + static void rewinddir (ACE_DIR *); private: // Win32 emulation functions static DIR *opendir_emulation (const ACE_TCHAR *filename); - static void closedir_emulation (DIR *); - static struct dirent *readdir_emulation (DIR *); + static void closedir_emulation (ACE_DIR *); + static struct dirent *readdir_emulation (ACE_DIR *); }; # if defined (ACE_HAS_INLINED_OSCALLS) diff --git a/ace/OS_Dirent.inl b/ace/OS_Dirent.inl index 0ffc2dcfe7f..a56b0ae58c6 100644 --- a/ace/OS_Dirent.inl +++ b/ace/OS_Dirent.inl @@ -4,7 +4,7 @@ #if defined (ACE_HAS_PACE) #include /**/ "pace/dirent.h" #endif /* ACE_HAS_PACE */ -ACE_INLINE DIR * +ACE_INLINE ACE_DIR * ACE_OS_Dirent::opendir (const ACE_TCHAR *filename) { #if defined (ACE_HAS_PACE) && !defined (ACE_WIN32) @@ -12,11 +12,11 @@ ACE_OS_Dirent::opendir (const ACE_TCHAR *filename) #elif defined (ACE_HAS_DIRENT) # if defined (ACE_PSOS) - // The pointer to the DIR buffer must be passed to ACE_OS_Dirent::closedir + // The pointer to the <ACE_DIR> buffer must be passed to ACE_OS_Dirent::closedir // in order to free it and avoid a memory leak. - DIR *dir; + ACE_DIR *dir; u_long result; - ACE_NEW_RETURN (dir, DIR, 0); + ACE_NEW_RETURN (dir, ACE_DIR, 0); # if defined (ACE_PSOS_DIAB_PPC) result = ::open_dir (ACE_const_cast (char *, filename), &(dir->xdir)); # else @@ -44,7 +44,7 @@ ACE_OS_Dirent::opendir (const ACE_TCHAR *filename) } ACE_INLINE void -ACE_OS_Dirent::closedir (DIR *d) +ACE_OS_Dirent::closedir (ACE_DIR *d) { #if defined (ACE_HAS_PACE) && !defined (ACE_WIN32) pace_closedir (d); @@ -80,7 +80,7 @@ ACE_OS_Dirent::closedir (DIR *d) } ACE_INLINE struct dirent * -ACE_OS_Dirent::readdir (DIR *d) +ACE_OS_Dirent::readdir (ACE_DIR *d) { #if defined (ACE_HAS_PACE) && !defined (ACE_WIN32) return pace_readdir (d); @@ -122,9 +122,9 @@ ACE_OS_Dirent::readdir (DIR *d) } ACE_INLINE int -ACE_OS_Dirent::readdir_r (DIR *dirp, - struct dirent *entry, - struct dirent **result) +ACE_OS_Dirent::readdir_r (ACE_DIR *dirp, + struct dirent *entry, + struct dirent **result) { #if defined (ACE_HAS_PACE) && !defined (ACE_WIN32) return pace_readdir_r (dirp, entry, result); @@ -165,7 +165,7 @@ ACE_OS_Dirent::readdir_r (DIR *dirp, } ACE_INLINE long -ACE_OS_Dirent::telldir (DIR *d) +ACE_OS_Dirent::telldir (ACE_DIR *d) { #if defined (ACE_HAS_DIRENT) && !defined (ACE_LACKS_TELLDIR) return ::telldir (d); @@ -176,7 +176,7 @@ ACE_OS_Dirent::telldir (DIR *d) } ACE_INLINE void -ACE_OS_Dirent::seekdir (DIR *d, long loc) +ACE_OS_Dirent::seekdir (ACE_DIR *d, long loc) { #if defined (ACE_HAS_DIRENT) && !defined (ACE_LACKS_SEEKDIR) ::seekdir (d, loc); @@ -187,7 +187,7 @@ ACE_OS_Dirent::seekdir (DIR *d, long loc) } ACE_INLINE void -ACE_OS_Dirent::rewinddir (DIR *d) +ACE_OS_Dirent::rewinddir (ACE_DIR *d) { #if defined (ACE_HAS_PACE) && !defined (ACE_WIN32) pace_rewinddir (d); diff --git a/ace/Synch.cpp b/ace/Synch.cpp index 5949734dcdb..01a446cd323 100644 --- a/ace/Synch.cpp +++ b/ace/Synch.cpp @@ -501,9 +501,13 @@ ACE_Recursive_Thread_Mutex::get_nesting_level (void) // ACE_TRACE ("ACE_Recursive_Thread_Mutex::get_nesting_level"); #if defined (ACE_HAS_WINCE) || defined (VXWORKS) || defined (ACE_PSOS) ACE_NOTSUP_RETURN (-1); -#elif defined (ACE_HAS_RECURSIVE_MUTEXES) +#elif defined (ACE_HAS_RECURSIVE_MUTEXES) +# if defined (ACE_WIN32) // This is really a Win32-ism... return this->recursive_mutex_.RecursionCount; +# else + ACE_NOTSUP_RETURN (-1); +# endif /* ACE_HAS_RECURSIVE_MUTEXES */ #else int nesting_level = 0; ACE_OS::mutex_lock (&this->recursive_mutex_.nesting_mutex_); diff --git a/ace/config-sunos5.6.h b/ace/config-sunos5.6.h index a4fe4fae410..e08dd388545 100644 --- a/ace/config-sunos5.6.h +++ b/ace/config-sunos5.6.h @@ -39,6 +39,74 @@ extern "C" int madvise(caddr_t, size_t, int); #endif /* _POSIX_C_SOURCE > 2 || __EXTENSIONS__ */ +// Support for the SunC++ 5.2 compiler. +#if defined (__SUNPRO_CC) && __SUNPRO_CC > 0x510 +#ifdef ACE_LACKS_ACE_IOSTREAM +#undef ACE_LACKS_ACE_IOSTREAM +#endif /* ACE_LACKS_ACE_IOSTREAM */ +#ifndef ACE_LACKS_UNBUFFERED_STREAMBUF +#define ACE_LACKS_UNBUFFERED_STREAMBUF 1 +#endif /* ACE_LACKS_UNBUFFERED_STREAMBUF */ +#ifndef ACE_TEMPLATES_REQUIRE_SOURCE +#define ACE_TEMPLATES_REQUIRE_SOURCE 1 +#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ +#ifndef ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION +#define ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION 1 +#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ +#ifndef ACE_HAS_STD_TEMPLATE_SPECIALIZATION +#define ACE_HAS_STD_TEMPLATE_SPECIALIZATION 1 +#endif /* ACE_HAS_STD_TEMPLATE_SPECIALIZATION */ +#ifndef ACE_HAS_ANSI_CASTS +#define ACE_HAS_ANSI_CASTS 1 +#endif /* ACE_HAS_ANSI_CASTS */ +#ifndef ACE_HAS_TEMPLATE_TYPEDEFS +#define ACE_HAS_TEMPLATE_TYPEDEFS 1 +#endif /* ACE_HAS_TEMPLATE_TYPEDEFS */ +#ifndef ACE_HAS_TYPENAME_KEYWORD +#define ACE_HAS_TYPENAME_KEYWORD 1 +#endif /* ACE_HAS_TYPENAME_KEYWORD */ +#ifndef ACE_HAS_USING_KEYWORD +#define ACE_HAS_USING_KEYWORD 1 +#endif /* ACE_HAS_USING_KEYWORD */ +#ifndef ACE_HAS_THR_C_DEST +#define ACE_HAS_THR_C_DEST 1 +#endif /* ACE_HAS_THR_C_DEST */ +#ifndef ACE_HAS_THR_C_FUNC +#define ACE_HAS_THR_C_FUNC 1 +#endif /* ACE_HAS_THR_C_FUNC */ +#ifndef ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES +#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES 1 +#endif /* ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES */ +#ifndef ACE_HAS_SIG_C_FUNC +#define ACE_HAS_SIG_C_FUNC 1 +#endif /* ACE_HAS_SIG_C_FUNC */ +#ifndef ACE_HAS_STDCPP_STL_INCLUDES +#define ACE_HAS_STDCPP_STL_INCLUDES 1 +#endif /* ACE_HAS_STDCPP_STL_INCLUDES */ +#ifndef ACE_HAS_STRING_CLASS +#define ACE_HAS_STRING_CLASS 1 +#endif /* ACE_HAS_STRING_CLASS */ +#ifndef ACE_HAS_STANDARD_CPP_LIBRARY +#define ACE_HAS_STANDARD_CPP_LIBRARY 1 +#endif /* ACE_HAS_STANDARD_CPP_LIBRARY */ +#ifndef ACE_HAS_STDCPP_STL_INCLUDES +#define ACE_HAS_STDCPP_STL_INCLUDES 1 +#endif /* ACE_HAS_STDCPP_STL_INCLUDES */ +#ifndef ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB +#define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1 +#endif /* ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB */ +#ifndef ACE_HAS_TEMPLATE_SPECIALIZATION +#define ACE_HAS_TEMPLATE_SPECIALIZATION 1 +#endif /* ACE_HAS_TEMPLATE_SPECIALIZATION */ +#ifndef ACE_LACKS_IOSTREAM_FX +#define ACE_LACKS_IOSTREAM_FX 1 +#endif /* ACE_LACKS_IOSTREAM_FX */ +#ifndef ACE_LACKS_LINEBUFFERED_STREAMBUF +#define ACE_LACKS_LINEBUFFERED_STREAMBUF 1 +#endif /* ACE_LACKS_LINEBUFFERED_STREAMBUF */ + +#endif /* defined (__SUNPRO_CC) && __SUNPRO_CC > 0x510 */ + // SunOS 5.6 has AIO calls. #if !defined (ACE_HAS_AIO_CALLS) #define ACE_HAS_AIO_CALLS diff --git a/ace/config-sunos5.8.h b/ace/config-sunos5.8.h index b0a20ee8a67..fd5c0054691 100644 --- a/ace/config-sunos5.8.h +++ b/ace/config-sunos5.8.h @@ -12,4 +12,10 @@ #include "ace/config-sunos5.7.h" +# if defined (_POSIX_PTHREAD_SEMANTICS) +#ifdef ACE_LACKS_RWLOCK_T +#undef ACE_LACKS_RWLOCK_T +#endif /* ACE_LACKS_RWLOCK_T */ +#endif /* _POSIX_PTHREAD_SEMANTICS */ + #endif /* ACE_CONFIG_H */ diff --git a/ace/config-win32-common.h b/ace/config-win32-common.h index 298243cde78..6fe7289c31a 100644 --- a/ace/config-win32-common.h +++ b/ace/config-win32-common.h @@ -503,6 +503,7 @@ typedef unsigned long long ACE_UINT64; #define ACE_SIZEOF_WCHAR 2 #define ACE_HAS_MUTEX_TIMEOUTS +#define ACE_LACKS_STRUCT_DIR #include "ace/post.h" #endif /* ACE_CONFIG_WIN32_COMMON_H */ diff --git a/apps/Orbix-Examples/Event_Comm/Consumer/Notification_Receiver_Handler.cpp b/apps/Orbix-Examples/Event_Comm/Consumer/Notification_Receiver_Handler.cpp index f74b09ae508..bf3a61b3aa5 100644 --- a/apps/Orbix-Examples/Event_Comm/Consumer/Notification_Receiver_Handler.cpp +++ b/apps/Orbix-Examples/Event_Comm/Consumer/Notification_Receiver_Handler.cpp @@ -58,7 +58,7 @@ Notification_Receiver_Handler::Notification_Receiver_Handler (int argc, char *ar CORBA::Orbix.setDiagnostics (0); - utsname name; + ACE_utsname name; // Make the marker name be the "/hostname/processid" ACE_OS::uname (&name); diff --git a/apps/Orbix-Examples/Logger/Logger.cpp b/apps/Orbix-Examples/Logger/Logger.cpp index 429f9abf5c5..020dd6a38ae 100644 --- a/apps/Orbix-Examples/Logger/Logger.cpp +++ b/apps/Orbix-Examples/Logger/Logger.cpp @@ -23,7 +23,7 @@ Logger::Logger (char *server, size_t max_message_size) ip_ (0), pid_ (ACE_OS::getpid ()) { - struct utsname name; + ACE_utsname name; #if 0 // Could also use sysinfo(2)... diff --git a/bin/envinfo.cpp b/bin/envinfo.cpp index 2ba90817e43..ff05e328f48 100644 --- a/bin/envinfo.cpp +++ b/bin/envinfo.cpp @@ -12,7 +12,7 @@ main (int, ACE_TCHAR *[]) << ACE::minor_version() << "." << ACE::beta_version() << "\n"; - struct utsname uname; + ACE_utsname uname; ACE_OS::uname(&uname); cerr << "OS: " << uname.sysname << " " diff --git a/examples/Reactor/Multicast/Log_Wrapper.cpp b/examples/Reactor/Multicast/Log_Wrapper.cpp index 054dfc298fb..496853a5062 100644 --- a/examples/Reactor/Multicast/Log_Wrapper.cpp +++ b/examples/Reactor/Multicast/Log_Wrapper.cpp @@ -22,7 +22,7 @@ int Log_Wrapper::open (const int port, const char *mcast_addr) { struct hostent *host_info; - struct utsname host_data; + ACE_utsname host_data; if (ACE_OS::uname (&host_data) < 0) return -1; diff --git a/include/makeinclude/platform_sunos5_sunc++.GNU b/include/makeinclude/platform_sunos5_sunc++.GNU index 5818885bc66..e39d5f586de 100644 --- a/include/makeinclude/platform_sunos5_sunc++.GNU +++ b/include/makeinclude/platform_sunos5_sunc++.GNU @@ -94,7 +94,12 @@ else # ! 4.2 #### CC 5.0 or later #### Inlining appears to cause link problems with early releases of #### CC 5.0. - inline = 0 + ifeq (C++ 5.2,$(findstring C++ 5.2,$(CC_VERSION))) + inline = 1 + exceptions = 1 + else + inline = 0 + endif CCFLAGS += $(CFLAGS) diff --git a/performance-tests/Misc/basic_perf.cpp b/performance-tests/Misc/basic_perf.cpp index fc208461471..bfad156747b 100644 --- a/performance-tests/Misc/basic_perf.cpp +++ b/performance-tests/Misc/basic_perf.cpp @@ -555,7 +555,7 @@ main (int argc, char *argv[]) if (get_options (argc, argv)) ACE_OS::exit (-1); - struct utsname name; + ACE_utsname name; if (ACE_OS::uname (&name) != -1) ACE_DEBUG ((LM_INFO, "%s (%s), %s %s at %T\n", diff --git a/tests/Dirent_Test.cpp b/tests/Dirent_Test.cpp index 79869e1613e..d6c71b313e7 100644 --- a/tests/Dirent_Test.cpp +++ b/tests/Dirent_Test.cpp @@ -31,7 +31,7 @@ main (int, ACE_TCHAR *[]) ACE_START_TEST (ACE_TEXT ("Dirent_Test")); int status = 0; - DIR *directory = ACE_OS::opendir (ACE_TEXT ("../tests")); + ACE_DIR *directory = ACE_OS::opendir (ACE_TEXT ("../tests")); int entrycount = 0; for (; ACE_OS::readdir(directory) != 0; entrycount++); diff --git a/tests/Enum_Interfaces_Test.cpp b/tests/Enum_Interfaces_Test.cpp index c08692010a4..bbf9097f2b8 100644 --- a/tests/Enum_Interfaces_Test.cpp +++ b/tests/Enum_Interfaces_Test.cpp @@ -38,8 +38,8 @@ main (int, ACE_TCHAR *[]) { ACE_START_TEST (ACE_TEXT ("Enum_Interfaces_Test")); - struct utsname uname; - ACE_OS::uname(&uname); + ACE_utsname uname; + ACE_OS::uname (&uname); ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Machine: %s running on %s\n"), uname.nodename, uname.machine )); ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Platform: %s, %s, %s\n"), diff --git a/tests/SOCK_Connector_Test.cpp b/tests/SOCK_Connector_Test.cpp index 42e347cf26f..0d31cd38452 100644 --- a/tests/SOCK_Connector_Test.cpp +++ b/tests/SOCK_Connector_Test.cpp @@ -80,7 +80,7 @@ find_another_host (ACE_TCHAR other_host[]) #if !defined (ACE_LACKS_GETHOSTENT) // These gethost-type things don't work everywhere. struct hostent *h; - struct utsname un; + ACE_utsname un; ACE_OS::uname (&un); |