From 3b2f8c771a1babbe223c9f1ca76fbc9dec5f915f Mon Sep 17 00:00:00 2001 From: Bernd Edlinger Date: Fri, 13 Sep 2019 10:45:29 +0200 Subject: [PATCH] Fix building statically without any dso support Reviewed-by: Richard Levitte (Merged from https://github.com/openssl/openssl/pull/9895) --- Configure | 5 +++-- INSTALL | 3 +++ crypto/include/internal/dso_conf.h.in | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/Configure b/Configure index 92c9d4e4d9..4415e1d6bc 100755 --- a/Configure +++ b/Configure @@ -350,6 +350,7 @@ my @disablables = ( "dgram", "dh", "dsa", + "dso", "dtls", "dynamic-engine", "ec", @@ -442,7 +443,6 @@ my %deprecated_disablables = ( "hw-padlock" => "padlockeng", "ripemd" => "rmd160", "ui" => "ui-console", - "dso" => undef, "heartbeats" => undef, ); @@ -510,6 +510,7 @@ my @disable_cascades = ( # (note that even with shared libraries, both the app and dynamic engines # must be linked with the same library) "shared" => [ "dynamic-engine", "uplink" ], + "dso" => [ "dynamic-engine", "module" ], # Other modules don't necessarily have to link with libcrypto, so shared # libraries do not have to be a condition to produce those. @@ -1239,7 +1240,7 @@ foreach my $what (sort keys %disabled) { $skipdir{engines} = $what if $what eq 'engine'; $skipdir{"crypto/$skipdir"} = $what - unless $what eq 'async' || $what eq 'err'; + unless $what eq 'async' || $what eq 'err' || $what eq 'dso'; } } diff --git a/INSTALL b/INSTALL index c02ceb1255..d576548c89 100644 --- a/INSTALL +++ b/INSTALL @@ -364,6 +364,9 @@ Don't build support for datagram based BIOs. Selecting this option will also force the disabling of DTLS. + no-dso + Don't build support for loading Dynamic Shared Objects. + enable-devcryptoeng Build the /dev/crypto engine. It is automatically selected on BSD implementations, in which case it can be disabled with diff --git a/crypto/include/internal/dso_conf.h.in b/crypto/include/internal/dso_conf.h.in index b6703f7c1d..9a373b2032 100644 --- a/crypto/include/internal/dso_conf.h.in +++ b/crypto/include/internal/dso_conf.h.in @@ -16,7 +16,7 @@ # has support compiled in for them. Currently each method is enabled # by a define "DSO_" ... we translate the "dso_scheme" config # string entry into using the following logic; - my $scheme = uc $target{dso_scheme}; + my $scheme = $disabled{dso} ? undef : uc $target{dso_scheme}; if (!$scheme) { $scheme = "NONE"; }