diff options
author | schmidt <douglascraigschmidt@users.noreply.github.com> | 1997-01-17 07:53:32 +0000 |
---|---|---|
committer | schmidt <douglascraigschmidt@users.noreply.github.com> | 1997-01-17 07:53:32 +0000 |
commit | 7e7e0801f1305b1fe2a0e5ff4b0cc022077f73a6 (patch) | |
tree | 4024d7c33559faecd57832c74e5f650c7bf80e49 | |
parent | f498ec3072a4f20dbedadc2340592e24ed3301b7 (diff) | |
download | ATCD-7e7e0801f1305b1fe2a0e5ff4b0cc022077f73a6.tar.gz |
*** empty log message ***
-rw-r--r-- | ChangeLog-97a | 18 | ||||
-rw-r--r-- | README | 1 | ||||
-rw-r--r-- | ace/OS.cpp | 37 | ||||
-rw-r--r-- | ace/OS.h | 18 | ||||
-rw-r--r-- | ace/OS.i | 72 | ||||
-rw-r--r-- | ace/README | 6 | ||||
-rw-r--r-- | ace/SOCK_Acceptor.cpp | 6 | ||||
-rw-r--r-- | ace/Synch.h | 4 | ||||
-rw-r--r-- | ace/Timer_Queue.h | 2 | ||||
-rw-r--r-- | ace/config-aix-3.2.5.h | 2 | ||||
-rw-r--r-- | ace/config-aix-4.1.x.h | 2 | ||||
-rw-r--r-- | ace/config-irix6.2-sgic++.h | 15 | ||||
-rw-r--r-- | ace/config-linux-lxpthreads.h | 37 | ||||
-rw-r--r-- | ace/config-osf1-4.0-g++.h | 2 | ||||
-rw-r--r-- | ace/config-osf1-4.0.h | 2 | ||||
-rw-r--r-- | ace/config-unixware-2.01-g++.h | 2 | ||||
-rw-r--r-- | examples/Service_Configurator/IPC-tests/server/Makefile | 4 | ||||
-rw-r--r-- | include/makeinclude/platform_irix6.2_sgic++.GNU | 6 | ||||
-rw-r--r-- | include/makeinclude/platform_linux_lxpthread.GNU | 6 | ||||
-rw-r--r-- | include/makeinclude/platform_linux_lxpthreads.GNU | 6 | ||||
-rw-r--r-- | include/makeinclude/rules.local.GNU | 10 | ||||
-rw-r--r-- | include/makeinclude/wrapper_macros.GNU | 3 | ||||
-rw-r--r-- | netsvcs/clients/Tokens/invariant/invariant.cpp | 1 | ||||
-rw-r--r-- | netsvcs/clients/Tokens/manual/manual.cpp | 4 | ||||
-rw-r--r-- | netsvcs/lib/Makefile | 2 |
25 files changed, 217 insertions, 51 deletions
diff --git a/ChangeLog-97a b/ChangeLog-97a index b7076fe3bf2..c99c2a6ec8a 100644 --- a/ChangeLog-97a +++ b/ChangeLog-97a @@ -1,5 +1,23 @@ +Fri Jan 17 01:16:32 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu> + + * ace/OS.h: Added an equivalent set of + ACE_LSOCK_{STREAM,ACCEPTOR,CONNECTOR} macros to complement the + ones for ACE_SOCK_*. Thanks to Gonzalo Diethelm + <gonzo@ing.puc.cl> for suggesting this. + Thu Jan 16 17:03:47 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu> + * include/makeinclude: Added support for shared object files + on Linux. Thanks to Marius Kjeldahl <mariusk@sn.no, + marius@funcom.com> for his help with this. + + * ace: Merged in the IRIX support, mainly the missing netdb reentrant + functions. Thanks to Gonzalo Diethelm <gonzo@ing.puc.cl> + and Carlos O'Ryan <coryan@mat.puc.cl> for their help. + + * ace/Timer_{List,Heap,Queue}: Changed iterator() to iter() to + avoid name clashes with STL (ugh). + * ace/Timer_{Heap,List}.cpp: Added ACE_BUILD_DLL so that things will link. Thanks to John Morey for reporting this. @@ -465,6 +465,7 @@ Anthony McConnell <Tonym@datel.demon.co.uk> Mark Rabotnikov <mark@usp.elscintcorp.co.il> John Bossom <John.Bossom@Cognos.COM> Rino Simioni <sir@necsy.it> +Carlos O'Ryan <coryan@mat.puc.cl> 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/OS.cpp b/ace/OS.cpp index 7eb318d9374..2359523a971 100644 --- a/ace/OS.cpp +++ b/ace/OS.cpp @@ -14,6 +14,43 @@ #include "ace/OS.i" #endif /* ACE_HAS_INLINED_OS_CALLS */ +#if defined(ACE_MT_SAFE) && defined(ACE_LACKS_NETDB_REENTRANT_FUNCTIONS) + +int ACE_OS::netdb_mutex_inited_ = 0; + +ACE_mutex_t ACE_OS::netdb_mutex_; + +int +ACE_OS::netdb_acquire (void) +{ + if (ACE_OS::netdb_mutex_inited_ == 0) + { + if (ACE_OS::thread_mutex_init (&ACE_OS::netdb_mutex_) != 0) + ACE_ERROR_RETURN ((LM_ERROR, "%p\n", + "ACE_OS::netdb_acquire[init]"), -1); + ACE_OS::netdb_mutex_inited_ = 1; + } + + if (ACE_OS::thread_mutex_lock (&ACE_OS::netdb_mutex_) != 0) + ACE_ERROR_RETURN ((LM_ERROR, "%p\n", + "ACE_OS::netdb_acquire[lock]"), -1); + return 0; +} + +int +ACE_OS::netdb_release (void) +{ + if (ACE_OS::netdb_mutex_inited_ == 0) + ACE_ERROR_RETURN ((LM_ERROR, "%p\n", + "ACE_OS::netdb_release[inited]"), -1); + + if (ACE_OS::thread_mutex_unlock (&ACE_OS::netdb_mutex_) != 0) + ACE_ERROR_RETURN ((LM_ERROR, "%p\n", + "ACE_OS::netdb_release[unlock]"), -1); + return 0; +} +#endif /* defined(ACE_MT_SAFE) && defined(ACE_LACKS_NETDB_REENTRANT_FUNCTIONS) */ + void ACE_OS::flock_t::dump (void) const { @@ -238,6 +238,11 @@ typedef int key_t; #define ACE_SOCK_CONNECTOR ACE_SOCK_Connector #define ACE_SOCK_STREAM ACE_SOCK_Stream +// Handle ACE_LSOCK_* +#define ACE_LSOCK_ACCEPTOR ACE_LSOCK_Acceptor +#define ACE_LSOCK_CONNECTOR ACE_LSOCK_Connector +#define ACE_LSOCK_STREAM ACE_LSOCK_Stream + // Handle ACE_TLI_* #define ACE_TLI_ACCEPTOR ACE_TLI_Acceptor #define ACE_TLI_CONNECTOR ACE_TLI_Connector @@ -291,6 +296,11 @@ typedef int key_t; #define ACE_SOCK_CONNECTOR ACE_SOCK_Connector, ACE_INET_Addr #define ACE_SOCK_STREAM ACE_SOCK_Stream, ACE_INET_Addr +// Handle ACE_LSOCK_* +#define ACE_LSOCK_ACCEPTOR ACE_LSOCK_Acceptor, ACE_UNIX_Addr +#define ACE_LSOCK_CONNECTOR ACE_LSOCK_Connector, ACE_UNIX_Addr +#define ACE_LSOCK_STREAM ACE_LSOCK_Stream, ACE_UNIX_Addr + // Handle ACE_TLI_* #define ACE_TLI_ACCEPTOR ACE_TLI_Acceptor, ACE_INET_Addr #define ACE_TLI_CONNECTOR ACE_TLI_Connector, ACE_INET_Addr @@ -2448,6 +2458,14 @@ public: private: ACE_OS (void); // Ensure we can't define an instance of this class. + +#if defined (ACE_MT_SAFE) && defined (ACE_LACKS_NETDB_REENTRANT_FUNCTIONS) + static int netdb_acquire (void); + static int netdb_release (void); + + static int netdb_mutex_inited_; + static ACE_mutex_t netdb_mutex_; +#endif /* defined (ACE_MT_SAFE) && defined (ACE_LACKS_NETDB_REENTRANT_FUNCTIONS) */ }; // A useful abstraction for expressions involving operator new since @@ -2145,6 +2145,24 @@ ACE_OS::event_reset (ACE_event_t *event) #define ACE_SOCKCALL_RETURN(OP,TYPE,FAILVALUE) ACE_OSCALL_RETURN(OP,TYPE,FAILVALUE) #endif /* ACE_WIN32 */ +#if defined (ACE_MT_SAFE) && defined (ACE_LACKS_NETDB_REENTRANT_FUNCTIONS) +#define ACE_NETDBCALL_RETURN(OP,TYPE,FAILVALUE,TARGET,SIZE) \ + do \ + { \ + if (ACE_OS::netdb_acquire ()) \ + return FAILVALUE; \ + else \ + { \ + TYPE ace_result_; \ + ACE_OSCALL(OP,TYPE,FAILVALUE,ace_result_); \ + if (ace_result_ != FAILVALUE) \ + ::memcpy (TARGET, ace_result_, SIZE); \ + ACE_OS::netdb_release (); \ + return ace_result_; \ + } \ + } while(0) +#endif /* defined (ACE_MT_SAFE) && defined (ACE_LACKS_NETDB_REENTRANT_FUNCTIONS) */ + ACE_INLINE char * ACE_OS::strcat (char *s, const char *t) { @@ -2428,8 +2446,14 @@ ACE_OS::getprotobyname_r (const char *name, else return 0; #else - ACE_SOCKCALL_RETURN (::getprotobyname_r (name, result, buffer, sizeof (ACE_PROTOENT_DATA)), - struct protoent *, 0); +#if defined(ACE_LACKS_NETDB_REENTRANT_FUNCTIONS) + ACE_NETDBCALL_RETURN (::getprotobyname (name), + struct protoent *, 0, + buffer, sizeof (ACE_PROTOENT_DATA)); +#else + ACE_SOCKCALL_RETURN (::getprotobyname_r (name, result, buffer, sizeof (ACE_PROTOENT_DATA)), + struct protoent *, 0); +#endif /* ACE_LACKS_NETDB_REENTRANT_FUNCTIONS */ #endif /* defined (AIX) || defined (DIGITAL_UNIX) */ #else ACE_UNUSED_ARG(buffer); @@ -2465,8 +2489,14 @@ ACE_OS::getprotobynumber_r (int proto, else return 0; #else +#if defined(ACE_LACKS_NETDB_REENTRANT_FUNCTIONS) + ACE_NETDBCALL_RETURN (::getprotobynumber (proto), + struct protoent *, 0, + buffer, sizeof (ACE_PROTOENT_DATA)); +#else ACE_SOCKCALL_RETURN (::getprotobynumber_r (proto, result, buffer, sizeof (ACE_PROTOENT_DATA)), - struct protoent *, 0); + struct protoent *, 0); +#endif /* ACE_LACKS_NETDB_REENTRANT_FUNCTIONS */ #endif /* defined (AIX) || defined (DIGITAL_UNIX) */ #else ACE_UNUSED_ARG(buffer); @@ -2697,10 +2727,16 @@ ACE_OS::gethostbyaddr_r (const char *addr, int length, int type, return (struct hostent *) 0; } #else +#if defined(ACE_LACKS_NETDB_REENTRANT_FUNCTIONS) + ACE_NETDBCALL_RETURN (::gethostbyaddr (addr, (ACE_SOCKET_LEN) length, type), + struct hostent *, 0, + buffer, sizeof (ACE_HOSTENT_DATA)); +#else ACE_SOCKCALL_RETURN (::gethostbyaddr_r (addr, length, type, result, - buffer, sizeof (ACE_HOSTENT_DATA), - h_errnop), - struct hostent *, 0); + buffer, sizeof (ACE_HOSTENT_DATA), + h_errnop), + struct hostent *, 0); +#endif /* ACE_LACKS_NETDB_REENTRANT_FUNCTIONS */ #endif /* defined (AIX) || defined (DIGITAL_UNIX) */ #elif defined (ACE_HAS_NONCONST_GETBY) char laddr[length]; @@ -2740,9 +2776,15 @@ ACE_OS::gethostbyname_r (const char *name, hostent *result, return (struct hostent *) 0; } #else +#if defined(ACE_LACKS_NETDB_REENTRANT_FUNCTIONS) + ACE_NETDBCALL_RETURN (::gethostbyname (name), + struct hostent *, 0, + buffer, sizeof (ACE_HOSTENT_DATA)); +#else ACE_SOCKCALL_RETURN (::gethostbyname_r (name, result, buffer, sizeof (ACE_HOSTENT_DATA), h_errnop), struct hostent *, 0); +#endif /* ACE_LACKS_NETDB_REENTRANT_FUNCTIONS */ #endif /* defined (AIX) || defined (DIGITAL_UNIX) */ #elif defined (ACE_HAS_NONCONST_GETBY) char lname[::strlen (name) + 1]; @@ -2780,9 +2822,15 @@ ACE_OS::getservbyname_r (const char *svc, const char *proto, else return (struct servent *) 0; #else +#if defined(ACE_LACKS_NETDB_REENTRANT_FUNCTIONS) + ACE_NETDBCALL_RETURN (::getservbyname (svc, proto), + struct servent *, 0, + buf, sizeof (ACE_SERVENT_DATA)); +#else ACE_SOCKCALL_RETURN (::getservbyname_r (svc, proto, result, buf, - sizeof (ACE_SERVENT_DATA)), - struct servent *, 0); + sizeof (ACE_SERVENT_DATA)), + struct servent *, 0); +#endif /* ACE_LACKS_NETDB_REENTRANT_FUNCTIONS */ #endif /* defined (AIX) || defined (DIGITAL_UNIX) */ #elif defined (ACE_HAS_NONCONST_GETBY) char lsvc[::strlen (svc) + 1]; @@ -5142,7 +5190,7 @@ ACE_OS::ctime_r (const time_t *t, char *buf, int buflen) { // ACE_TRACE ("ACE_OS::ctime_r"); #if defined (ACE_HAS_REENTRANT_FUNCTIONS) && defined (ACE_MT_SAFE) -#if defined (ACE_HAS_ONLY_TWO_PARAMS_FOR_ASCTIME_R_AND_CTIME_R) +#if defined (ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R) char *result; #if defined (DIGITAL_UNIX) ACE_OSCALL (::_Pctime_r (t, buf), char *, 0, result); @@ -5153,7 +5201,7 @@ ACE_OS::ctime_r (const time_t *t, char *buf, int buflen) return buf; #else ACE_OSCALL_RETURN (::ctime_r (t, buf, buflen), char *, 0); -#endif /* defined (ACE_HAS_ONLY_TWO_PARAMS_FOR_ASCTIME_R_AND_CTIME_R) */ +#endif /* defined (ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R) */ #else char *result; ACE_OSCALL (::ctime (t), char *, 0, result); @@ -5198,7 +5246,7 @@ ACE_OS::asctime_r (const struct tm *t, char *buf, int buflen) { // ACE_TRACE ("ACE_OS::asctime_r"); #if defined (ACE_HAS_REENTRANT_FUNCTIONS) && defined (ACE_MT_SAFE) -#if defined (ACE_HAS_ONLY_TWO_PARAMS_FOR_ASCTIME_R_AND_CTIME_R) +#if defined (ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R) char *result; #if defined (DIGITAL_UNIX) ACE_OSCALL (::_Pasctime_r(t, buf), char *, 0, result); @@ -5209,7 +5257,7 @@ ACE_OS::asctime_r (const struct tm *t, char *buf, int buflen) return buf; #else ACE_OSCALL_RETURN (::asctime_r (t, buf, buflen), char *, 0); -#endif /* ACE_HAS_ONLY_TWO_PARAMS_FOR_ASCTIME_R_AND_CTIME_R */ +#endif /* ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R */ #else char *result; ACE_OSCALL (::asctime (t), char *, 0, result); diff --git a/ace/README b/ace/README index 69e94db353d..398e1f390d8 100644 --- a/ace/README +++ b/ace/README @@ -49,6 +49,7 @@ ACE_HAS_MT_SAFE_SOCKETS Sockets may be called in multi-threaded programs ACE_HAS_NONCONST_GETBY Platform uses non-const char * in calls to gethostbyaddr, gethostbyname, getservbyname ACE_HAS_OLD_MALLOC Compiler/platform uses old malloc()/free() prototypes (ugh) ACE_HAS_ONEARG_SIGWAIT sigwait() takes only one argument. +ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R Uses ctime_r & asctime_r with only two parameters vs. three. ACE_HAS_ORBIX Platform has Orbix CORBA implementation ACE_HAS_OSF_TIMOD_H Platform supports the OSF TLI timod STREAMS module ACE_HAS_POLL Platform contains <poll.h> @@ -143,11 +144,14 @@ 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_PTHREAD_THR_SIGSETMASK Platform lacks pthread_thr_sigsetmask (e.g., MVS, HP/UX, and OSF/1 3.2) ACE_LACKS_RECVMSG Platform lacks recvmsg() (e.g., Linux) -ACE_LACKS_RPC_H Platform lacks the ONC RPC header files. 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) diff --git a/ace/SOCK_Acceptor.cpp b/ace/SOCK_Acceptor.cpp index 0081bcc1f28..bd2a03177af 100644 --- a/ace/SOCK_Acceptor.cpp +++ b/ace/SOCK_Acceptor.cpp @@ -52,8 +52,10 @@ ACE_SOCK_Acceptor::dump (void) const // General purpose routine for performing server ACE_SOCK creation. int -ACE_SOCK_Acceptor::open (const ACE_Addr &local_sap, int reuse_addr, - int protocol_family, int backlog, +ACE_SOCK_Acceptor::open (const ACE_Addr &local_sap, + int reuse_addr, + int protocol_family, + int backlog, int protocol) { ACE_TRACE ("ACE_SOCK_Acceptor::open"); diff --git a/ace/Synch.h b/ace/Synch.h index 9c8214da13a..776ccf7aebf 100644 --- a/ace/Synch.h +++ b/ace/Synch.h @@ -819,10 +819,10 @@ class ACE_Export ACE_Thread_Mutex_Guard // = TITLE // This data structure is meant to be used within a method or // function... It performs automatic aquisition and release of - // an ACE_Mutex. + // an <ACE_Thread_Mutex>. // // = DESCRIPTION - // This should be a specialization of ACE_Guard, but compiler + // This should be a specialization of <ACE_Guard>, but compiler // bugs in older C++ compilers preclude this... { public: diff --git a/ace/Timer_Queue.h b/ace/Timer_Queue.h index 295adb1282e..2a49c108e61 100644 --- a/ace/Timer_Queue.h +++ b/ace/Timer_Queue.h @@ -183,7 +183,7 @@ protected: virtual void reschedule (ACE_Timer_Node *) = 0; // Reschedule an "interval" <ACE_Timer_Node>. - virtual ACE_Timer_Queue_Iterator &iterator (void) = 0; + virtual ACE_Timer_Queue_Iterator &iter (void) = 0; // Returns a pointer to this <ACE_Timer_Queue>'s iterator. virtual ACE_Timer_Node *alloc_node (void) = 0; diff --git a/ace/config-aix-3.2.5.h b/ace/config-aix-3.2.5.h index eb60aa501ea..8cf5005e16c 100644 --- a/ace/config-aix-3.2.5.h +++ b/ace/config-aix-3.2.5.h @@ -8,7 +8,7 @@ #define MAXNAMELEN 1024 -#define ACE_HAS_ONLY_TWO_PARAMS_FOR_ASCTIME_R_AND_CTIME_R +#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R #define ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS #define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES #define ACE_HAS_TEMPLATE_TYPEDEFS diff --git a/ace/config-aix-4.1.x.h b/ace/config-aix-4.1.x.h index 04b6529e0f7..0573b2413e7 100644 --- a/ace/config-aix-4.1.x.h +++ b/ace/config-aix-4.1.x.h @@ -10,7 +10,7 @@ // Compiling for AIX. #define AIX #define ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS -#define ACE_HAS_ONLY_TWO_PARAMS_FOR_ASCTIME_R_AND_CTIME_R +#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R #define _BSD 43 #define ACE_HAS_UNION_WAIT #define ACE_HAS_MULTICAST diff --git a/ace/config-irix6.2-sgic++.h b/ace/config-irix6.2-sgic++.h index aa16f2824ae..c46aa0681b5 100644 --- a/ace/config-irix6.2-sgic++.h +++ b/ace/config-irix6.2-sgic++.h @@ -24,9 +24,21 @@ // ACE supports threads. #define ACE_HAS_THREADS +// Include XtReactor into the library. +#define ACE_HAS_XT + // Platform supports getpagesize() call. #define ACE_HAS_GETPAGESIZE +// Platform supports reentrant functions (i.e., all the POSIX *_r +// functions). +#define ACE_HAS_REENTRANT_FUNCTIONS + +// Platform does not support reentrant netdb functions (getprotobyname_r, +// getprotobynumber_r, gethostbyaddr_r, gethostbyname_r, +// getservbyname_r). +#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS + //Sockets may be called in multi-threaded programs #define ACE_HAS_MT_SAFE_SOCKETS @@ -39,6 +51,9 @@ // Platform supports the tid_t type (e.g., AIX and Irix 6.2) #define ACE_HAS_TID_T +// uses ctime_r & asctime_r with only two parameters vs. three +#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R + // Platform has no implementation of pthread_condattr_setpshared(), // even though it supports pthreads! (like Irix 6.2) #define ACE_LACKS_CONDATTR_PSHARED diff --git a/ace/config-linux-lxpthreads.h b/ace/config-linux-lxpthreads.h index 735a2798e20..95676bfa3f9 100644 --- a/ace/config-linux-lxpthreads.h +++ b/ace/config-linux-lxpthreads.h @@ -1,34 +1,29 @@ /* -*- C++ -*- */ // $Id$ -// The following configuration file is designed to work for Linux -// platforms using GNU C++ and the MIT threads package. +/* The following configuration file is designed to work for Linux + platforms using GNU C++ and Xavier Leroy's pthreads package. For + more information you should check out his Web site: -/* JCEJ 12/22/96 + http://pauillac.inria.fr/~xleroy/linuxthreads/ - This is a slightly modified version of config-linux-pthreads - made to work with Xavier Leroy's pthreads package. For more - information you should check out his Web site: - http://pauillac.inria.fr/~xleroy/linuxthreads/ + The version I have installed and working is an RPM* + based on Xavier's 0.5 release. I don't know where + the tarball of 0.5 can be found, but I suspect that + Xavier's site has it... - The version I have installed and working is an RPM* - based on Xavier's 0.5 release. I don't know where - the tarball of 0.5 can be found, but I suspect that - Xavier's site has it... + * RPM == Redhat Package Management + + My system is a Caldera-based distribution with many upgraded + packages. If you don't use RPM, there is a program (rpm2cpio) + which will extract the files for "normal consumption". - * RPM == Redhat Package Management - My system is a Caldera-based distribution with many - upgraded packages. If you don't use RPM, there is - a program (rpm2cpio) which will extract the files - for "normal consumption". + You may also want to check out the "ACE On Linux" pages at: - You may also want to check out the "ACE On Linux" - pages at: http://users.deltanet.com/users/slg/ACE/ - (They were a little out of date when I last was - there however.) - */ + (They were a little out of date when I last was there + however.) */ #if !defined (ACE_CONFIG_H) #define ACE_CONFIG_H diff --git a/ace/config-osf1-4.0-g++.h b/ace/config-osf1-4.0-g++.h index 4564aa8234b..9c4f5bd498e 100644 --- a/ace/config-osf1-4.0-g++.h +++ b/ace/config-osf1-4.0-g++.h @@ -199,7 +199,7 @@ //#define ACE_PAGE_SIZE 4096 #define ACE_PAGE_SIZE 8192 -#define ACE_HAS_ONLY_TWO_PARAMS_FOR_ASCTIME_R_AND_CTIME_R +#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R #define ACE_HAS_BROKEN_IF_HEADER #define ACE_HAS_REENTRANT_FUNCTIONS diff --git a/ace/config-osf1-4.0.h b/ace/config-osf1-4.0.h index 711e3f5c547..cb01661c20b 100644 --- a/ace/config-osf1-4.0.h +++ b/ace/config-osf1-4.0.h @@ -179,7 +179,7 @@ // DJT added 6/6/96 // uses ctime_r & asctime_r with only two parameters vs. three -#define ACE_HAS_ONLY_TWO_PARAMS_FOR_ASCTIME_R_AND_CTIME_R +#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R #define ACE_HAS_BROKEN_IF_HEADER //#define ACE_HAS_REENTRANT_FUNCTIONS diff --git a/ace/config-unixware-2.01-g++.h b/ace/config-unixware-2.01-g++.h index 1e0c3e2a643..94b6db28e9b 100644 --- a/ace/config-unixware-2.01-g++.h +++ b/ace/config-unixware-2.01-g++.h @@ -14,7 +14,7 @@ #define ACE_HAS_GNU_CSTRING_H #define ACE_HAS_INLINED_OSCALLS #define ACE_HAS_MSG -#define ACE_HAS_ONLY_TWO_PARAMS_FOR_ASCTIME_R_AND_CTIME_R +#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R // Not yet sure about threads #define ACE_HAS_MT_SAFE_SOCKETS #define ACE_HAS_NONCONST_GETBY diff --git a/examples/Service_Configurator/IPC-tests/server/Makefile b/examples/Service_Configurator/IPC-tests/server/Makefile index 517d1db3e84..f46bb833aae 100644 --- a/examples/Service_Configurator/IPC-tests/server/Makefile +++ b/examples/Service_Configurator/IPC-tests/server/Makefile @@ -32,7 +32,9 @@ LIBS = -lACE VLDLIBS = $(LDLIBS:%=%$(VAR)) -BUILD = $(VLIB) $(VSHLIB) $(SHLIBA) $(VBIN) +BUILD = $(VLIB) $(VSHLIB) $(SHLIBA) $(VBIN) + +ESO = YES #---------------------------------------------------------------------------- # Include macros and targets diff --git a/include/makeinclude/platform_irix6.2_sgic++.GNU b/include/makeinclude/platform_irix6.2_sgic++.GNU index 4d774f3c3e6..ba42f9a5975 100644 --- a/include/makeinclude/platform_irix6.2_sgic++.GNU +++ b/include/makeinclude/platform_irix6.2_sgic++.GNU @@ -13,7 +13,11 @@ CC = cc CXX = CC DLD = $(CXX) LD = $(CXX) -CPPFLAGS += -ptused -prelink +pp -D_SGI_MP_SOURCE -woff 3203,3209,3161,3262,3665 +CPPFLAGS += -ptused -prelink -D_SGI_MP_SOURCE +# 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 -woff 3203,3209,3161,3262,3665 LDFLAGS += -rpath "$(WRAPPER_ROOT)/ace" -Wl,-woff,85 LIBS += -lpthread PIC = -KPIC diff --git a/include/makeinclude/platform_linux_lxpthread.GNU b/include/makeinclude/platform_linux_lxpthread.GNU index 67e517633ce..1e160271131 100644 --- a/include/makeinclude/platform_linux_lxpthread.GNU +++ b/include/makeinclude/platform_linux_lxpthread.GNU @@ -11,7 +11,7 @@ CC = gcc -w CXX = gcc -w -I. -fno-strict-prototypes -D__ACE_INLINE__ -D_MIT_POSIX_THREADS -D_POSIX_THREADS -D_POSIX_THREAD_SAFE_FUNCTIONS DLD = $(CXX) LD = $(CXX) -LIBS += -lpthread -lstdc++ +LIBS += -ldl -lpthread -lstdc++ PIC = -fPIC AR = ar ARFLAGS = ruv @@ -19,6 +19,10 @@ RANLIB = ranlib SOFLAGS = $(CPPFLAGS) -shared SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.so $< +# Added line below to support "Executable Shared Object" files (as +# needed by the service configurator). +# Marius Kjeldahl <mariusk@sn.no, marius@funcom.com> +ESOBUILD = $(COMPILEESO.cc) $(PIC) -shared -o $(VSHDIR)$*.so $< PRELIB = (echo "int main() { return 0; }" > gcctemp.c && \ $(COMPILE.cc) -o gcctemp.o gcctemp.c && \ $(LINK.cc) -o gcctemp gcctemp.o $^ $(LDFLAGS) $(LIBS); \ diff --git a/include/makeinclude/platform_linux_lxpthreads.GNU b/include/makeinclude/platform_linux_lxpthreads.GNU index 67e517633ce..1e160271131 100644 --- a/include/makeinclude/platform_linux_lxpthreads.GNU +++ b/include/makeinclude/platform_linux_lxpthreads.GNU @@ -11,7 +11,7 @@ CC = gcc -w CXX = gcc -w -I. -fno-strict-prototypes -D__ACE_INLINE__ -D_MIT_POSIX_THREADS -D_POSIX_THREADS -D_POSIX_THREAD_SAFE_FUNCTIONS DLD = $(CXX) LD = $(CXX) -LIBS += -lpthread -lstdc++ +LIBS += -ldl -lpthread -lstdc++ PIC = -fPIC AR = ar ARFLAGS = ruv @@ -19,6 +19,10 @@ RANLIB = ranlib SOFLAGS = $(CPPFLAGS) -shared SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.so $< +# Added line below to support "Executable Shared Object" files (as +# needed by the service configurator). +# Marius Kjeldahl <mariusk@sn.no, marius@funcom.com> +ESOBUILD = $(COMPILEESO.cc) $(PIC) -shared -o $(VSHDIR)$*.so $< PRELIB = (echo "int main() { return 0; }" > gcctemp.c && \ $(COMPILE.cc) -o gcctemp.o gcctemp.c && \ $(LINK.cc) -o gcctemp gcctemp.o $^ $(LDFLAGS) $(LIBS); \ diff --git a/include/makeinclude/rules.local.GNU b/include/makeinclude/rules.local.GNU index 3a66ef68b1c..2411cf9efd0 100644 --- a/include/makeinclude/rules.local.GNU +++ b/include/makeinclude/rules.local.GNU @@ -53,9 +53,17 @@ $(VDIR)%.o: %.cpp # built via the same rule. SOLINK is required for the repository under # gcc. ifndef SOLINK -$(VSHDIR)%.so: %.cpp +# I added the "Executable Shared Object (ESO)" define to separate between +# normal shared object files and executable shared object files (the kind +# that the service configurator needs to be able to function). +# 970104 Marius Kjeldahl <mariusk@sn.no, marius@funcom.com> +ifndef ESO +$(VSHDIR)%.so: %.cpp $(SOBUILD) else +$(VSHDIR)%.so: %.cpp + $(ESOBUILD) +endif $(VSHDIR)%.o: %.cpp $(COMPILE.cc) $(PIC) -o $@ $< $(VSHDIR)%.o: %.cc diff --git a/include/makeinclude/wrapper_macros.GNU b/include/makeinclude/wrapper_macros.GNU index 767fefa6d0b..21e4b6c4145 100644 --- a/include/makeinclude/wrapper_macros.GNU +++ b/include/makeinclude/wrapper_macros.GNU @@ -112,6 +112,9 @@ endif # debug COMPILE.c =$(CC) $(CFLAGS) $(CPPFLAGS) -c COMPILE.cc =$(CXX) $(CCFLAGS) $(CPPFLAGS) $(PTDIRS) -c +# 960905 Marius Kjeldahl <marius@funcom.com> +# Added the line below to be used for compiling executable shared objects +COMPILEESO.cc =$(CXX) $(CCFLAGS) $(CPPFLAGS) $(PTDIRS) LINK.c =$(LD) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $(LDLIBS) $(LIBS) LINK.cc =$(LD) $(CCFLAGS) $(CPPFLAGS) $(PTDIRS) SOLINK.cc =$(LINK_COMMAND) $(DLD) $(SOFLAGS) diff --git a/netsvcs/clients/Tokens/invariant/invariant.cpp b/netsvcs/clients/Tokens/invariant/invariant.cpp index 1b623169d64..febc2f2f244 100644 --- a/netsvcs/clients/Tokens/invariant/invariant.cpp +++ b/netsvcs/clients/Tokens/invariant/invariant.cpp @@ -18,6 +18,7 @@ #include "ace/OS.h" #include "ace/Get_Opt.h" +#include "ace/Singleton.h" #include "ace/Thread_Manager.h" #include "ace/Token_Invariants.h" diff --git a/netsvcs/clients/Tokens/manual/manual.cpp b/netsvcs/clients/Tokens/manual/manual.cpp index 4fad0dd9d57..3d3cdecf761 100644 --- a/netsvcs/clients/Tokens/manual/manual.cpp +++ b/netsvcs/clients/Tokens/manual/manual.cpp @@ -1,6 +1,6 @@ -// ============================================================================ // $Id$ +// ============================================================================ // // = LIBRARY // examples @@ -17,10 +17,10 @@ // ============================================================================ #include "ace/OS.h" - #include "ace/Get_Opt.h" #include "ace/Local_Tokens.h" #include "ace/Remote_Tokens.h" +#include "ace/Singleton.h" #include "ace/Thread_Manager.h" #include "ace/Token_Invariants.h" #include "ace/Token_Collection.h" diff --git a/netsvcs/lib/Makefile b/netsvcs/lib/Makefile index b3582e23986..5cce5f7a370 100644 --- a/netsvcs/lib/Makefile +++ b/netsvcs/lib/Makefile @@ -22,6 +22,8 @@ LIBS += -lACE BUILD = $(VLIB) $(VSHLIB) +ESO = YES + #---------------------------------------------------------------------------- # Include macros and targets #---------------------------------------------------------------------------- |