From: softlib.ca.rice.edu
Last Mod: December 29, 1995

Porting FASTLINK to VAX/VMS


This document describes how to get the FASTLINK (v3.0P) package running under VAX/VMS with the DEC C compiler or the VAX C compiler. It should also be applicable to AXP/VMS. You have two choices: either use the compilation script prepared by Steve Roberts for DEC C with troubleshooting by Anita Destefano, or use the MMS script prepapred by Kimmo Kallio, Shriram Krishnamurthi and Alejandro Schaffer for VAX C. Each one might work with the second compiler, but this has not been tested at all.


Instructions for DEC C:

AUTHOR

Steve Roberts, Paterson Institute for Cancer Research, Manchester, M20 9BX, U.K.
bmcsar@picr.cr.man.ac.uk.
22-Sep-1994

Slight modifications to explain where to find things in the FASTLINK distribution by Alejandro A. Schaffer.

PREREQUISITES

Use DEC C. DEC C is the latest C compiler distributed by Digital for VMS. Unfortunately it costs money, but the upgrade from VMS C to DEC C is "free" to those with valid support contracts.

DISCLAIMER

The programs all compile and link successfully under VAX/VMS v5.5-2 with DEC C v4.0. The programs used by my users all work for their data. However not all the programs have been thoroughly tested, and those that have only as far as my users require.

SETUP

Copy the file decc_checkpointdefs.h found in the fastlink subdirectory 3.0P/vaxvms in place of checkpointdefs.h.

Copy the files FASTLINK_BUILD.VMS and FASTLINK_START.VMS to that directory as well, and change to that directory.

The place where the standard .h definition files for C are found seems to vary from VAX to VAX. It is likely that you need to change the first few lines of commondefs.h.

In particular, the section:

  /* VMS: MAY NEED TO CHANGE --
     possibly uncomment the following 2 lines */
  /* #include unixio */
  /* #include file */

  #include 

  /* Shriram: begin */
  #include 
  #include 

  /* VMS: MAY NEED TO CHANGE --
     possibly remove "sys/" from the next 3 lines */
  #include 
  #include 
  #include 
  /* Shriram: end */

  #if !defined(vms)
  #include 
  #endif
  #include 

  /* VMS: MAY NEED TO CHANGE --
    comment out the any of the next 3 lines for files your system can't find */
  #include 
  #include 
  #include 
includes 3 possible places you might need to edit (marked "VMS: MAY NEED TO CHANGE"). If you have trouble compiling as-is, this is the first place to look. You may consult with your system administrator for help on how to make this modification for your VMS machine.

COMPILING

The VMS command file FASTLINK_BUILD.VMS will compile and link all the source code to produce the 10 executables. The DEC C compiler is fussy and produces a small heap of warnings and informational messages. As far as I can tell, these are all perfectly ignorable!

It should be possible to use the distributed makefile, with a few minor changes if you have a unix-compatible make facility. There are a number of make facilities on the net, and the VMS POSIX interface also provides one. I have not yet got this approach to work, but if you have any of these facilities working then give it a go. VMS POSIX has a "feature" that means you cannot give the object file produced by the C compiler a name different from the input source file - so the supplied makefile will need some modification. You will need to add references to VMS.C and its object file in the appropriate places.

RUNNING

The VMS command file FASTLINK_START.VMS will define symbols for all the executables. The line defining the source code directory will need modifying for your local installation. This file needs to be run before using the programs. We define a global command
  FASTLINK :== @fastlink_dir:FASTLINK_START.VMS
in Sylogin.com, then our users just need to type the command FASTLINK to set up their environment to run the programs.

The programs are run by simply typing the program names.

The datafiles (Datafile, pedfile, etc.) all require a .DAT filetype (datafile.dat, pedfile,dat, etc.)

CHECKPOINTING

With the changes outlined above the checkpointing code will run and not cause any problems. However I am not sure yet that the checkpointing will allow you to recover from a crash under VMS. I am still working on this!

OUTSTANDING ISSUES

Checkpointing has not been tested (see above).

The CKPT program will not work


Instructions for VAX C:

AUTHOR

Alejandro Schaffer with lots of help from Shriram Krishnamurthi

PREREQUISITES

Must have VAX C compiler and MMS compilation utility installed.

DISCLAIMER

Testing has been somewhat limited and I know very little about VMS.

SETUP

Before compiling you must run the commands:
  $DEFINE LNK$LIBRARY SYS$LIBRARY:VAXCRTLG
  $DEFINE LNK$LIBRARY_1 SYS$LIBRARY:VAXCRTL
It may be safe to put these in your LOGIN.COM, but check with your system administrator before doing so.

Copy the file vaxc_checkpointdefs.h found in the fastlink subdirectory 3.0P/vaxvms in place of checkpointdefs.h.

The place where the standard .h definition files for C are found seems to vary from VAX to VAX. It is likely that you need to change the first few lines of commondefs.h.

In particular, the section:

  /* VMS: MAY NEED TO CHANGE --
     possibly uncomment the following 2 lines */
  /* #include unixio */
  /* #include file */

  #include 

  /* Shriram: begin */
  #include 
  #include 

  /* VMS: MAY NEED TO CHANGE --
     possibly remove "sys/" from the next 3 lines */
  #include 
  #include 
  #include 
  /* Shriram: end */

  #if !defined(vms)
  #include 
  #endif
  #include 

  /* VMS: MAY NEED TO CHANGE --
    comment out the any of the next 3 lines for files your system can't find */
  #include 
  #include 
  #include 
includes 3 possible places you might need to edit (marked "VMS: MAY NEED TO CHANGE"). If you have trouble compiling as-is, this is the first place to look. You may consult with your system administrator for help on how to make this modification for your VMS machine.

COMPILING

Copy the files BIG.MMS to the directory where the source code is:

Run:

 MMS/DESCRIP=BIG.MMS fastlink
for fast versions
 MMS/DESCRIP=BIG.MMS slowfastlink
for slow versions
 MMS/DESCRIP=BIG.MMS unknown.exe
for UNKNOWN
 MMS/DESCRIP=BIG.MMS clean
to clean up

CHECKPOINTING

Crash recovery works for MLINK and LINKMAP. Crash recovery does not work for ILINK and LODSCORE and has been disabled for those two programs. The checkpointing leaves many files around because MMS has version numbers and does not overwrite the old checkpoint with the new. Use PURGE frequently to clean up.

OUTSTANDING ISSUES

Checkpointing does not yet work for ILINK and LODSCORE.
back to fastlink