diff options
Diffstat (limited to 'vms/readme.vms')
-rw-r--r-- | vms/readme.vms | 141 |
1 files changed, 141 insertions, 0 deletions
diff --git a/vms/readme.vms b/vms/readme.vms new file mode 100644 index 0000000..7088ee8 --- /dev/null +++ b/vms/readme.vms @@ -0,0 +1,141 @@ +Building XSLT under OpenVMS +=========================== + +Here's a summary of the issues I encountered when building XSLT under +VMS. I'd previously done the same for the LIBXML package, on which +XSLT depends. + +I present this list "as is" to hopefully act as a guide to anyone +having similar problems in the future. + +That's it. Good luck! + +John A Fotheringham (jaf@jafsoft.com) +November 2001 + + +Installation kit +---------------- + +- File attributes. When downloading essentially a Unix distribution, + some of the file attributes may not be correct... especially those + in the [.VMS] subdirectory. In EDT you could see line feeds and + carriage returns as <LF><CR> etc. To correct this use the command + + $ set file <filespec> /attr=rfm=stm + + This sets the record format to be "stream". Other variants may be + used instead depending on how you got the files onto your system. + Files will look okay in an EDT editor once the attributes are set. + Without this the command file may not run correctly, since it may + be interpreted as a single line. + +- VMS-specific files are in a [.VMS] directory. If you've found + this file then you already know this :-) This directory contains + + BUILD_XSLT.COM - a build command file + README.VMS - these notes + +- Don't execute BUILD_LIBXML.COM until you've done all the + following + + - read these notes + - define the logicals XMLOLB and LIBXML + - copy CONFIG.H to [.libxslt] and [.libexslt] + - reviewed the configuration section of BUILD_XSLT.COM, and in + particular update the module lists in line with MAKEFILE + - re-read these notes :-p + + instructions for all these steps are below. + +- the XSLT package requires the LIBXML package to have been + previously been installed. The following logicals should be + defined + + LIBXML - the directory containing LIBXML's .h files + XMLOLB - the directory to contain both the LIBXML and XSLT + object libraries + +- you'll need to copy config.h into the [.libxslt] and [.libexslt] + directories. If in the future a VMS-specific version is created, + use [.vms]config.vms instead. + +- The command file BUILD_XSLT.COM will do the following + + - setup and test some logicals + - set def to the source directory + - compile modules and place them into a LIBXSLT.OLB library + - compile modules and place them into a LIBEZSLT.OLB library + - compile and link the XSLTPROC program + - set def back to the original directory (i.e. if it fails you + might not be where you started :-) + + before running this command file review the configuration segment + at the top. In particular compare the lists of modules with those + in the most recent version of MAKEFILE.IN files sound in the source + directories. Instructions are contained in the command file itself. + + +The TRIO package +---------------- +- The libxml package uses a sub-package TRIO to provide some + functions not naturally available under VMS. These include support + for infinite and undefined numbers, and specialised print functions + like "snprintf" + + To build this software we need to add + + /IEEE_MODE=UNDERFLOW_TO_ZERO/FLOAT=IEEE + + to the compile command for xsltutils, and to any main program + that uses this functionality. BUILD_XSLT.COM should do this + for you. + + Without this you are likely to get run-time errors like this + + %SYSTEM-F-HPARITH, high performance arithmetic trap, Imask=00000000, + Fmask=00000 400, summary=02, PC=000000000006A330, PS=0000001B + -SYSTEM-F-FLTINV, floating invalid operation, PC=000000000006A330, + PS=0000001B + + If this occurs you'll need to locate the modules that need the + above switches applied + + +Compiler and linker errors +-------------------------- + +- with respect to the TRIO package you'll get the error + + "no main module for UNDERFLOW_TO_ZERO" + + You can suppress this "expected" messages by using the compile command + + $ CC /WARN=DISABLE=(NOMAINUFLO) + +- the Linker will report the following error + + %LINK-W-MULDEF, symbol DECC$STRERROR multiply defined + in module DECC$SHR file SYS$COMMON:[SYSLIB]DECC$SHR.EXE;5 + + This is complaining that DECC$STRERROR is multiply defined, which + in turn is because this system symbol is getting added to LIBXML.OLB + when strio.c was compiled in the libxml package. + + I'm not sure what the solution for this is, but this is a fairly + benign error. + + +Changes made to the codebase +---------------------------- + +- In the module extensions.c the name + + xsltExtModuleElementPreComputeLookup + + is too long (more than 31 characters). The solution has been + to rename it to a shorter name on VMS builds, and to then + create a #define that maps the longer name to the shorter name, + so that all references to the longer name will work. + + You may need to repeat this exercise with any future modules added. |