• Home
  • History
  • Annotate
  • only in this directory
NameDateSize

..12-Dec-201235

build_xslt.comH A D12-Dec-20129.4 KiB

diffs.vmsH A D12-Dec-2012738

readme.vmsH A D12-Dec-20124.7 KiB

readme.vms

1Building XSLT under OpenVMS
2===========================
3
4Here's a summary of the issues I encountered when building XSLT under
5VMS.  I'd previously done the same for the LIBXML package, on which 
6XSLT depends.
7
8I present this list "as is" to hopefully act as a guide to anyone 
9having similar problems in the future.
10
11That's it.  Good luck!
12
13John A Fotheringham (jaf@jafsoft.com)
14November 2001
15
16
17Installation 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
79The 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
105Compiler 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
129Changes 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.
142