1 1.1 christos Notes for the OpenVMS platform 2 1.1 christos ============================== 3 1.1 christos 4 1.1 christos - [Requirement details](#requirement-details) 5 1.1 christos - [About ANSI C compiler](#about-ansi-c-compiler) 6 1.1 christos - [About ODS-5 directory names and Perl](#about-ods-5-directory-names-and-perl) 7 1.1 christos - [About MMS and DCL](#about-mms-and-dcl) 8 1.1 christos - [About debugging](#about-debugging) 9 1.1 christos - [Checking the distribution](#checking-the-distribution) 10 1.1 christos 11 1.1 christos Requirement details 12 1.1 christos ------------------- 13 1.1 christos 14 1.1 christos In addition to the requirements and instructions listed 15 1.1 christos in [INSTALL.md](INSTALL.md), this are required as well: 16 1.1 christos 17 1.1 christos * At least ODS-5 disk organization for source and build. 18 1.1 christos Installation can be done on any existing disk organization. 19 1.1 christos 20 1.1 christos About ANSI C compiler 21 1.1 christos --------------------- 22 1.1 christos 23 1.1 christos An ANSI C compiled is needed among other things. This means that 24 1.1 christos VAX C is not and will not be supported. 25 1.1 christos 26 1.1 christos We have only tested with DEC C (aka HP VMS C / VSI C) and require 27 1.1 christos version 7.1 or later. Compiling with a different ANSI C compiler may 28 1.1 christos require some work. 29 1.1 christos 30 1.1 christos Please avoid using C RTL feature logical names `DECC$*` when building 31 1.1 christos and testing OpenSSL. Most of all, they can be disruptive when 32 1.1 christos running the tests, as they affect the Perl interpreter. 33 1.1 christos 34 1.1 christos About ODS-5 directory names and Perl 35 1.1 christos ------------------------------------ 36 1.1 christos 37 1.1 christos It seems that the perl function canonpath() in the `File::Spec` module 38 1.1 christos doesn't treat file specifications where the last directory name 39 1.1 christos contains periods very well. Unfortunately, some versions of VMS tar 40 1.1 christos will keep the periods in the OpenSSL source directory instead of 41 1.1 christos converting them to underscore, thereby leaving your source in 42 1.1 christos something like `[.openssl-1^.1^.0]`. This will lead to issues when 43 1.1 christos configuring and building OpenSSL. 44 1.1 christos 45 1.1 christos We have no replacement for Perl's canonpath(), so the best workaround 46 1.1 christos for now is to rename the OpenSSL source directory, as follows (please 47 1.1 christos adjust for the actual source directory name you have): 48 1.1 christos 49 1.1 christos $ rename openssl-1^.1^.0.DIR openssl-1_1_0.DIR 50 1.1 christos 51 1.1 christos About MMS and DCL 52 1.1 christos ----------------- 53 1.1 christos 54 1.1 christos MMS has certain limitations when it comes to line length, and DCL has 55 1.1 christos certain limitations when it comes to total command length. We do 56 1.1 christos what we can to mitigate, but there is the possibility that it's not 57 1.1 christos enough. Should you run into issues, a very simple solution is to set 58 1.1 christos yourself up a few logical names for the directory trees you're going 59 1.1 christos to use. 60 1.1 christos 61 1.1 christos About debugging 62 1.1 christos --------------- 63 1.1 christos 64 1.1 christos If you build for debugging, the default on VMS is that image 65 1.1 christos activation starts the debugger automatically, giving you a debug 66 1.1 christos prompt. Unfortunately, this disrupts all other uses, such as running 67 1.1 christos test programs in the test framework. 68 1.1 christos 69 1.1 christos Generally speaking, if you build for debugging, only use the programs 70 1.1 christos directly for debugging. Do not try to use them from a script, such 71 1.1 christos as running the test suite. 72 1.1 christos 73 1.1 christos ### The following is not available on Alpha 74 1.1 christos 75 1.1 christos As a compromise, we're turning off the flag that makes the debugger 76 1.1 christos start automatically. If there is a program that you need to debug, 77 1.1 christos you need to turn that flag back on first, for example: 78 1.1 christos 79 1.1 christos $ set image /flag=call_debug [.test]evp_test.exe 80 1.1 christos 81 1.1 christos Then just run it and you will find yourself in a debugging session. 82 1.1 christos When done, we recommend that you turn that flag back off: 83 1.1 christos 84 1.1 christos $ set image /flag=nocall_debug [.test]evp_test.exe 85 1.1 christos 86 1.1 christos About assembler acceleration 87 1.1 christos ---------------------------- 88 1.1 christos 89 1.1 christos OpenSSL has assembler acceleration for a number of BIGNUM and crypto 90 1.1 christos routines. The VMS config targets tries to look for a selection of 91 1.1 christos assemblers and will use what they find. If none of the assemblers are 92 1.1 christos found, OpenSSL will be built as if `no-asm` was configured. 93 1.1 christos 94 1.1 christos ### For Itanium / IA64 / I64 95 1.1 christos 96 1.1 christos - There is only one assembler, a port of Intel's `ias`, found in the 97 1.1 christos HP Open Source Tools CD, available through [DECUSlib](http://www.decuslib.com). 98 1.1 christos It's assumed to be set up as per the instructions, where `disk` and 99 1.1 christos `dir` are expected to be adapted to local conditions: 100 1.1 christos 101 1.1 christos $ ias :== $disk:[dir]iasi64.exe 102 1.1 christos 103 1.1 christos Checking the distribution 104 1.1 christos ------------------------- 105 1.1 christos 106 1.1 christos There have been reports of places where the distribution didn't quite 107 1.1 christos get through, for example if you've copied the tree from a NFS-mounted 108 1.1 christos Unix mount point. 109 1.1 christos 110 1.1 christos The easiest way to check if everything got through as it should is to 111 1.1 christos check that this file exists: 112 1.1 christos 113 1.1 christos [.include.openssl]configuration^.h.in 114 1.1 christos 115 1.1 christos The best way to get a correct distribution is to download the gzipped 116 1.1 christos tar file from ftp://ftp.openssl.org/source/, use `GZIP -d` to uncompress 117 1.1 christos it and `VMSTAR` to unpack the resulting tar file. 118 1.1 christos 119 1.1 christos Gzip and VMSTAR are available here: 120 1.1 christos 121 1.1 christos <http://antinode.info/dec/index.html#Software> 122 1.1 christos 123 1.1 christos Should you need it, you can find UnZip for VMS here: 124 1.1 christos 125 1.1 christos <http://www.info-zip.org/UnZip.html> 126 1.1 christos 127 1.1 christos How the value of 'arch' is determined 128 1.1 christos ------------------------------------- 129 1.1 christos 130 1.1 christos 'arch' is mentioned in INSTALL. It's value is determined like this: 131 1.1 christos 132 1.1 christos arch = f$edit( f$getsyi( "arch_name"), "upcase") 133