diff -urN base-3.14.9-pre2.orig/config/CONFIG.Host.osf-alpha-gnu base-3.14.9-pre2/config/CONFIG.Host.osf-alpha-gnu --- base-3.14.9-pre2.orig/config/CONFIG.Host.osf-alpha-gnu 1970-01-01 09:00:00.000000000 +0900 +++ base-3.14.9-pre2/config/CONFIG.Host.osf-alpha-gnu 2006-12-13 23:11:03.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.9-pre2.orig/configure/os/CONFIG.Common.osf-alpha base-3.14.9-pre2/configure/os/CONFIG.Common.osf-alpha --- base-3.14.9-pre2.orig/configure/os/CONFIG.Common.osf-alpha 1970-01-01 09:00:00.000000000 +0900 +++ base-3.14.9-pre2/configure/os/CONFIG.Common.osf-alpha 2006-12-13 23:11:03.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 = $(SHRLIB_SEARCH_FULLPATHDIRS:%=-rpath %) + +ifdef CROSS + GNU_TARGET=alpha-osf + CMPLR_SUFFIX= + CMPLR_PREFIX=$(addsuffix -,$(GNU_TARGET)) +endif + diff -urN base-3.14.9-pre2.orig/configure/os/CONFIG.Common.osf-alpha-gnu base-3.14.9-pre2/configure/os/CONFIG.Common.osf-alpha-gnu --- base-3.14.9-pre2.orig/configure/os/CONFIG.Common.osf-alpha-gnu 1970-01-01 09:00:00.000000000 +0900 +++ base-3.14.9-pre2/configure/os/CONFIG.Common.osf-alpha-gnu 2006-12-13 23:11:03.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 = $(SHRLIB_SEARCH_FULLPATHDIRS:%=-Wl,-rpath,%) + +ifdef CROSS + GNU_TARGET=alpha-osf + CMPLR_SUFFIX= + CMPLR_PREFIX=$(addsuffix -,$(GNU_TARGET)) +endif + diff -urN base-3.14.9-pre2.orig/configure/os/CONFIG.osf-alpha-gnu.Common base-3.14.9-pre2/configure/os/CONFIG.osf-alpha-gnu.Common --- base-3.14.9-pre2.orig/configure/os/CONFIG.osf-alpha-gnu.Common 1970-01-01 09:00:00.000000000 +0900 +++ base-3.14.9-pre2/configure/os/CONFIG.osf-alpha-gnu.Common 2006-12-13 23:11:03.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.9-pre2.orig/configure/os/CONFIG.osf-alpha-gnu.osf-alpha-gnu base-3.14.9-pre2/configure/os/CONFIG.osf-alpha-gnu.osf-alpha-gnu --- base-3.14.9-pre2.orig/configure/os/CONFIG.osf-alpha-gnu.osf-alpha-gnu 1970-01-01 09:00:00.000000000 +0900 +++ base-3.14.9-pre2/configure/os/CONFIG.osf-alpha-gnu.osf-alpha-gnu 2006-12-13 23:11:03.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.9-pre2.orig/configure/os/CONFIG.osf-alpha.Common base-3.14.9-pre2/configure/os/CONFIG.osf-alpha.Common --- base-3.14.9-pre2.orig/configure/os/CONFIG.osf-alpha.Common 1970-01-01 09:00:00.000000000 +0900 +++ base-3.14.9-pre2/configure/os/CONFIG.osf-alpha.Common 2006-12-13 23:11:03.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.9-pre2.orig/configure/os/CONFIG.osf-alpha.osf-alpha base-3.14.9-pre2/configure/os/CONFIG.osf-alpha.osf-alpha --- base-3.14.9-pre2.orig/configure/os/CONFIG.osf-alpha.osf-alpha 1970-01-01 09:00:00.000000000 +0900 +++ base-3.14.9-pre2/configure/os/CONFIG.osf-alpha.osf-alpha 2006-12-13 23:11:03.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.9-pre2.orig/documentation/README.tru64unix base-3.14.9-pre2/documentation/README.tru64unix --- base-3.14.9-pre2.orig/documentation/README.tru64unix 1970-01-01 09:00:00.000000000 +0900 +++ base-3.14.9-pre2/documentation/README.tru64unix 2006-12-18 18:42:56.000000000 +0900 @@ -0,0 +1,77 @@ +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-303 (dtk) on Compaq Tru64 UNIX V5.1B (Rev. 2650) + Compiler Driver V6.5-302 (dtk) cc Driver + cxx -V + Compaq C++ V6.5-042 for Compaq Tru64 UNIX V5.1B (Rev. 2650) + Compiler Driver V6.5-042 (cxx) cxx Driver + + - GNU gcc/g++ compiler for "osf-alpha-gnu" + I used + gcc --version + gcc (GCC) 3.4.3 + +Environment +----------- + +Before compiling, please set the environment variable EPICS_HOST_ARCH +dependent on your compiler. + + for cc/cxx + setenv EPICS_HOST_ARCH osf-alpha + (setenv EPICS_HOST_ARCH `startup/EpicsHostArch.pl`) + 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 `startup/EpicsHostArch.pl` + make |& tee ../make-base-osf.log + make runtests | & tee ../test-base-osf.log + setenv EPICS_HOST_ARCH `startup/EpicsHostArch.pl gnu` + make |& tee ../make-base-osfgnu.log + +Minor errors are detected in epicsSnprintf and timer. They should +be investigated later. + +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/7/8/8.2/9pre. Thanks the core team for keeping + the alpha-osf dependent part in the distribution. + + +Kazuro Furukawa diff -urN base-3.14.9-pre2.orig/src/ca/comBuf.h base-3.14.9-pre2/src/ca/comBuf.h --- base-3.14.9-pre2.orig/src/ca/comBuf.h 2006-12-01 07:19:03.000000000 +0900 +++ base-3.14.9-pre2/src/ca/comBuf.h 2006-12-17 13:23:02.000000000 +0900 @@ -82,6 +82,9 @@ unsigned push ( comBuf & ); template < class T > bool push ( const T & value ); +#ifdef __DECCXX /* cxx on osf-alpha */ + bool push ( const char * value ); +#endif /* __DECCXX */ template < class T > unsigned push ( const T * pValue, unsigned nElem ); unsigned push ( const epicsInt8 * pValue, unsigned nElem ); @@ -193,6 +196,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.9-pre2.orig/src/libCom/osi/os/hpux/epicsMath.h base-3.14.9-pre2/src/libCom/osi/os/hpux/epicsMath.h --- base-3.14.9-pre2.orig/src/libCom/osi/os/hpux/epicsMath.h 1970-01-01 09:00:00.000000000 +0900 +++ base-3.14.9-pre2/src/libCom/osi/os/hpux/epicsMath.h 2006-12-14 04:38:32.000000000 +0900 @@ -0,0 +1,18 @@ +/*************************************************************************\ +* 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 finite(D) (isfinite(D) != 0) + +#endif /* epicsMathh */ diff -urN base-3.14.9-pre2.orig/src/libCom/osi/os/osf/epicsMath.h base-3.14.9-pre2/src/libCom/osi/os/osf/epicsMath.h --- base-3.14.9-pre2.orig/src/libCom/osi/os/osf/epicsMath.h 1970-01-01 09:00:00.000000000 +0900 +++ base-3.14.9-pre2/src/libCom/osi/os/osf/epicsMath.h 2006-12-13 23:11:03.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.9-pre2.orig/src/libCom/osi/os/osf/osdSock.h base-3.14.9-pre2/src/libCom/osi/os/osf/osdSock.h --- base-3.14.9-pre2.orig/src/libCom/osi/os/osf/osdSock.h 1970-01-01 09:00:00.000000000 +0900 +++ base-3.14.9-pre2/src/libCom/osi/os/osf/osdSock.h 2006-12-13 23:11:03.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.9-pre2.orig/src/libCom/osi/os/osf/osiFileName.h base-3.14.9-pre2/src/libCom/osi/os/osf/osiFileName.h --- base-3.14.9-pre2.orig/src/libCom/osi/os/osf/osiFileName.h 1970-01-01 09:00:00.000000000 +0900 +++ base-3.14.9-pre2/src/libCom/osi/os/osf/osiFileName.h 2006-12-13 23:11:03.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.9-pre2.orig/startup/EpicsHostArch base-3.14.9-pre2/startup/EpicsHostArch --- base-3.14.9-pre2.orig/startup/EpicsHostArch 2006-04-06 09:57:59.000000000 +0900 +++ base-3.14.9-pre2/startup/EpicsHostArch 2006-12-17 12:18:41.000000000 +0900 @@ -46,9 +46,9 @@ HP-UX ) os=hpux cpu=`uname -m` - case $cpu in 9000/[34678]??) - cpu=m68k - ;; + case $cpu in + 9000/[346]??) cpu=m68k ;; + 9000/[78]??) cpu=parisc ;; esac echo ${os}-${cpu}${suffix} ;; diff -urN base-3.14.9-pre2.orig/startup/EpicsHostArch.pl base-3.14.9-pre2/startup/EpicsHostArch.pl --- base-3.14.9-pre2.orig/startup/EpicsHostArch.pl 2006-04-08 01:03:56.000000000 +0900 +++ base-3.14.9-pre2/startup/EpicsHostArch.pl 2006-12-17 12:11:25.000000000 +0900 @@ -33,6 +33,8 @@ } elsif ($arch =~ m/MSWin32-x86/) { return "win32-x86"; } elsif ($arch =~ m/cygwin/) { return "cygwin-x86"; } elsif ($arch =~ m/PA-RISC1.1/) { return "hpux-parisc"; + } elsif ($arch =~ m/PA-RISC2.0/) { return "hpux-parisc"; + } elsif ($arch =~ m/alpha-dec_osf/) { return "osf-alpha"; } elsif ($arch =~ m/darwin/) { my($kernel, $hostname, $release, $version, $cpu) = POSIX::uname(); if ($cpu =~ m/Power Macintosh/) { return "darwin-ppc"; }