| 
									
										
										
										
											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") |