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
(setenv EPICS_HOST_ARCH `startup/EpicsHostArch.pl 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 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 4 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