Showing posts with label HP. Show all posts
Showing posts with label HP. Show all posts

Wednesday, 20 March 2019

Installing LibIDL

CSWB, as well as some other products such as the CSWS, require LibIDL 0.6.3 or later in order to compile.

The LibIDL version that used to be on the HP OpenVMS website, and can still be found at their FTP site here as well as on the OpenVMS Open Source CD, is v0.6.5.

It only comes in a compilable source version, and requires GTK version 1.2.7 or greater to be installed in order to successfully compile.  Additionally, it requires some re-configuration for the specific environment in which it is being compiled/installed, and I also found I had to undertake a few modifications to get it to successfully compile:

1) edit libIDL-config-VMS. to reflect installation environment by adjusting installation location of GTK+ and libIDL source by changing these lines to the correct locations of the libIDL source, and GTK install, mine were:

LIBIDL_ROOT=/dka0/libIDL/v0.6.5
GTK_ROOT=/dka0/software/gtk

2) edit build_vms.sh and change the following lines

vms_defines="-Wc/name=(AS_IS,short)"
to
vms_defines="-names_as_is_short"

delete every instance of -DCPP_PROGRAM=\"cc\ -E\"

change
ar c libIDL.a parser.o lexer.o ns.o util.o vms_alloca.o
to
ar rc libIDL.a parser.o lexer.o ns.o util.o
(note the change from ar c to ar rc)

delete or comment out the lines (no longer required as VMS now has malloc):

#
echo Compiling vms_alloca...
cc -c \
  $vms_defines \
  -o vms_alloca.o vms_alloca.c

3) edit util.c as follows:

replace

CPP_PROGRAM "

with

"cxx -E 

The modifications to remove the -DCPP_PROGRAM from util.c are a fudge, I can't seem to get the original approach to work which is to pass the substitution via the -D command line parameter.  It's possible if there are no spaces, i.e. -DCPP_PROGRAM=\"cxx\" but when an (escaped) space is used, i.e. -DCPP_PROGRAM=\"cc\ -E\" the program fails to compile.

As is often the case, the default LibIDL source doesn't enable optimizations, but it's fairly easy to edit the source to enable optimized code to be produced, just edit the following line in build_vms.sh to:

vms_defines="-names_as_is_short -opt=(tune=host)"

I also managed to compile version 0.6.8, available from here.  I copied over the following files from the 0.6.5 VMS version:

build_vms.sh
libIDL-config-VMS.
readme.vms

After making the modifications above for 0.6.5, it required further modifications:

edit libIDL-config-VMS.
and change LIBIDL_LIBRARY_VERSION=0.6.5 to LIBIDL_LIBRARY_VERSION=0.6.8
and amend the definition of LIBIDL_ROOT to point to the 0.6.8 source code

edit build_vms.sh and replace:
sed \
  -e 's/@LIBIDL_MAJOR_VERSION@/0/g' \
  -e 's/@LIBIDL_MINOR_VERSION@/6/g' \
  -e 's/@LIBIDL_MICRO_VERSION@/5/g' \

with:
sed \
  -e 's/@LIBIDL_MAJOR_VERSION@/0/g' \
  -e 's/@LIBIDL_MINOR_VERSION@/6/g' \
  -e 's/@LIBIDL_MICRO_VERSION@/8/g' \
  -e 's/@HAVE_WCHAR_H@/1/g' \
  -e 's/@HAVE_WCSTR_H@/1/g' \

and find the lines:

echo Compiling util...
cc -c \

and add immediately afterwards the following line:
-DCPP_NOSTDINC=\"-nostdinc\"

For completeness, I also edited readme.vms and replaced the two instance of 0.6.5 with 0.6.8

Later versions of LibIDL are available from here, but versions 0.7.x and greater require GTK+ version 2.x or greater.

Tuesday, 12 March 2019

Installing Compilers, etc, from the Software Product Library

CSWB requires a C, C++, and Macro64 compiler to be installed and licensed.

