Fix building statically without any dso support
authorBernd Edlinger <bernd.edlinger@hotmail.de>
Fri, 13 Sep 2019 08:45:29 +0000 (10:45 +0200)
committerBernd Edlinger <bernd.edlinger@hotmail.de>
Mon, 16 Sep 2019 16:23:20 +0000 (18:23 +0200)
Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/9895)

Configure
INSTALL
crypto/include/internal/dso_conf.h.in

index 92c9d4e4d98eef72c5f823a98f372af4593bc6d7..4415e1d6bccdea55c700182f8a393e5309f7e784 100755 (executable)
--- 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 c02ceb12555d20fb0f613a9b4a6e24df65ea482b..d576548c89388d5ab028cb28df65ff163bfc9df2 100644 (file)
--- a/INSTALL
+++ b/INSTALL
                    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
index b6703f7c1d7bfc791c780e4582ddc1b3c4d6f319..9a373b203247df66adae4220a552daed036aab0a 100644 (file)
@@ -16,7 +16,7 @@
     # has support compiled in for them. Currently each method is enabled
     # by a define "DSO_<name>" ... 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";
     }