diff options
-rw-r--r-- | ChangeLog-99b | 41 | ||||
-rw-r--r-- | ace/Env_Value_T.h | 11 | ||||
-rw-r--r-- | ace/High_Res_Timer.cpp | 2 | ||||
-rw-r--r-- | ace/IOStream.h | 22 | ||||
-rw-r--r-- | ace/Process.h | 12 | ||||
-rw-r--r-- | ace/config-irix6.x-common.h | 3 | ||||
-rw-r--r-- | ace/config-irix6.x-kcc.h | 61 | ||||
-rw-r--r-- | ace/config-osf1-4.0.h | 18 | ||||
-rw-r--r-- | include/makeinclude/platform_irix6.x_kcc.GNU | 35 | ||||
-rw-r--r-- | include/makeinclude/platform_linux_kcc.GNU | 2 | ||||
-rw-r--r-- | tests/UNIXclerk.conf | 4 | ||||
-rw-r--r-- | tests/UNIXserver.conf | 4 | ||||
-rw-r--r-- | tests/UNIXtokens.conf | 4 | ||||
-rwxr-xr-x | tests/run_tests.sh | 1 | ||||
-rw-r--r-- | tests/test_config.h | 4 |
15 files changed, 188 insertions, 36 deletions
diff --git a/ChangeLog-99b b/ChangeLog-99b index 71c1eff76c8..c1bf0c34c12 100644 --- a/ChangeLog-99b +++ b/ChangeLog-99b @@ -1,3 +1,44 @@ +Sat Jan 16 19:08:12 1999 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu> + + * ace/High_Res_Timer.cpp: Added #ifdef so high-res timers work + correctly on KCC. Thanks to Scott Snyder + <snyder@d0sgif.fnal.gov> for contributing this. + + * tests/test_config.h: Updated randomize() so that it uses a + "fixed" seed, so that it will produce "reusable" random numbers. + + * include/makeinclude/platform_linux_kcc.GNU (LD): Added the -lm + flag. Thanks to Scott Snyder <snyder@d0sgif.fnal.gov> for + contributing this. + + * tests/run_tests.sh: Added an + LD_LIBRARY_PATH=../netsvcs/lib:$LD_LIBRARY_PATH so that we can + use a relative name for the svc.conf files used in the + Time_Service_Test and Tokens_Test. + + * ace/config-irix6.x-common.h: Added support for long double for + KCC. Thanks to Scott Snyder <snyder@d0sgif.fnal.gov> for + contributing this. + + * ace/config-irix6.x-kcc.h: Added KCC support. Thanks to Scott + Snyder <snyder@d0sgif.fnal.gov> for contributing this. + + * ace/config-osf1-4.0.h: Added KCC support. Thanks to Scott + Snyder <snyder@d0sgif.fnal.gov> for contributing this. + + * ace/IOStream.h: Fixed up the PUT_CODE and GET_CODE macros so + that they work with KCC. Thanks to Scott Snyder + <snyder@d0sgif.fnal.gov> for contributing this. + + * ace/Env_Value_T.h (ACE_Convert): Added a new ACE_Convert + constructor for u_int so that TAO compiles correctly with KCC. + Thanks to Scott Snyder <snyder@d0sgif.fnal.gov> for contributing + this. + + * include/makeinclude/platform_osf1_4.0_kcc.GNU: Added a new + platform config file for KCC. Thanks to Scott Snyder + <snyder@d0sgif.fnal.gov> for contributing this. + Sat Jan 16 18:13:29 1999 Nanbor Wang <nanbor@cs.wustl.edu> * include/makeinclude/wrapper_macros.GNU: Commented out adding diff --git a/ace/Env_Value_T.h b/ace/Env_Value_T.h index 51813a93d8f..d7cd3298763 100644 --- a/ace/Env_Value_T.h +++ b/ace/Env_Value_T.h @@ -107,9 +107,16 @@ ACE_Convert (const char *s, short &si) } inline void -ACE_Convert (const char *s, unsigned short &us) +ACE_Convert (const char *s, u_short &us) { - us = ACE_static_cast (unsigned short, ACE_OS::strtol (s, 0, 10)); + us = ACE_static_cast (u_short, ACE_OS::strtol (s, 0, 10)); +} + +inline void +ACE_Convert (const char *s, u_int &i) +{ + i = ACE_static_cast (u_int, + ACE_OS::strtol (s, 0, 10)); } inline void diff --git a/ace/High_Res_Timer.cpp b/ace/High_Res_Timer.cpp index e7b34c42dac..1b405e4e09a 100644 --- a/ace/High_Res_Timer.cpp +++ b/ace/High_Res_Timer.cpp @@ -83,7 +83,7 @@ ACE_High_Res_Timer::global_scale_factor () defined (ACE_HAS_ALPHA_TIMER)) && \ !defined (ACE_HAS_HI_RES_TIMER) && \ ((defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) || \ - defined (ghs) || defined (__GNUG__)) + defined (ghs) || defined (__GNUG__) || defined (__KCC)) // Check if the global scale factor needs to be set, and do if so. if (ACE_High_Res_Timer::global_scale_factor_ == 1u) { diff --git a/ace/IOStream.h b/ace/IOStream.h index c1ecb5c9604..d98e8a3b399 100644 --- a/ace/IOStream.h +++ b/ace/IOStream.h @@ -344,6 +344,16 @@ 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) +#define GET_CODE { \ + if (ipfx (0)) \ + { \ + (*((istream*)this)) >> (v); \ + } \ + isfx (); \ + return *this; \ + } +#else #define GET_CODE { \ if (ipfx (0)) \ { \ @@ -352,6 +362,7 @@ typedef ostream& (*__omanip_)(ostream&); isfx (); \ return *this; \ } +#endif /* __KCC */ #define GET_PROT(MT,DT,CODE) GET_SIG(MT,DT) CODE #define GET_FUNC(MT,DT) GET_PROT(MT,DT,GET_CODE) @@ -360,6 +371,16 @@ 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) +#define PUT_CODE { \ + if (opfx ()) \ + { \ + (*((ostream *) this)) << (v); \ + } \ + osfx (); \ + return *this; \ + } +#else #define PUT_CODE { \ if (opfx ()) \ { \ @@ -368,6 +389,7 @@ typedef ostream& (*__omanip_)(ostream&); osfx (); \ return *this; \ } +#endif /* __KCC */ #define PUT_PROT(MT,DT,CODE) PUT_SIG(MT,DT) CODE #define PUT_FUNC(MT,DT) PUT_PROT(MT,DT,PUT_CODE) diff --git a/ace/Process.h b/ace/Process.h index 7d1eac37667..5281897e218 100644 --- a/ace/Process.h +++ b/ace/Process.h @@ -55,12 +55,16 @@ public: #endif /* ACE_WIN32 */ }; -// Default settings not part of public Iface protected: - enum { + // = Default settings not part of public Interface. + // + // @@ These sizes should be taken from the appropriate + // POSIX/system header files and/or defined dynamically. + enum + { MAX_COMMAND_LINE_OPTIONS = 128, - ENVIRONMENT_BUFFER = 8192, - MAX_ENVIRONMENT_ARGS = 128 + ENVIRONMENT_BUFFER = 16 * 1024, // 16K + MAX_ENVIRONMENT_ARGS = 512 // }; public: diff --git a/ace/config-irix6.x-common.h b/ace/config-irix6.x-common.h index 91f61f3e776..4cf818151da 100644 --- a/ace/config-irix6.x-common.h +++ b/ace/config-irix6.x-common.h @@ -19,10 +19,13 @@ // double and a long double. So, we have to hard-code this. Thanks // to Bob Laferriere <laferrie@gsao.med.ge.com> for figuring it out. #if defined (_MIPS_SIM) /* 6.X System */ +# include <sgidefs.h> # if defined (_MIPS_SIM_NABI32) && (_MIPS_SIM == _MIPS_SIM_NABI32) # define ACE_SIZEOF_LONG_DOUBLE 16 # elif defined (_MIPS_SIM_ABI32) && (_MIPS_SIM == _MIPS_SIM_ABI32) # define ACE_SIZEOF_LONG_DOUBLE 8 +# elif defined (_MIPS_SIM_ABI64) && (_MIPS_SIM == _MIPS_SIM_ABI64) +# define ACE_SIZEOF_LONG_DOUBLE 16 # elif !defined (ACE_SIZEOF_LONG_DOUBLE) # define ACE_SIZEOF_LONG_DOUBLE 8 # endif diff --git a/ace/config-irix6.x-kcc.h b/ace/config-irix6.x-kcc.h new file mode 100644 index 00000000000..2dfbfcae753 --- /dev/null +++ b/ace/config-irix6.x-kcc.h @@ -0,0 +1,61 @@ +/* -*- C++ -*- */ +// $Id$ + +// The following configuration file is designed to work for the SGI +// Indigo2EX running Irix 6.5 platform using the KAI C++ compiler. + +#ifndef ACE_CONFIG_H +#define ACE_CONFIG_H + +#include "ace/config-kcc-common.h" + + +// Platform supports the very odd IRIX 6.2 threads... +#define ACE_HAS_THREADS +#if !defined (ACE_MT_SAFE) +# define ACE_MT_SAFE 1 +#endif /* !ACE_MT_SAFE */ +#define ACE_HAS_IRIX62_THREADS + +// IRIX 6.2 supports a variant of POSIX Pthreads, supposedly POSIX 1c +#define ACE_HAS_PTHREADS +#define ACE_HAS_PTHREADS_STD +#define ACE_HAS_PTHREAD_SIGMASK + +#include "ace/config-irix6.x-common.h" + +// Needed for the threading stuff? +#include /**/ <sched.h> +#include /**/ <task.h> + +#define PTHREAD_MIN_PRIORITY PX_PRIO_MIN +#define PTHREAD_MAX_PRIORITY PX_PRIO_MAX + +// Platforms has pthread_thr_sigsetmask +#define ACE_HAS_PTHREAD_SIGMASK + +// Compiler/platform has thread-specific storage +#define ACE_HAS_THREAD_SPECIFIC_STORAGE + +// The pthread_cond_timedwait call does not reset the timer. +#define ACE_LACKS_COND_TIMEDWAIT_RESET 1 + +#define ACE_HAS_STRING_CLASS +#ifndef IRIX6 +# define IRIX6 +#endif + +// Denotes that GNU has cstring.h as standard +// which redefines memchr() +#define ACE_HAS_GNU_CSTRING_H + +// Compiler/platform supports SVR4 signal typedef. +#define ACE_HAS_IRIX_53_SIGNALS + +#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES + +// Compiler/platform supports sys_siglist array. +//#define ACE_HAS_SYS_SIGLIST + + +#endif /* ACE_CONFIG_H */ diff --git a/ace/config-osf1-4.0.h b/ace/config-osf1-4.0.h index d2e1f0fef50..116bc70063d 100644 --- a/ace/config-osf1-4.0.h +++ b/ace/config-osf1-4.0.h @@ -3,12 +3,13 @@ // The following configuration file is designed to work for the // Digital UNIX V4.0a and later platforms with either the GNU g++, DEC -// cxx 5.4 and later, or Rational RCC (2.4.1) compilers. -// It is configured to use the IEEE Std 1003.1c-1995, POSIX System -// Application Program Interface, or DCE threads (with cxx only); it -// automatically selects the proper thread interface depending on whether -// the cxx -pthread or -threads option was specified. By 4.0a the version -// is meant that is called "V4.0 464" by uname -a. +// cxx 5.4 and later, Rational RCC (2.4.1) compilers, or KAI 3.3 +// compilers. It is configured to use the IEEE Std 1003.1c-1995, +// POSIX System Application Program Interface, or DCE threads (with +// cxx only); it automatically selects the proper thread interface +// depending on whether the cxx -pthread or -threads option was +// specified. By 4.0a the version is meant that is called "V4.0 464" +// by uname -a. #ifndef ACE_CONFIG_H #define ACE_CONFIG_H @@ -67,9 +68,10 @@ # define ACE_HAS_STDCPP_STL_INCLUDES # define ACE_HAS_TEMPLATE_SPECIALIZATION # define ACE_HAS_TYPENAME_KEYWORD -#else /* ! __GNUG__ && ! __DECCXX && ! __rational__ */ +#elif defined (__KCC) +# include "ace/config-kcc-common.h" # error unsupported compiler on Digital Unix -#endif /* ! __GNUG__ && ! __DECCXX && ! __rational__ */ +#endif /* ! __GNUG__ && ! __DECCXX && ! __rational__ && !_KCC */ #if defined(_POSIX_C_SOURCE) && (_POSIX_C_SOURCE >= 199506L) // cxx with POSIX 1003.1c-1995 threads (pthreads) . . . diff --git a/include/makeinclude/platform_irix6.x_kcc.GNU b/include/makeinclude/platform_irix6.x_kcc.GNU index c37e92048fb..2e712aaccb6 100644 --- a/include/makeinclude/platform_irix6.x_kcc.GNU +++ b/include/makeinclude/platform_irix6.x_kcc.GNU @@ -2,23 +2,32 @@ # Irix 6.x with KCC 3.3f +# WARNING_FLAGS += +# 111: statement is unreachable. There's a whole bunch of these +# in the ace code. +WARNING_FLAGS += --diag_suppress 111 + debug = 1 optimize = 1 -CC = gcc -CXX = g++ -CFLAGS += $(DCFLAGS) -CCFLAGS += $(CFLAGS) -fno-implicit-templates -DCFLAGS += -g +CC = KCC +CXX = KCC +CFLAGS += -32 +CCFLAGS += $(CFLAGS) -DNULL=0 $(WARNING_FLAGS) +ifeq ($(optimize),1) +DCFLAGS += -g --backend -g3 +else +DCFLAGS += +K0 -g +endif DLD = $(CXX) LD = $(CXX) -LDFLAGS += -L$(ACE_ROOT)/ace -Wl,-dont_warn_unused +LDFLAGS += -32 -L$(ACE_ROOT)/ace -L. LIBS += -lpthread -OCFLAGS += -O2 -PIC = -fpic -# AR = ar -ARFLAGS = rv +OCFLAGS += +K3 -O2 +PIC = +AR = KCC +ARFLAGS = -o RANLIB = @true -SOFLAGS = -shared $(CPPFLAGS) -SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.o $<; \ - $(SOLINK.cc) $(LDFLAGS) -o $@ $(VSHDIR)$*.o +SOFLAGS = $(CPPFLAGS) -L$(ACE_ROOT)/ace $(ACELIB) +SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.so $< +PRELIB = @true diff --git a/include/makeinclude/platform_linux_kcc.GNU b/include/makeinclude/platform_linux_kcc.GNU index 74d7325f935..4f4289ce269 100644 --- a/include/makeinclude/platform_linux_kcc.GNU +++ b/include/makeinclude/platform_linux_kcc.GNU @@ -13,7 +13,7 @@ CCFLAGS += $(CFLAGS) -DNULL=0 DCFLAGS += +K0 -g DLD = $(CC) LD = $(CC) -LIBS += -ldl -lpthread +LIBS += -ldl -lpthread -lm EXCEPTION = --no_exceptions OCFLAGS += +K3 -O --one_instantiation_per_object $(EXCEPTION) PIC = -fPIC diff --git a/tests/UNIXclerk.conf b/tests/UNIXclerk.conf index 1f674c21678..3e1e50ac5c3 100644 --- a/tests/UNIXclerk.conf +++ b/tests/UNIXclerk.conf @@ -1,3 +1,3 @@ # Note: hostname and port number need to be concatenated separated by ":" -dynamic Logging_Strategy Service_Object * ../netsvcs/lib/netsvcs:_make_ACE_Logging_Strategy() "-s log/Time_Service_Test_Clerk.log -f OSTREAM" -dynamic Time_Server_Test Service_Object * ../netsvcs/lib/netsvcs:_make_ACE_TS_Clerk_Processor () "-h localhost:10222 -t 4" +dynamic Logging_Strategy Service_Object * netsvcs:_make_ACE_Logging_Strategy() "-s log/Time_Service_Test_Clerk.log -f OSTREAM" +dynamic Time_Server_Test Service_Object * netsvcs:_make_ACE_TS_Clerk_Processor () "-h localhost:10222 -t 4" diff --git a/tests/UNIXserver.conf b/tests/UNIXserver.conf index 23b18fc3c3d..7168d93ead8 100644 --- a/tests/UNIXserver.conf +++ b/tests/UNIXserver.conf @@ -5,6 +5,6 @@ # In addition, you can replace the hardcoded "-p 20xxx" with "-p # $PORTxxx" if you set your environment variables correctly. -dynamic Logging_Strategy Service_Object * ../netsvcs/lib/netsvcs:_make_ACE_Logging_Strategy() "-s log/Time_Service_Test_Server.log -f OSTREAM" -dynamic Time_Service Service_Object * ../netsvcs/lib/netsvcs:_make_ACE_TS_Server_Acceptor() "-p 10222" +dynamic Logging_Strategy Service_Object * netsvcs:_make_ACE_Logging_Strategy() "-s log/Time_Service_Test_Server.log -f OSTREAM" +dynamic Time_Service Service_Object * netsvcs:_make_ACE_TS_Server_Acceptor() "-p 10222" diff --git a/tests/UNIXtokens.conf b/tests/UNIXtokens.conf index 2547639345c..a15f4ab14cc 100644 --- a/tests/UNIXtokens.conf +++ b/tests/UNIXtokens.conf @@ -1,5 +1,5 @@ # Solaris version -dynamic Logging_Strategy Service_Object * ../netsvcs/lib/netsvcs:_make_ACE_Logging_Strategy() "-s log/Tokens_Test_Server.log -f OSTREAM" -dynamic Token_Service Service_Object * ../netsvcs/lib/netsvcs:_make_ACE_Token_Acceptor() "-p 23456" +dynamic Logging_Strategy Service_Object * netsvcs:_make_ACE_Logging_Strategy() "-s log/Tokens_Test_Server.log -f OSTREAM" +dynamic Token_Service Service_Object * netsvcs:_make_ACE_Token_Acceptor() "-p 23456" diff --git a/tests/run_tests.sh b/tests/run_tests.sh index cbf76576920..e005acc7ed7 100755 --- a/tests/run_tests.sh +++ b/tests/run_tests.sh @@ -17,6 +17,7 @@ usage="usage: $0 <target>" IFS="|" tmp=/tmp compilation_log="log/compilations.log" +LD_LIBRARY_PATH=../netsvcs/lib:$LD_LIBRARY_PATH #### #### Process command line arguments. diff --git a/tests/test_config.h b/tests/test_config.h index 122fea878ed..6b750e661f1 100644 --- a/tests/test_config.h +++ b/tests/test_config.h @@ -373,7 +373,9 @@ randomize (int array[], size_t size) for (i = 0; i < size; i++) array [i] = i; - ACE_OS::srand (ACE_OS::time (0L)); + // See with a fixed number so that we can produce "repeatable" + // random numbers. + ACE_OS::srand (0); // Generate an array of random numbers from 0 .. size - 1. |