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 ([email protected])
|
---|
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.
|
---|