Home | History | Annotate | Line # | Download | only in dist
      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