First step to installing Software is to copy the ZIP and UNZIP utilities from the FREEWARE CD  into the SYS$COMMON:[SYSEXE] folder.
Then add the following lines to the SYLOGIN.COM script:

unzip :== $sys$common:[sysexe]unzip.exe
zip :== $sys$common:[sysexe]zip.exe

Through the Hobbyist program and download package, and some old SPL CDs, I installed and licensed the following software products:

HP C Compiler v7.3-009
HP C++ Compiler v7.3-009
DEC Fortran Compiler v8.2-104679-48H9K
DEC CXML v5.2-1
Ada Compiler v3.5
Pascal Compiler v6.1-116
BASIC Compiler v1.7
COBOL Compiler v2.9-1453
Macro64 Assembler v1.1

I also installed Modular Management System (MMS) v3.8 from the DECSET 12.8 ECO1 package, but didn't install the rest of the DECSET package.  I prefer MMK to MMS, but find its sometimes useful to have MMS available in case I suspect MMK is the cause of a compilation problem.

I also have a 7.3 ECO1 version of the HP C Compiler on an old OpenVMS SPL CD, but when I installed it seemed to cause some difficulty compiling programs, and the help-file was full of references to Tru64 which was weird.

Most require startup scripts to be called within the SYSTARTUP_VMS.COM script:

$ @SYS$STARTUP:DECC$STARTUP.COM
$ @SYS$STARTUP:CCXX$STARTUP.COM
$ @SYS$STARTUP:ADA$STARTUP.COM
$ @SYS$STARTUP:FORT$STARTUP.COM
$ @SYS$STARTUP:CXML$STARTUP.COM
$ @SYS$STARTUP:PASCAL$STARTUP.COM
$ @SYS$STARTUP:DECSET$ENVMGR_STARTUP.COM
$ @SYS$STARTUP:MMS$STARTUP.COM

Saturday, 9 March 2019

Installing OpenVMS

OpenVMS was installed from CD-ROM using the ALPHA084 Hobbyist ISO, all installation/configuration options were geared towards a non-clustered install with a focus on maximising performance (building the SWB is estimated to take 10-12hrs on a DS20e).

Hard drive for installation: DKA0, and this was INITALIZEd as ODS-5 with hard links enabled.
DECnet: not installed
DECwindows Motif: installed
DECnet-Plus: not installed
DECnet Phase IV: not installed
HP TCP/IP Service: installed

Once installation was complete, the LPKs were installed and the system rebooted

Next steps were to decompress all the system libraries:

$ @SYS$UPDATE:LIBDECOMP.COM

Then a few additional modifications to the drive structure, namely enabling Access Dates, and disabling high water marking:

$ SET VOLUME DKA0: /VOLUME_CHARACTERISTICS=(ACCESS_DATES) /NOHIGHWATER_MARKING

Then all the OS patches I could find were installed:

DEC AXPVMS VMS84A_PCSI V4.0
DEC AXPVMS VMS84A_UPDATE V11.0
DEC AXPVMS VMS84A_MANAGE V2.0
DEC AXPVMS VMS84A_LDAP V3.0
DEC AXPVMS VMS84A_F11X V3.0
DEC AXPVMS VMS84A_ENCRYPT V2.2
DEC AXPVMS VMS84A_ACMELDAP v3.0
HP AXPVMS HPBINARYCHECKER V1.2

Followed by various TCPIP patches, and upgrading the core SSL

DEC AXPVMS TCPIP V5.7-13ECO5
DEC AXPVMS TELNET_PAT V5.7-13ECO5A
DEC AXPVMS TCPIP_CVE_PAT V5.7-ECO5
HP AXPVMS SSL V1.4-502
HP AXPVMS SSL1 V1.0-2C

I know there are newer versions of OpenSSL available, and will compile and install them in due course - I just wanted to first get the official HP versions installed.

If anyone has any additional/new patches I'd love to get hold of them...