summaryrefslogtreecommitdiffstats
path: root/util/perl
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2022-09-27 18:57:35 +0200
committerHugo Landau <hlandau@openssl.org>2022-09-29 12:59:00 +0100
commite63f5fdcb2658961f29fe7bed7968c0dcf7328a7 (patch)
treed18706c83a143c3a69c7765609d794a46e48ebbb /util/perl
parent0747f94b5f7b7f07f21384507ba1adaea6f99e88 (diff)
OpenSSL::config: Fix VMS guesses
The MACHINE value from POSIX::uname() isn't trustworthy at all. MACHINE names like this has been seen: _HP__VMM___(1.67GHz/9.0MB) Perl's `$Config{archname}` is much more trustworthy, especially since VMS isn't a multiarch operating system, at least yet. Reviewed-by: Hugo Landau <hlandau@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/19285)
Diffstat (limited to 'util/perl')
-rwxr-xr-xutil/perl/OpenSSL/config.pm16
1 files changed, 10 insertions, 6 deletions
diff --git a/util/perl/OpenSSL/config.pm b/util/perl/OpenSSL/config.pm
index fb8fb115b3..1c6f0f694b 100755
--- a/util/perl/OpenSSL/config.pm
+++ b/util/perl/OpenSSL/config.pm
@@ -17,6 +17,7 @@ use Getopt::Std;
use File::Basename;
use IPC::Cmd;
use POSIX;
+use Config;
use Carp;
# These control our behavior.
@@ -160,6 +161,12 @@ my $guess_patterns = [
[ 'CYGWIN.*', '${MACHINE}-pc-cygwin' ],
[ 'vxworks.*', '${MACHINE}-whatever-vxworks' ],
+ # The MACHINE part of the array POSIX::uname() returns on VMS isn't
+ # worth the bits wasted on it. It's better, then, to rely on perl's
+ # %Config, which has a trustworthy item 'archname', especially since
+ # VMS installation aren't multiarch (yet)
+ [ 'OpenVMS:.*', "$Config{archname}-whatever-OpenVMS" ],
+
# Note: there's also NEO and NSR, but they are old and unsupported
[ 'NONSTOP_KERNEL:.*:NSE-.*?', 'nse-tandem-nsk${RELEASE}' ],
[ 'NONSTOP_KERNEL:.*:NSV-.*?', 'nsv-tandem-nsk${RELEASE}' ],
@@ -930,12 +937,9 @@ _____
],
# VMS values found by observation on existing machinery.
- # Unfortunately, the machine part is a bit... overdone. It seems,
- # though, that 'Alpha' exists in that part for Alphas, making it
- # distinguishable from Itanium. It will be interesting to see what
- # we'll get in the upcoming x86_64 port...
- [ '.*Alpha.*?-.*?-OpenVMS', { target => 'vms-alpha' } ],
- [ '.*?-.*?-OpenVMS', { target => 'vms-ia64' } ],
+ [ 'VMS_AXP-.*?-OpenVMS', { target => 'vms-alpha' } ],
+ [ 'VMS_IA64-.*?-OpenVMS', { target => 'vms-ia64' } ],
+ [ 'VMS_x86_64-.*?-OpenVMS', { target => 'vms-x86_64' } ],
# TODO: There are a few more choices among OpenSSL config targets, but
# reaching them involves a bit more than just a host tripet. Select