mirror of https://github.com/openssl/openssl
Configuration / build: make it possible to disable building of modules
While we're at it, sort out inconsistencies with the build of modules: - not building shared libraries means not building dynamic engines. However, other modules may still be built. - not having DSO functionality doesn't mean not to build modules (even though we can't use them from apps linked with libraries that are built this way). Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/8623)
This commit is contained in:
parent
22b414672d
commit
34786bdee0
24
Configure
24
Configure
|
@ -377,6 +377,7 @@ my @disablables = (
|
||||||
"md2",
|
"md2",
|
||||||
"md4",
|
"md4",
|
||||||
"mdc2",
|
"mdc2",
|
||||||
|
"module",
|
||||||
"msan",
|
"msan",
|
||||||
"multiblock",
|
"multiblock",
|
||||||
"nextprotoneg",
|
"nextprotoneg",
|
||||||
|
@ -493,9 +494,23 @@ my @disable_cascades = (
|
||||||
|
|
||||||
"crypto-mdebug" => [ "crypto-mdebug-backtrace" ],
|
"crypto-mdebug" => [ "crypto-mdebug-backtrace" ],
|
||||||
|
|
||||||
# Without position independent code, there can be no shared libraries or DSOs
|
# If no modules, then no dynamic engines either
|
||||||
"pic" => [ "shared" ],
|
"module" => [ "dynamic-engine" ],
|
||||||
|
|
||||||
|
# Without shared libraries, dynamic engines aren't possible.
|
||||||
|
# This is due to them having to link with libcrypto and register features
|
||||||
|
# using the ENGINE functionality, and since that relies on global tables,
|
||||||
|
# those *have* to be exacty the same as the ones accessed from the app,
|
||||||
|
# which cannot be guaranteed if shared libraries aren't present.
|
||||||
|
# (note that even with shared libraries, both the app and dynamic engines
|
||||||
|
# must be linked with the same library)
|
||||||
"shared" => [ "dynamic-engine" ],
|
"shared" => [ "dynamic-engine" ],
|
||||||
|
# Other modules don't necessarily have to link with libcrypto, so shared
|
||||||
|
# libraries do not have to be a condition to produce those.
|
||||||
|
|
||||||
|
# Without position independent code, there can be no shared libraries
|
||||||
|
# or modules.
|
||||||
|
"pic" => [ "shared", "module" ],
|
||||||
|
|
||||||
"engine" => [ grep /eng$/, @disablables ],
|
"engine" => [ grep /eng$/, @disablables ],
|
||||||
"hw" => [ "padlockeng" ],
|
"hw" => [ "padlockeng" ],
|
||||||
|
@ -1206,7 +1221,7 @@ foreach my $what (sort keys %disabled) {
|
||||||
|
|
||||||
$config{options} .= " no-$what";
|
$config{options} .= " no-$what";
|
||||||
|
|
||||||
if (!grep { $what eq $_ } ( 'buildtest-c++', 'threads', 'shared',
|
if (!grep { $what eq $_ } ( 'buildtest-c++', 'threads', 'shared', 'module',
|
||||||
'pic', 'dynamic-engine', 'makedepend',
|
'pic', 'dynamic-engine', 'makedepend',
|
||||||
'zlib-dynamic', 'zlib', 'sse2' )) {
|
'zlib-dynamic', 'zlib', 'sse2' )) {
|
||||||
(my $WHAT = uc $what) =~ s|-|_|g;
|
(my $WHAT = uc $what) =~ s|-|_|g;
|
||||||
|
@ -1312,9 +1327,8 @@ if ($target{shared_target} eq "")
|
||||||
{
|
{
|
||||||
$no_shared_warn = 1
|
$no_shared_warn = 1
|
||||||
if (!$disabled{shared} || !$disabled{"dynamic-engine"});
|
if (!$disabled{shared} || !$disabled{"dynamic-engine"});
|
||||||
$disabled{shared} = "no-shared-target";
|
|
||||||
$disabled{pic} = $disabled{shared} = $disabled{"dynamic-engine"} =
|
$disabled{pic} = $disabled{shared} = $disabled{"dynamic-engine"} =
|
||||||
"no-shared-target";
|
$disabled{module} = "no-shared-target";
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($disabled{"dynamic-engine"}) {
|
if ($disabled{"dynamic-engine"}) {
|
||||||
|
|
|
@ -603,7 +603,7 @@ IF[{- !$disabled{tests} -}]
|
||||||
SOURCE[provider_test]=provider_test.c p_test.c
|
SOURCE[provider_test]=provider_test.c p_test.c
|
||||||
INCLUDE[provider_test]=../include ../apps/include
|
INCLUDE[provider_test]=../include ../apps/include
|
||||||
DEPEND[provider_test]=../libcrypto.a libtestutil.a
|
DEPEND[provider_test]=../libcrypto.a libtestutil.a
|
||||||
IF[{- !$disabled{shared} -}]
|
IF[{- !$disabled{module} -}]
|
||||||
MODULES{noinst}=p_test
|
MODULES{noinst}=p_test
|
||||||
SOURCE[p_test]=p_test.c
|
SOURCE[p_test]=p_test.c
|
||||||
INCLUDE[p_test]=../include
|
INCLUDE[p_test]=../include
|
||||||
|
|
Loading…
Reference in New Issue