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"; }