diff options
author | schmidt <douglascraigschmidt@users.noreply.github.com> | 1999-12-06 14:17:52 +0000 |
---|---|---|
committer | schmidt <douglascraigschmidt@users.noreply.github.com> | 1999-12-06 14:17:52 +0000 |
commit | a40e4b5e4cd3ffdd4778ea3cbc73d05adf7b8a65 (patch) | |
tree | be5a2755b43a7595cfe96296a27b2d013a47df5e | |
parent | 11ef1566df20b216ddc6240be0371bddf8a640f1 (diff) | |
download | ATCD-a40e4b5e4cd3ffdd4778ea3cbc73d05adf7b8a65.tar.gz |
ChangeLogTag:Mon Dec 6 07:55:05 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-rw-r--r-- | ChangeLog-99b | 10 | ||||
-rw-r--r-- | ace/ACE.cpp | 6 | ||||
-rw-r--r-- | ace/config-sunos5.7.h | 7 |
3 files changed, 21 insertions, 2 deletions
diff --git a/ChangeLog-99b b/ChangeLog-99b index abd9704b508..f8ddf9c0423 100644 --- a/ChangeLog-99b +++ b/ChangeLog-99b @@ -1,5 +1,15 @@ Mon Dec 6 07:55:05 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> + * ace/config-sunos5.7.h: Added several new #defines needed to + port ACE to 64 bit Solaris. Thanks to Dani Flexer + <dani.flexer@israel.sun.com> for these. + + * ace/ACE.cpp: Changed the implementation of count_interfaces() + to handle the fact that size_t is a 64 bit type but the + parameter to ioctl needs to be an int, which according to LP64 + is 32 bits. Thanks to Dani Flexer <dani.flexer@israel.sun.com> + for reporting this. + * netsvcs/lib/Client_Logging_Handler.cpp (handle_signal): If SIGPIPE occurs, ACE_Client_Logging_Handler::handle_signal() returns -1, thus removing svc handler from reactor. Since svc diff --git a/ace/ACE.cpp b/ace/ACE.cpp index 589fd475864..9c2b9a46dbb 100644 --- a/ace/ACE.cpp +++ b/ace/ACE.cpp @@ -2998,14 +2998,16 @@ ACE::count_interfaces (ACE_HANDLE handle, size_t &how_many) { #if defined (sparc) && defined (SIOCGIFNUM) + int tmp_how_many; // For 64 bit Solaris if (ACE_OS::ioctl (handle, SIOCGIFNUM, - (caddr_t) &how_many) == -1) + (caddr_t) &tmp_how_many) == -1) ACE_ERROR_RETURN ((LM_ERROR, ASYS_TEXT ("ACE::get_ip_interfaces:") ASYS_TEXT ("ioctl - SIOCGIFNUM failed")), -1); - return 0; + how_many = (size_t) tmp_how_many; + return 0; #elif defined (__unix) || defined (__Lynx__) || defined (_AIX) // Note: DEC CXX doesn't define "unix". BSD compatible OS: HP UX, // AIX, SunOS 4.x perform some ioctls to retrieve ifconf list of diff --git a/ace/config-sunos5.7.h b/ace/config-sunos5.7.h index a2aad889217..798dbc964ee 100644 --- a/ace/config-sunos5.7.h +++ b/ace/config-sunos5.7.h @@ -62,4 +62,11 @@ typedef unsigned long long uint64_t; #undef ACE_HAS_LIMITED_SELECT #endif /* ACE_HAS_LIMITED_SELECT */ +#if defined (__sparcv9) +#define ERRMAX 256 /* Needed for following define */ +#define ACE_LACKS_SYS_NERR +#define _LP64 +#define ACE_SIZEOF_LONG 8 /* Needed to circumvent compiler bug #4294969 */ +#endif /* __sparcv9 */ + #endif /* ACE_CONFIG_H */ |