2021-02-02 01:53:29 +08:00
|
|
|
Notes for the OpenVMS platform
|
2020-06-10 23:49:25 +08:00
|
|
|
==============================
|
2016-03-08 07:04:27 +08:00
|
|
|
|
2021-02-02 01:53:29 +08:00
|
|
|
- [Requirement details](#requirement-details)
|
|
|
|
- [About ANSI C compiler](#about-ansi-c-compiler)
|
|
|
|
- [About ODS-5 directory names and Perl](#about-ods-5-directory-names-and-perl)
|
|
|
|
- [About MMS and DCL](#about-mms-and-dcl)
|
|
|
|
- [About debugging](#about-debugging)
|
|
|
|
- [Checking the distribution](#checking-the-distribution)
|
2016-03-08 07:04:27 +08:00
|
|
|
|
2021-02-02 01:53:29 +08:00
|
|
|
Requirement details
|
|
|
|
-------------------
|
|
|
|
|
|
|
|
In addition to the requirements and instructions listed
|
|
|
|
in [INSTALL.md](INSTALL.md), this are required as well:
|
2016-03-08 07:04:27 +08:00
|
|
|
|
|
|
|
* At least ODS-5 disk organization for source and build.
|
|
|
|
Installation can be done on any existing disk organization.
|
|
|
|
|
2021-02-02 01:53:29 +08:00
|
|
|
About ANSI C compiler
|
|
|
|
---------------------
|
2016-03-08 07:04:27 +08:00
|
|
|
|
2021-02-02 01:53:29 +08:00
|
|
|
An ANSI C compiled is needed among other things. This means that
|
|
|
|
VAX C is not and will not be supported.
|
2016-03-08 07:04:27 +08:00
|
|
|
|
2021-02-02 01:53:29 +08:00
|
|
|
We have only tested with DEC C (aka HP VMS C / VSI C) and require
|
|
|
|
version 7.1 or later. Compiling with a different ANSI C compiler may
|
|
|
|
require some work.
|
2016-03-25 15:27:35 +08:00
|
|
|
|
2021-02-02 01:53:29 +08:00
|
|
|
Please avoid using C RTL feature logical names `DECC$*` when building
|
|
|
|
and testing OpenSSL. Most of all, they can be disruptive when
|
|
|
|
running the tests, as they affect the Perl interpreter.
|
2016-03-08 07:04:27 +08:00
|
|
|
|
2021-02-02 01:53:29 +08:00
|
|
|
About ODS-5 directory names and Perl
|
|
|
|
------------------------------------
|
2016-08-06 17:30:48 +08:00
|
|
|
|
2021-02-02 01:53:29 +08:00
|
|
|
It seems that the perl function canonpath() in the `File::Spec` module
|
|
|
|
doesn't treat file specifications where the last directory name
|
|
|
|
contains periods very well. Unfortunately, some versions of VMS tar
|
|
|
|
will keep the periods in the OpenSSL source directory instead of
|
|
|
|
converting them to underscore, thereby leaving your source in
|
|
|
|
something like `[.openssl-1^.1^.0]`. This will lead to issues when
|
|
|
|
configuring and building OpenSSL.
|
2016-08-06 17:30:48 +08:00
|
|
|
|
2021-02-02 01:53:29 +08:00
|
|
|
We have no replacement for Perl's canonpath(), so the best workaround
|
|
|
|
for now is to rename the OpenSSL source directory, as follows (please
|
|
|
|
adjust for the actual source directory name you have):
|
2016-08-06 17:30:48 +08:00
|
|
|
|
2019-02-01 01:55:30 +08:00
|
|
|
$ rename openssl-1^.1^.0.DIR openssl-1_1_0.DIR
|
2016-08-06 17:30:48 +08:00
|
|
|
|
2021-02-02 01:53:29 +08:00
|
|
|
About MMS and DCL
|
|
|
|
-----------------
|
2016-03-24 02:27:08 +08:00
|
|
|
|
2021-02-02 01:53:29 +08:00
|
|
|
MMS has certain limitations when it comes to line length, and DCL has
|
|
|
|
certain limitations when it comes to total command length. We do
|
|
|
|
what we can to mitigate, but there is the possibility that it's not
|
|
|
|
enough. Should you run into issues, a very simple solution is to set
|
|
|
|
yourself up a few logical names for the directory trees you're going
|
|
|
|
to use.
|
2016-03-24 02:27:08 +08:00
|
|
|
|
2021-02-02 01:53:29 +08:00
|
|
|
About debugging
|
|
|
|
---------------
|
2017-03-15 09:52:20 +08:00
|
|
|
|
2021-02-02 01:53:29 +08:00
|
|
|
If you build for debugging, the default on VMS is that image
|
|
|
|
activation starts the debugger automatically, giving you a debug
|
|
|
|
prompt. Unfortunately, this disrupts all other uses, such as running
|
|
|
|
test programs in the test framework.
|
2017-03-15 09:52:20 +08:00
|
|
|
|
2021-02-02 01:53:29 +08:00
|
|
|
Generally speaking, if you build for debugging, only use the programs
|
|
|
|
directly for debugging. Do not try to use them from a script, such
|
|
|
|
as running the test suite.
|
2017-03-16 00:10:48 +08:00
|
|
|
|
2021-02-02 01:53:29 +08:00
|
|
|
### The following is not available on Alpha
|
2017-03-16 00:10:48 +08:00
|
|
|
|
2021-02-02 01:53:29 +08:00
|
|
|
As a compromise, we're turning off the flag that makes the debugger
|
|
|
|
start automatically. If there is a program that you need to debug,
|
|
|
|
you need to turn that flag back on first, for example:
|
2017-03-15 09:52:20 +08:00
|
|
|
|
|
|
|
$ set image /flag=call_debug [.test]evp_test.exe
|
|
|
|
|
2021-02-02 01:53:29 +08:00
|
|
|
Then just run it and you will find yourself in a debugging session.
|
|
|
|
When done, we recommend that you turn that flag back off:
|
2017-03-15 09:52:20 +08:00
|
|
|
|
|
|
|
$ set image /flag=nocall_debug [.test]evp_test.exe
|
|
|
|
|
2023-05-17 16:33:27 +08:00
|
|
|
About assembler acceleration
|
|
|
|
----------------------------
|
|
|
|
|
|
|
|
OpenSSL has assembler acceleration for a number of BIGNUM and crypto
|
|
|
|
routines. The VMS config targets tries to look for a selection of
|
|
|
|
assemblers and will use what they find. If none of the assemblers are
|
|
|
|
found, OpenSSL will be built as if `no-asm` was configured.
|
|
|
|
|
|
|
|
### For Itanium / IA64 / I64
|
|
|
|
|
|
|
|
- There is only one assembler, a port of Intel's `ias`, found in the
|
|
|
|
HP Open Source Tools CD, available through [DECUSlib](http://www.decuslib.com).
|
|
|
|
It's assumed to be set up as per the instructions, where `disk` and
|
|
|
|
`dir` are expected to be adapted to local conditions:
|
|
|
|
|
|
|
|
$ ias :== $disk:[dir]iasi64.exe
|
|
|
|
|
2021-02-02 01:53:29 +08:00
|
|
|
Checking the distribution
|
|
|
|
-------------------------
|
2016-03-08 07:04:27 +08:00
|
|
|
|
2021-02-02 01:53:29 +08:00
|
|
|
There have been reports of places where the distribution didn't quite
|
|
|
|
get through, for example if you've copied the tree from a NFS-mounted
|
|
|
|
Unix mount point.
|
2016-03-08 07:04:27 +08:00
|
|
|
|
2021-02-02 01:53:29 +08:00
|
|
|
The easiest way to check if everything got through as it should is to
|
|
|
|
check that this file exists:
|
2016-03-08 07:04:27 +08:00
|
|
|
|
2021-01-11 15:51:43 +08:00
|
|
|
[.include.openssl]configuration^.h.in
|
2016-03-08 07:04:27 +08:00
|
|
|
|
2021-02-02 01:53:29 +08:00
|
|
|
The best way to get a correct distribution is to download the gzipped
|
|
|
|
tar file from ftp://ftp.openssl.org/source/, use `GZIP -d` to uncompress
|
|
|
|
it and `VMSTAR` to unpack the resulting tar file.
|
2016-03-08 07:04:27 +08:00
|
|
|
|
2021-02-02 01:53:29 +08:00
|
|
|
Gzip and VMSTAR are available here:
|
2016-03-08 07:04:27 +08:00
|
|
|
|
2020-06-10 23:49:25 +08:00
|
|
|
<http://antinode.info/dec/index.html#Software>
|
2016-03-08 07:04:27 +08:00
|
|
|
|
2021-02-02 01:53:29 +08:00
|
|
|
Should you need it, you can find UnZip for VMS here:
|
2016-03-08 07:04:27 +08:00
|
|
|
|
2020-06-10 23:49:25 +08:00
|
|
|
<http://www.info-zip.org/UnZip.html>
|
2021-01-11 15:51:43 +08:00
|
|
|
|
|
|
|
How the value of 'arch' is determined
|
|
|
|
-------------------------------------
|
|
|
|
|
|
|
|
'arch' is mentioned in INSTALL. It's value is determined like this:
|
|
|
|
|
|
|
|
arch = f$edit( f$getsyi( "arch_name"), "upcase")
|