2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-31 14:35:26 +00:00

Fix various build failures on Windows (Courtesy of rockerinthelocker)

This commit is contained in:
Ondřej Surý
2018-05-30 15:09:55 +02:00
parent 57c3064785
commit 05d7aa5734
3 changed files with 56 additions and 3 deletions

View File

@@ -209,6 +209,10 @@ my @substdefh = ("AES_CC",
"HAVE_OPENSSL_ED448",
"HAVE_OPENSSL_EVP_AES",
"HAVE_OPENSSL_GOST",
"HAVE_DH_GET0_KEY",
"HAVE_DSA_GET0_PQG",
"HAVE_ECDSA_SIG_GET0",
"HAVE_RSA_SET0_KEY",
"HAVE_PKCS11",
"HAVE_PKCS11_ECDSA",
"HAVE_PKCS11_ED25519",
@@ -1138,6 +1142,11 @@ if ($vcredist_path eq " --infer-- ") {
"redist", "1033"));
}
# 'VCToolsRedistDir' is available since Visual Studio 2017.
if ($ENV{"VCToolsRedistDir"}) {
push(@vcpaths, $ENV{"VCToolsRedistDir"});
}
my $rfile;
if ($want_win32 eq "yes") {
$rfile = "vcredist_x86.exe";
@@ -1594,6 +1603,41 @@ EOF
}
}
# check OpenSSL built-in support for DH/DSA/ECDSA/RSA functions
if ($use_openssl eq "yes") {
if ($verbose) {
printf "checking OpenSSL built-in support for DH/DSA/ECDSA/RSA functions\n";
}
open F, ">testosslfunc.c" || die $!;
print F << 'EOF';
#include <stdio.h>
#include <openssl/opensslv.h>
int main() {
if (OPENSSL_VERSION_NUMBER >= 0x10100000L) {
return (0);
}
printf("\n\nFound OPENSSL_VERSION_NUMBER %#010x\n",
OPENSSL_VERSION_NUMBER);
printf("This version has no built-in support for DH/DSA/ECDSA/RSA functions.\n\n");
return (1);
}
EOF
close F;
my $include = $configinc{"OPENSSL_INC"};
my $library = $configlib{"OPENSSL_LIB"};
$compret = `cl /nologo /MD /I "$include" testosslfunc.c "$library"`;
if (grep { -f and -x } ".\\testosslfunc.exe") {
`.\\testosslfunc.exe`;
if ($? == 0) {
$configdefh{"HAVE_DH_GET0_KEY"} = 1;
$configdefh{"HAVE_DSA_GET0_PQG"} = 1;
$configdefh{"HAVE_ECDSA_SIG_GET0"} = 1;
$configdefh{"HAVE_RSA_SET0_KEY"} = 1;
}
}
}
# check FIPS_mode
if ($use_openssl eq "yes") {