OLD | NEW |
(Empty) | |
| 1 Building XSLT under OpenVMS |
| 2 =========================== |
| 3 |
| 4 Here's a summary of the issues I encountered when building XSLT under |
| 5 VMS. I'd previously done the same for the LIBXML package, on which |
| 6 XSLT depends. |
| 7 |
| 8 I present this list "as is" to hopefully act as a guide to anyone |
| 9 having similar problems in the future. |
| 10 |
| 11 That's it. Good luck! |
| 12 |
| 13 John A Fotheringham (jaf@jafsoft.com) |
| 14 November 2001 |
| 15 |
| 16 |
| 17 Installation kit |
| 18 ---------------- |
| 19 |
| 20 - File attributes. When downloading essentially a Unix distribution, |
| 21 some of the file attributes may not be correct... especially those |
| 22 in the [.VMS] subdirectory. In EDT you could see line feeds and |
| 23 carriage returns as <LF><CR> etc. To correct this use the command |
| 24 |
| 25 $ set file <filespec> /attr=rfm=stm |
| 26 |
| 27 This sets the record format to be "stream". Other variants may be |
| 28 used instead depending on how you got the files onto your system. |
| 29 Files will look okay in an EDT editor once the attributes are set. |
| 30 Without this the command file may not run correctly, since it may |
| 31 be interpreted as a single line. |
| 32 |
| 33 - VMS-specific files are in a [.VMS] directory. If you've found |
| 34 this file then you already know this :-) This directory contains |
| 35 |
| 36 BUILD_XSLT.COM - a build command file |
| 37 README.VMS - these notes |
| 38 |
| 39 - Don't execute BUILD_LIBXML.COM until you've done all the |
| 40 following |
| 41 |
| 42 - read these notes |
| 43 - define the logicals XMLOLB and LIBXML |
| 44 - copy CONFIG.H to [.libxslt] and [.libexslt] |
| 45 - reviewed the configuration section of BUILD_XSLT.COM, and in |
| 46 particular update the module lists in line with MAKEFILE |
| 47 - re-read these notes :-p |
| 48 |
| 49 instructions for all these steps are below. |
| 50 |
| 51 - the XSLT package requires the LIBXML package to have been |
| 52 previously been installed. The following logicals should be |
| 53 defined |
| 54 |
| 55 LIBXML - the directory containing LIBXML's .h files |
| 56 XMLOLB - the directory to contain both the LIBXML and XSLT |
| 57 object libraries |
| 58 |
| 59 - you'll need to copy config.h into the [.libxslt] and [.libexslt] |
| 60 directories. If in the future a VMS-specific version is created, |
| 61 use [.vms]config.vms instead. |
| 62 |
| 63 - The command file BUILD_XSLT.COM will do the following |
| 64 |
| 65 - setup and test some logicals |
| 66 - set def to the source directory |
| 67 - compile modules and place them into a LIBXSLT.OLB library |
| 68 - compile modules and place them into a LIBEZSLT.OLB library |
| 69 - compile and link the XSLTPROC program |
| 70 - set def back to the original directory (i.e. if it fails you |
| 71 might not be where you started :-) |
| 72 |
| 73 before running this command file review the configuration segment |
| 74 at the top. In particular compare the lists of modules with those |
| 75 in the most recent version of MAKEFILE.IN files sound in the source |
| 76 directories. Instructions are contained in the command file itself. |
| 77 |
| 78 |
| 79 The TRIO package |
| 80 ---------------- |
| 81 - The libxml package uses a sub-package TRIO to provide some |
| 82 functions not naturally available under VMS. These include support |
| 83 for infinite and undefined numbers, and specialised print functions |
| 84 like "snprintf" |
| 85 |
| 86 To build this software we need to add |
| 87 |
| 88 /IEEE_MODE=UNDERFLOW_TO_ZERO/FLOAT=IEEE |
| 89 |
| 90 to the compile command for xsltutils, and to any main program |
| 91 that uses this functionality. BUILD_XSLT.COM should do this |
| 92 for you. |
| 93 |
| 94 Without this you are likely to get run-time errors like this |
| 95 |
| 96 %SYSTEM-F-HPARITH, high performance arithmetic trap, Imask=00000000, |
| 97 Fmask=00000 400, summary=02, PC=000000000006A330, PS=0000001B |
| 98 -SYSTEM-F-FLTINV, floating invalid operation, PC=000000000006A330, |
| 99 PS=0000001B |
| 100 |
| 101 If this occurs you'll need to locate the modules that need the |
| 102 above switches applied |
| 103 |
| 104 |
| 105 Compiler and linker errors |
| 106 -------------------------- |
| 107 |
| 108 - with respect to the TRIO package you'll get the error |
| 109 |
| 110 "no main module for UNDERFLOW_TO_ZERO" |
| 111 |
| 112 You can suppress this "expected" messages by using the compile command |
| 113 |
| 114 $ CC /WARN=DISABLE=(NOMAINUFLO) |
| 115 |
| 116 - the Linker will report the following error |
| 117 |
| 118 %LINK-W-MULDEF, symbol DECC$STRERROR multiply defined |
| 119 in module DECC$SHR file SYS$COMMON:[SYSLIB]DECC$SHR.EXE;5 |
| 120 |
| 121 This is complaining that DECC$STRERROR is multiply defined, which |
| 122 in turn is because this system symbol is getting added to LIBXML.OLB |
| 123 when strio.c was compiled in the libxml package. |
| 124 |
| 125 I'm not sure what the solution for this is, but this is a fairly |
| 126 benign error. |
| 127 |
| 128 |
| 129 Changes made to the codebase |
| 130 ---------------------------- |
| 131 |
| 132 - In the module extensions.c the name |
| 133 |
| 134 xsltExtModuleElementPreComputeLookup |
| 135 |
| 136 is too long (more than 31 characters). The solution has been |
| 137 to rename it to a shorter name on VMS builds, and to then |
| 138 create a #define that maps the longer name to the shorter name, |
| 139 so that all references to the longer name will work. |
| 140 |
| 141 You may need to repeat this exercise with any future modules added. |
OLD | NEW |