diff -urN base-3.14.6.org/config/CONFIG.Host.osf-alpha-gnu base-3.14.6/config/CONFIG.Host.osf-alpha-gnu --- base-3.14.6.org/config/CONFIG.Host.osf-alpha-gnu 1970-01-01 09:00:00.000000000 +0900 +++ base-3.14.6/config/CONFIG.Host.osf-alpha-gnu 2004-08-28 20:57:47.000000000 +0900 @@ -0,0 +1,13 @@ +#************************************************************************* +# Copyright (c) 2002 The University of Chicago, as Operator of Argonne +# National Laboratory. +# Copyright (c) 2002 The Regents of the University of California, as +# Operator of Los Alamos National Laboratory. +# EPICS BASE Versions 3.13.7 +# and higher are distributed subject to a Software License Agreement found +# in file LICENSE that is included with this distribution. +#************************************************************************* +# CONFIG.Host.osf-alpha,v 1.2 2002/07/12 21:32:21 jba Exp + +# osf-alpha is the new name for alpha +-include $(EPICS_BASE)/config/CONFIG.Host.alpha diff -urN base-3.14.6.org/configure/os/CONFIG.Common.osf-alpha base-3.14.6/configure/os/CONFIG.Common.osf-alpha --- base-3.14.6.org/configure/os/CONFIG.Common.osf-alpha 1970-01-01 09:00:00.000000000 +0900 +++ base-3.14.6/configure/os/CONFIG.Common.osf-alpha 2004-08-28 20:57:47.000000000 +0900 @@ -0,0 +1,35 @@ +# CONFIG.Common.osf-alpha +# +# CONFIG.Common.osf-alpha,v 1.3 2003/03/18 22:44:43 jba Exp +# This file is maintained by the build community. +# +# Definitions for osf-alpha target archs +# Sites may override these definitions in CONFIG_SITE.Common.osf-alpha +#------------------------------------------------------- + +# Include definitions common to all Unix targets +include $(CONFIG)/os/CONFIG.Common.UnixCommon + +OS_CLASS = osf +ARCH_CLASS = alpha + +CODE_CPPFLAGS = + +POSIX_CPPFLAGS_YES = +POSIX_LDLIBS_YES += +POSIX_CPPFLAGS_NO = +POSIX_LDLIBS_NO += + +OP_SYS_CPPFLAGS = -D_OSF_SOURCE -DUNIX +OP_SYS_LDLIBS += -lpthread -lrt +USR_SYS_LIBS += m +space:=$(empty) $(empty) +colon := : +RUNTIME_LDFLAGS = -rpath $(subst $(space),$(colon),$(SHRLIB_SEARCH_DIRS)) + +ifdef CROSS + GNU_TARGET=alpha-osf + CMPLR_SUFFIX= + CMPLR_PREFIX=$(addsuffix -,$(GNU_TARGET)) +endif + diff -urN base-3.14.6.org/configure/os/CONFIG.Common.osf-alpha-gnu base-3.14.6/configure/os/CONFIG.Common.osf-alpha-gnu --- base-3.14.6.org/configure/os/CONFIG.Common.osf-alpha-gnu 1970-01-01 09:00:00.000000000 +0900 +++ base-3.14.6/configure/os/CONFIG.Common.osf-alpha-gnu 2004-08-28 20:57:47.000000000 +0900 @@ -0,0 +1,35 @@ +# CONFIG.Common.osf-alpha +# +# CONFIG.Common.osf-alpha,v 1.3 2003/03/18 22:44:43 jba Exp +# This file is maintained by the build community. +# +# Definitions for osf-alpha target archs +# Sites may override these definitions in CONFIG_SITE.Common.osf-alpha +#------------------------------------------------------- + +# Include definitions common to all Unix targets +include $(CONFIG)/os/CONFIG.Common.UnixCommon + +OS_CLASS = osf +ARCH_CLASS = alpha + +CODE_CPPFLAGS = + +POSIX_CPPFLAGS_YES = +POSIX_LDLIBS_YES += +POSIX_CPPFLAGS_NO = +POSIX_LDLIBS_NO += + +OP_SYS_CPPFLAGS = -D_OSF_SOURCE -D_REENTRANT -DUNIX +OP_SYS_LDLIBS += -lpthread -lrt + +space:=$(empty) $(empty) +colon := : +RUNTIME_LDFLAGS = -Wl,-rpath,$(subst $(space),$(colon),$(SHRLIB_SEARCH_DIRS)) + +ifdef CROSS + GNU_TARGET=alpha-osf + CMPLR_SUFFIX= + CMPLR_PREFIX=$(addsuffix -,$(GNU_TARGET)) +endif + diff -urN base-3.14.6.org/configure/os/CONFIG.osf-alpha-gnu.Common base-3.14.6/configure/os/CONFIG.osf-alpha-gnu.Common --- base-3.14.6.org/configure/os/CONFIG.osf-alpha-gnu.Common 1970-01-01 09:00:00.000000000 +0900 +++ base-3.14.6/configure/os/CONFIG.osf-alpha-gnu.Common 2004-08-28 20:57:47.000000000 +0900 @@ -0,0 +1,14 @@ +# CONFIG.osf-alpha.Common +# +# CONFIG.osf-alpha.Common,v 1.2 2001/01/12 23:19:19 jba Exp +# This file is maintained by the build community. +# +# Definitions for osf-alpha host archs +# Sites may override these definitions in CONFIG_SITE.osf-alpha.Common +#------------------------------------------------------- + +#Include definitions common to unix hosts +include $(CONFIG)/os/CONFIG.UnixCommon.Common + +WIND_HOST_TYPE = osf-alpha + diff -urN base-3.14.6.org/configure/os/CONFIG.osf-alpha-gnu.osf-alpha-gnu base-3.14.6/configure/os/CONFIG.osf-alpha-gnu.osf-alpha-gnu --- base-3.14.6.org/configure/os/CONFIG.osf-alpha-gnu.osf-alpha-gnu 1970-01-01 09:00:00.000000000 +0900 +++ base-3.14.6/configure/os/CONFIG.osf-alpha-gnu.osf-alpha-gnu 2004-08-28 21:14:40.000000000 +0900 @@ -0,0 +1,51 @@ +# CONFIG.osf-alpha.osf-alpha +# +# CONFIG.osf-alpha.osf-alpha,v 1.11.2.1 2003/07/03 16:17:34 jba Exp +# This file is maintained by the build community. +# +# Definitions for osf-alpha host archs +# Sites may override these definitions in CONFIG_SITE.osf-alpha.osf-alpha +#------------------------------------------------------- + +# CC = cc +CC = gcc +# CCC = cxx +CCC = g++ +CPP = $(CC) -E +RANLIB = +AR = ar -r +LD = -r + +# Configure OS vendor C compiler +CONFORM_CFLAGS_ANSI = +CONFORM_CFLAGS_STRICT = +CONFORM_CFLAGS_TRAD = +CODE_CFLAGS = +WARN_CFLAGS_YES = +WARN_CFLAGS_NO = -w +OPT_CFLAGS_YES = -O +OPT_CFLAGS_NO = -g + +# Configure OS vendor C++ compiler +CONFORM_CXXFLAGS_NORMAL = +CONFORM_CXXFLAGS_STRICT = +PROF_CXXFLAGS_YES = +p +PROF_CXXFLAGS_NO = +CODE_CXXFLAGS = +WARN_CXXFLAGS_YES = +WARN_CXXFLAGS_NO = +OPT_CXXFLAGS_YES = -O +OPT_CXXFLAGS_NO = -g + +STATIC_LDFLAGS_YES= -Bstatic -lrt -lpthread +STATIC_LDFLAGS_NO= +STATIC_LDLIBS_YES= -Bdynamic +STATIC_LDLIBS_NO= + +SHRLIB_LDFLAGS = -shared +LOADABLE_SHRLIB_LDFLAGS = $(SHRLIB_LDFLAGS) + +############# ??????????? +#####ACC_SFLAGS_YES= -non_shared +#####ACC_SFLAGS_NO= -call_shared + diff -urN base-3.14.6.org/configure/os/CONFIG.osf-alpha.Common base-3.14.6/configure/os/CONFIG.osf-alpha.Common --- base-3.14.6.org/configure/os/CONFIG.osf-alpha.Common 1970-01-01 09:00:00.000000000 +0900 +++ base-3.14.6/configure/os/CONFIG.osf-alpha.Common 2004-08-28 20:57:47.000000000 +0900 @@ -0,0 +1,14 @@ +# CONFIG.osf-alpha.Common +# +# CONFIG.osf-alpha.Common,v 1.2 2001/01/12 23:19:19 jba Exp +# This file is maintained by the build community. +# +# Definitions for osf-alpha host archs +# Sites may override these definitions in CONFIG_SITE.osf-alpha.Common +#------------------------------------------------------- + +#Include definitions common to unix hosts +include $(CONFIG)/os/CONFIG.UnixCommon.Common + +WIND_HOST_TYPE = osf-alpha + diff -urN base-3.14.6.org/configure/os/CONFIG.osf-alpha.osf-alpha base-3.14.6/configure/os/CONFIG.osf-alpha.osf-alpha --- base-3.14.6.org/configure/os/CONFIG.osf-alpha.osf-alpha 1970-01-01 09:00:00.000000000 +0900 +++ base-3.14.6/configure/os/CONFIG.osf-alpha.osf-alpha 2004-08-28 21:15:47.000000000 +0900 @@ -0,0 +1,49 @@ +# CONFIG.osf-alpha.osf-alpha +# +# CONFIG.osf-alpha.osf-alpha,v 1.11.2.1 2003/07/03 16:17:34 jba Exp +# This file is maintained by the build community. +# +# Definitions for osf-alpha host archs +# Sites may override these definitions in CONFIG_SITE.osf-alpha.osf-alpha +#------------------------------------------------------- + +CC = cc +CCC = cxx +CPP = $(CC) -E +RANLIB = +AR = ar -r +LD = -r + +# Configure OS vendor C compiler +CONFORM_CFLAGS_ANSI = -std +CONFORM_CFLAGS_STRICT = -std1 -pthread -ieee +CONFORM_CFLAGS_TRAD = -std0 +CODE_CFLAGS = +WARN_CFLAGS_YES = +WARN_CFLAGS_NO = -w +OPT_CFLAGS_YES = -O +OPT_CFLAGS_NO = -g + +# Configure OS vendor C++ compiler +CONFORM_CXXFLAGS_NORMAL = +CONFORM_CXXFLAGS_STRICT = -std gnu -pthread -ieee +PROF_CXXFLAGS_YES = +p +PROF_CXXFLAGS_NO = +CODE_CXXFLAGS = +WARN_CXXFLAGS_YES = +WARN_CXXFLAGS_NO = +OPT_CXXFLAGS_YES = -O +OPT_CXXFLAGS_NO = -g + +STATIC_LDFLAGS_YES= -Bstatic +STATIC_LDFLAGS_NO= +STATIC_LDLIBS_YES= -Bdynamic +STATIC_LDLIBS_NO= + +SHRLIB_LDFLAGS = -shared +LOADABLE_SHRLIB_LDFLAGS = $(SHRLIB_LDFLAGS) + +############# ??????????? +#####ACC_SFLAGS_YES= -non_shared +#####ACC_SFLAGS_NO= -call_shared + diff -urN base-3.14.6.org/documentation/README.tru64unix base-3.14.6/documentation/README.tru64unix --- base-3.14.6.org/documentation/README.tru64unix 1970-01-01 09:00:00.000000000 +0900 +++ base-3.14.6/documentation/README.tru64unix 2004-08-28 21:25:07.000000000 +0900 @@ -0,0 +1,76 @@ +Compiling EPICS and Building IOC Applications on Tru64Unix/Alpha + (former Digital-Unix, and even former OSF1) + for architectures "osf-alpha" and "osf-alpha-gnu" + +====================================================================== + +Tools needed +------------ + +For C/C++ Compiler, you need one of these compiler set. + + - DEC/Compaq/HP's ANSI C/C++ compilers for "osf-alpha" + I used + cc -V + Compaq C V6.5-011 on Compaq Tru64 UNIX V5.1B (Rev. 2650) + Compiler Driver V6.5-003 (sys) cc Driver + cxx -V + Compaq C++ V6.5-014 for Compaq Tru64 UNIX V5.1B (Rev. 2650) + Compiler Driver V6.5-014 (cxx) cxx Driver + + - GNU gcc/g++ compiler for "osf-alpha-gnu" + I used + gcc --version + gcc (GCC) 3.4.1 + +Environment +----------- + +Before compiling, please set the environment variable EPICS_HOST_ARCH +dependent on your compiler. + + for cc/cxx + setenv EPICS_HOST_ARCH osf-alpha + export EPICS_HOST_ARCH=osf-alpha + + for gcc/g++ + setenv EPICS_HOST_ARCH osf-alpha-gnu + export EPICS_HOST_ARCH=osf-alpha-gnu + +Building +-------- + +Should be quite straightforward. Edit (if necessary) the CONFIG_SITE +files and "make". (Be sure that GNU make is in your path or call it +explicitly as the standard make on Tru64Unix is _not_ GNU.) + +For example (with csh): + setenv EPICS_HOST_ARCH osf-alpha + make |& tee ../make-base-osf.log + setenv EPICS_HOST_ARCH osf-alpha-gnu + make |& tee ../make-base-osfgnu.log + cd bin/osf-alpha + foreach f (*TestHost epics*Test) + time ./$f + end + +Some internals +----------------------- + +__alpha is used to distinguish this architecture from others. +__DECCXX is used to distinguish DEC/Compaq/HP C++ compiler from GNU's. +There are several ways to specify compiler options for pthread. + Please consult the pthread(3) manual page. +src/libCom/osi/os/osf is used for osi definitions, + src/libCom/osi/os/alpha is not used. +About 230 warning messages with cc/cxx, and 6 with gcc. Sometimes + errors from cxx are intuitive. +I just started to use IOC application for a gateway purpose. There + can be architecture-dependent problems, that I didn't find yet. + +Only several lines in configure and src files were modified from + base-3.14.4/5/6. Thanks for keeping the alpha-osf dependent part + in the distribution. + + +Kazuro Furukawa diff -urN base-3.14.6.org/src/ca/comBuf.h base-3.14.6/src/ca/comBuf.h --- base-3.14.6.org/src/ca/comBuf.h 2004-01-15 10:42:39.000000000 +0900 +++ base-3.14.6/src/ca/comBuf.h 2004-08-28 20:57:47.000000000 +0900 @@ -91,6 +91,9 @@ bool push ( const epicsFloat32 & value ); bool push ( const epicsFloat64 & value ); bool push ( const epicsOldString & value ); +#ifdef __DECCXX /* cxx on osf-alpha */ + bool push ( const char * value ); +#endif /* __DECCXX */ unsigned push ( const epicsInt8 * pValue, unsigned nElem ); unsigned push ( const epicsUInt8 * pValue, unsigned nElem ); unsigned push ( const epicsInt16 * pValue, unsigned nElem ); @@ -324,6 +327,20 @@ return true; } +#ifdef __DECCXX /* cxx on osf-alpha */ +inline bool comBuf::push ( const char * value ) +{ + unsigned index = this->nextWriteIndex; + unsigned available = sizeof ( this->buf ) - index; + if ( sizeof ( value ) > available ) { + return false; + } + memcpy ( &this->buf[ index ], & value, sizeof ( value ) ); + this->nextWriteIndex = index + sizeof ( value ); + return true; +} +#endif /* __DECCXX */ + inline unsigned comBuf::push ( const epicsInt8 *pValue, unsigned nElem ) { return copyInBytes ( pValue, nElem ); diff -urN base-3.14.6.org/src/libCom/osi/os/osf/epicsMath.h base-3.14.6/src/libCom/osi/os/osf/epicsMath.h --- base-3.14.6.org/src/libCom/osi/os/osf/epicsMath.h 1970-01-01 09:00:00.000000000 +0900 +++ base-3.14.6/src/libCom/osi/os/osf/epicsMath.h 2004-08-28 20:57:47.000000000 +0900 @@ -0,0 +1,16 @@ +/*************************************************************************\ +* Copyright (c) 2002 The University of Chicago, as Operator of Argonne +* National Laboratory. +* Copyright (c) 2002 The Regents of the University of California, as +* Operator of Los Alamos National Laboratory. +* EPICS BASE Versions 3.13.7 +* and higher are distributed subject to a Software License Agreement found +* in file LICENSE that is included with this distribution. +\*************************************************************************/ +#ifndef epicsMathh +#define epicsMathh + +#include +#define isinf(D) (!finite((D)) && !(isnan((D)))) + +#endif /* epicsMathh */ diff -urN base-3.14.6.org/src/libCom/osi/os/osf/osdSock.h base-3.14.6/src/libCom/osi/os/osf/osdSock.h --- base-3.14.6.org/src/libCom/osi/os/osf/osdSock.h 1970-01-01 09:00:00.000000000 +0900 +++ base-3.14.6/src/libCom/osi/os/osf/osdSock.h 2004-08-28 20:57:47.000000000 +0900 @@ -0,0 +1,73 @@ +/*************************************************************************\ +* Copyright (c) 2002 The University of Chicago, as Operator of Argonne +* National Laboratory. +* Copyright (c) 2002 The Regents of the University of California, as +* Operator of Los Alamos National Laboratory. +* EPICS BASE Versions 3.13.7 +* and higher are distributed subject to a Software License Agreement found +* in file LICENSE that is included with this distribution. +\*************************************************************************/ + +/* + * alpha specific socket include + */ + +#ifndef osdSockH +#define osdSockH + +#ifdef __cplusplus +extern "C" { +struct ifafilt; +#endif + +#include + +#include +#include /* for MAXHOSTNAMELEN */ +#include +#include +#include +/* #include */ +/* #include */ +#include +#include +#include +#include +#include +#include /* close() and others */ + +#ifdef __cplusplus +} +#endif + +typedef int SOCKET; +#define INVALID_SOCKET (-1) +#define SOCKERRNO errno +#define socket_ioctl(A,B,C) ioctl(A,B,C) +typedef int osiSockIoctl_t; +typedef int osiSocklen_t; + +#define FD_IN_FDSET(FD) ((FD)=0) + +#define SOCK_EWOULDBLOCK EWOULDBLOCK +#define SOCK_ENOBUFS ENOBUFS +#define SOCK_ECONNRESET ECONNRESET +#define SOCK_ETIMEDOUT ETIMEDOUT +#define SOCK_EADDRINUSE EADDRINUSE +#define SOCK_ECONNREFUSED ECONNREFUSED +#define SOCK_ECONNABORTED ECONNABORTED +#define SOCK_EINPROGRESS EINPROGRESS +#define SOCK_EISCONN EISCONN +#define SOCK_EALREADY EALREADY +#define SOCK_EINVAL EINVAL +#define SOCK_EINTR EINTR +#define SOCK_EPIPE EPIPE +#define SOCK_EMFILE EMFILE +#define SOCK_SHUTDOWN ESHUTDOWN +#define SOCK_ENOTSOCK ENOTSOCK +#define SOCK_EBADF EBADF + +#define ifreq_size(pifreq) (sizeof(pifreq->ifr_name)) + +#endif /*osdSockH*/ + diff -urN base-3.14.6.org/src/libCom/osi/os/osf/osiFileName.h base-3.14.6/src/libCom/osi/os/osf/osiFileName.h --- base-3.14.6.org/src/libCom/osi/os/osf/osiFileName.h 1970-01-01 09:00:00.000000000 +0900 +++ base-3.14.6/src/libCom/osi/os/osf/osiFileName.h 2004-08-28 20:57:47.000000000 +0900 @@ -0,0 +1,21 @@ +/*************************************************************************\ +* Copyright (c) 2002 The University of Chicago, as Operator of Argonne +* National Laboratory. +* Copyright (c) 2002 The Regents of the University of California, as +* Operator of Los Alamos National Laboratory. +* EPICS BASE Versions 3.13.7 +* and higher are distributed subject to a Software License Agreement found +* in file LICENSE that is included with this distribution. +\*************************************************************************/ +/* + * osiFileName.h + * Author: Jeff Hill + * + * + */ +#ifndef osiFileNameH +#define osiFileNameH + +#include "unixFileName.h" + +#endif /* osiFileNameH */ diff -urN base-3.14.6.org/src/libCom/test/epicsListTest.cpp base-3.14.6/src/libCom/test/epicsListTest.cpp --- base-3.14.6.org/src/libCom/test/epicsListTest.cpp 2002-07-13 06:35:09.000000000 +0900 +++ base-3.14.6/src/libCom/test/epicsListTest.cpp 2004-08-28 20:57:47.000000000 +0900 @@ -18,8 +18,10 @@ #include "epicsList.h" +#ifndef __DECCXX /* cxx on osf-alpha */ using std::cout; using std::endl; +#endif /* not __DECCXX */ #ifdef vxWorks #define MAIN epicsListTest @@ -188,4 +190,4 @@ cout << tests << " tests completed, " << nak << " failed." << endl; return 0; -}; +}