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