Update VMS configurations
authorRichard Levitte <levitte@openssl.org>
Mon, 15 May 2023 08:09:42 +0000 (10:09 +0200)
committerRichard Levitte <levitte@openssl.org>
Mon, 22 May 2023 06:29:30 +0000 (08:29 +0200)
A native x86_64 C compiler has appeared.

We preserve the previous config target with a new name to indicate that it's
for cross compilation, at least for the time being.

Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Hugo Landau <hlandau@openssl.org>
Reviewed-by: Paul Dale <pauli@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/20983)

(cherry picked from commit d6175dcca746f0996db18ab2b6b37a4152097afe)

Configurations/10-main.conf
Configurations/50-vms-x86_64.conf
util/perl/OpenSSL/config.pm

index 8f8ac322887fe5cc6e004c65161c616c1a9571bb..e8084ab8080f6704a3251821cdc86188fdda7c5f 100644 (file)
@@ -2011,5 +2011,9 @@ my %targets = (
         cflags           => add("/POINTER_SIZE=64=ARGV"),
         pointer_size     => "64",
     },
-
+    "vms-x86_64" => {
+        inherit_from     => [ "vms-generic" ],
+        bn_ops           => "SIXTY_FOUR_BIT",
+        pointer_size     => "",
+    }
 );
index ef6bd7b62c36a0c450621d329e85a04a97686b21..edde2629ade0936352c0387e1835e4a00d4c48e2 100644 (file)
@@ -1,16 +1,10 @@
 ## -*- mode: perl; -*-
 
-# OpenVMS for x86_64 is currently out on a field test.  A native C compiler
-# is currently not available, but there are cross-compilation tools for
-# OpenVMS for Itanium.  This configuration file holds the necessary target(s)
-# to make that useful.
-#
-# The assumption is that *building* is done on Itanium, and then the source
-# tree and build tree are transferred to x86_64, where tests can be performed,
-# and installation can be done.
+# OpenVMS cross compilation of x86_64 binaries on Itanium.  This doesn't
+# fit the usual cross compilation parameters that are used on Unixly machines
 
 (
- 'vms-x86_64' => {
+ 'vms-x86_64-cross-ia64' => {
      inherit_from   => [ 'vms-generic' ],
      CC             => 'XCC',
      bn_ops         => 'SIXTY_FOUR_BIT',
index c44a8dfb3fccb932e879433cd7256d57ac083b91..cc9917b6e67c6497c58e6e5b3fa8a34a60703271 100755 (executable)
@@ -354,8 +354,12 @@ sub determine_compiler_settings {
         if ( $SYSTEM eq 'OpenVMS' ) {
             my $v = `CC/VERSION NLA0:`;
             if ($? == 0) {
+                # The normal releases have a version number prefixed with a V.
+                # However, other letters have been seen as well (for example X),
+                # and it's documented that HP (now VSI) reserve the letter W, X,
+                # Y and Z for their own uses.
                 my ($vendor, $version) =
-                    ( $v =~ m/^([A-Z]+) C V([0-9\.-]+) on / );
+                    ( $v =~ m/^([A-Z]+) C [VWXYZ]([0-9\.-]+)(:? +\(.*?\))? on / );
                 my ($major, $minor, $patch) =
                     ( $version =~ m/^([0-9]+)\.([0-9]+)-0*?(0|[1-9][0-9]*)$/ );
                 $CC = 'CC';