2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-30 22:15:20 +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

@@ -330,6 +330,18 @@ typedef __int64 off_t;
/* Define if your OpenSSL version supports GOST. */
@HAVE_OPENSSL_GOST@
/* Define if your OpenSSL version supports DH functions. */
@HAVE_DH_GET0_KEY@
/* Define if your OpenSSL version supports DSA functions. */
@HAVE_DSA_GET0_PQG@
/* Define if your OpenSSL version supports ECDSA functions. */
@HAVE_ECDSA_SIG_GET0@
/* Define if your OpenSSL version supports RSA functions. */
@HAVE_RSA_SET0_KEY@
/* Define if native PKCS#11 is used as cryptographic library provider */
@HAVE_PKCS11@

View File

@@ -56,9 +56,6 @@
#define ISC_PLATFORM_NEEDNTOP
#define ISC_PLATFORM_NEEDPTON
#define ISC_PLATFORM_HAVESOCKADDRSTORAGE
#if _MSC_VER >= 1900
#define ISC_PLATFORM_HAVETFO
#endif
#define ISC_PLATFORM_QUADFORMAT "I64"

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") {