Configuration: support building for OpenVMS for x86_64
authorRichard Levitte <levitte@openssl.org>
Mon, 26 Jul 2021 10:40:01 +0000 (12:40 +0200)
committerPauli <pauli@openssl.org>
Mon, 6 Sep 2021 08:42:01 +0000 (18:42 +1000)
OpenVMS for x86_64 is currently out on a field test.  Building
programs for it is currently done with cross compilation on Itanium.
The cross compilation tools are made available by running a script,
which makes cross-compilation variants of most commands available, and
adds the cross-compilation C compiler XCC.

Reviewed-by: Paul Dale <pauli@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/16498)

Configurations/50-vms-x86_64.conf [new file with mode: 0644]
Configurations/descrip.mms.tmpl

diff --git a/Configurations/50-vms-x86_64.conf b/Configurations/50-vms-x86_64.conf
new file mode 100644 (file)
index 0000000..ef6bd7b
--- /dev/null
@@ -0,0 +1,20 @@
+## -*- 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.
+
+(
+ 'vms-x86_64' => {
+     inherit_from   => [ 'vms-generic' ],
+     CC             => 'XCC',
+     bn_ops         => 'SIXTY_FOUR_BIT',
+     pointer_size   => '',
+     setup_commands => [ '@SYS$MANAGER:X86_XTOOLS$SYLOGIN.COM' ],
+ }
+);
index 2d17ddebfdb14b8f9283e141ca78fd09811ad43c..3db0fc72865a486541119594a8e0e7cf9f4c4336 100644 (file)
@@ -391,6 +391,8 @@ CPPFLAGS_Q={- (my $c = $lib_cppflags.$cppflags) =~ s|"|""|g;
 # .FIRST and .LAST are special targets with MMS and MMK.
 NODEBUG=@
 .FIRST :
+        {- join( "\n        \$(NODEBUG) ", @{ $target{setup_commands} // [] },
+                                           '!' ) -}
         $(NODEBUG) sourcetop = F$PARSE("$(SRCDIR)","[]A.;",,,"SYNTAX_ONLY,NO_CONCEAL") - ".][000000" - "[000000." - "][" - "]A.;" + ".]"
         $(NODEBUG) DEFINE ossl_sourceroot 'sourcetop'
         $(NODEBUG) !