Fix zlib configuration options.

The macros ZLIB and ZLIB_SHARED weren't appropriately defined,
deviating wrongly from how they worked in earlier OpenSSL versions.
So, restore it so that ZLIB is defined if configured "enable-zlib" and
so that ZLIB and ZLIB_SHARED are defined if configured
"enable-zlib-dynamic".

Additionally, correct the interpretation of the --with-zlib-lib value
on Windows and VMS, where it's used to indicate the actual zlib
zlib library file / logical name, as that can differ depending on zlib
version and packaging on those platforms.

Finally for Windows and VMS, we also define the macro LIBZ with that
file name / logical name when configured "zlib-dynamic", so the
compression unit can pick it up and use it.

Reviewed-by: Matt Caswell <matt@openssl.org>
This commit is contained in:
Richard Levitte 2016-04-12 15:28:06 +02:00
parent 36d70ed519
commit 62890f4728
2 changed files with 55 additions and 28 deletions

View File

@ -43,16 +43,12 @@
BASE_common => {
template => 1,
defines =>
[ sub {
unless ($disabled{zlib}) {
if (defined($disabled{"zlib-dynamic"})) {
return "ZLIB";
} else {
return "ZLIB_SHARED";
}
}
return (); }
],
sub {
my @defs = ();
push @defs, "ZLIB" unless $disabled{zlib};
push @defs, "ZLIB_SHARED" unless $disabled{"zlib-dynamic"};
return [ @defs ];
},
},
BASE_unix => {
@ -84,7 +80,7 @@
sub {
unless ($disabled{zlib}) {
if (defined($disabled{"zlib-dynamic"})) {
return "zlib1.lib";
return $withargs{zlib_lib} || "zlib1.lib";
}
}
return (); },
@ -104,19 +100,6 @@
inherit_from => [ "BASE_common" ],
template => 1,
ex_libs =>
sub {
unless ($disabled{zlib}) {
if (defined($disabled{"zlib-dynamic"})) {
if (defined($withargs{zlib_lib})) {
return $withargs{zlib_lib}.'GNV$LIBZSHR.EXE/SHARED'
} else {
return 'GNV$LIBZSHR/SHARE';
}
}
}
return (); },
build_file => "descrip.mms",
build_scheme => [ "unified", "VMS" ],
},

View File

@ -85,6 +85,18 @@ sub vms_info {
if ($? == 0) {
push @{$vms_info->{disable_warns_p64}}, "MAYLOSEDATA3";
}
unless ($disabled{zlib}) {
if (defined($disabled{"zlib-dynamic"})) {
$vms_info->{zlib} = $withargs{zlib_lib} || 'GNV$LIBZSHR/SHARE';
$vms_info->{zlib_p32} = $withargs{zlib_lib} || 'GNV$LIBZSHR32/SHARE';
$vms_info->{zlib_p64} = $withargs{zlib_lib} || 'GNV$LIBZSHR64/SHARE';
} else {
$vms_info->{def_zlib} = $withargs{zlib_lib} || 'GNV$LIBZSHR';
$vms_info->{def_zlib_p32} = $withargs{zlib_lib} || 'GNV$LIBZSHR32';
$vms_info->{def_zlib_p64} = $withargs{zlib_lib} || 'GNV$LIBZSHR64';
}
}
}
return $vms_info;
}
@ -1755,6 +1767,12 @@ sub vms_info {
@{vms_info()->{disable_warns}};
@warnings
? "/WARNINGS=DISABLE=(".join(",",@warnings).")" : (); }),
defines =>
add(sub {
return vms_info()->{def_zlib}
? "LIBZ=\"\"\"".vms_info()->{def_zlib}."\"\"\"" : ();
}),
ex_libs => add(sub { return vms_info()->{zlib} || (); }),
#as => "???",
#debug_aflags => "/NOOPTIMIZE/DEBUG",
#release_aflags => "/OPTIMIZE/NODEBUG",
@ -1769,7 +1787,12 @@ sub vms_info {
@warnings
? "/WARNINGS=DISABLE=(".join(",",@warnings).")" : ();
} ),
ex_libs => sub { join(",", map { s|SHR([\./])|SHR32$1|g; $_ } @_) },
defines =>
add(sub {
return vms_info()->{def_zlib_p32}
? "LIBZ=\"\"\"".vms_info()->{def_zlib_p32}."\"\"\"" : ();
}),
ex_libs => add(sub { return vms_info()->{zlib_p32} || (); }),
},
"vms-alpha-p64" => {
inherit_from => [ "vms-alpha" ],
@ -1780,7 +1803,12 @@ sub vms_info {
@warnings
? "/WARNINGS=DISABLE=(".join(",",@warnings).")" : ();
} ),
ex_libs => sub { join(",", map { s|SHR([\./])|SHR64$1|g; $_ } @_) },
defines =>
add(sub {
return vms_info()->{def_zlib_p64}
? "LIBZ=\"\"\"".vms_info()->{def_zlib_p64}."\"\"\"" : ();
}),
ex_libs => add(sub { return vms_info()->{zlib_p64} || (); }),
},
"vms-ia64" => {
inherit_from => [ "vms-generic" ],
@ -1788,6 +1816,12 @@ sub vms_info {
@{vms_info()->{disable_warns}};
@warnings
? "/WARNINGS=DISABLE=(".join(",",@warnings).")" : (); }),
defines =>
add(sub {
return vms_info()->{def_zlib}
? "LIBZ=\"\"\"".vms_info()->{def_zlib}."\"\"\"" : ();
}),
ex_libs => add(sub { return vms_info()->{zlib} || (); }),
#as => "I4S",
#debug_aflags => "/NOOPTIMIZE/DEBUG",
#release_aflags => "/OPTIMIZE/NODEBUG",
@ -1802,7 +1836,12 @@ sub vms_info {
@warnings
? "/WARNINGS=DISABLE=(".join(",",@warnings).")" : ();
} ),
ex_libs => sub { join(",", map { s|SHR([\./])|SHR32$1|g; $_ } @_) },
defines =>
add(sub {
return vms_info()->{def_zlib_p32}
? "LIBZ=\"\"\"".vms_info()->{def_zlib_p32}."\"\"\"" : ();
}),
ex_libs => add(sub { return vms_info()->{zlib_p32} || (); }),
},
"vms-ia64-p64" => {
inherit_from => [ "vms-ia64" ],
@ -1813,7 +1852,12 @@ sub vms_info {
@warnings
? "/WARNINGS=DISABLE=(".join(",",@warnings).")" : ();
} ),
ex_libs => sub { join(",", map { s|SHR([\./])|SHR64$1|g; $_ } @_) },
defines =>
add(sub {
return vms_info()->{def_zlib_p64}
? "LIBZ=\"\"\"".vms_info()->{def_zlib_p64}."\"\"\"" : ();
}),
ex_libs => add(sub { return vms_info()->{zlib_p64} || (); }),
},
);