mirror of
https://github.com/isc-projects/bind9.git
synced 2026-06-13 17:40:00 -04:00
[v9_9] win32 fixes
3605. [port] win32: Addressed several compatibility issues
with newer versions of Visual Studio. [RT #33916]
(cherry picked from commit f42c0dcca8)
Squashed commit of the following:
commit 4127af15f85da90cf2bd3a0c5a558daae89e833a
Author: Francis Dupont <fdupont@isc.org>
Date: Tue Jun 25 22:41:53 2013 +0200
make the last change to be text
commit 21ef4891b9ee3e3aefb45d4c80d5cb7ec78f264f
Author: Curtis Blackburn <ckb@isc.org>
Date: Tue Jun 25 12:35:08 2013 -0500
[rt33916] re-worded for easier reading
commit 83828e47e62fea4070441e645ba8fed338255ceb
Author: Francis Dupont <fdupont@isc.org>
Date: Mon Jun 24 16:08:11 2013 +0200
introduce a VCRedistPath env var
commit 0337f2554f168993a65945e78c2879e9bfca5293
Author: Francis Dupont <fdupont@isc.org>
Date: Sun Jun 23 01:23:26 2013 +0200
_adjust_fdiv for VS < 2010
commit 375fdd5c06be276b0ff0ad589c0e22b809339fe9
Author: Francis Dupont <fdupont@isc.org>
Date: Thu Jun 20 16:27:04 2013 +0200
move to MSVC v1600 as it still breaks on VS 2010
commit bfcaf72071e9d8df1d0ce0c5f05b69acd51bf698
Author: Francis Dupont <fdupont@isc.org>
Date: Thu Jun 20 15:57:35 2013 +0200
WIN32: avoid addrinfo redef
commit 18504c3e50b11e66a0b573c7cb3d61094bfa5b52
Author: Francis Dupont <fdupont@isc.org>
Date: Thu Jun 20 15:54:38 2013 +0200
WIN32: fseek/ftell
commit f9a4fdccc5ab1c74c64412fb76da7dfd161787b2
Author: Francis Dupont <fdupont@isc.org>
Date: Thu Jun 20 15:13:01 2013 +0200
fix WIN32 error redefs in net.h (isc ad lwres libs)
This commit is contained in:
parent
560800cf93
commit
bd96797412
9 changed files with 202 additions and 4 deletions
3
CHANGES
3
CHANGES
|
|
@ -1,3 +1,6 @@
|
|||
3605. [port] win32: Addressed several compatibility issues
|
||||
with newer versions of Visual Studio. [RT #33916]
|
||||
|
||||
3603. [bug] Install <isc/stat.h>. [RT #33956]
|
||||
|
||||
3601. [bug] Added to PKCS#11 openssl patches a value len
|
||||
|
|
|
|||
|
|
@ -28,6 +28,11 @@
|
|||
#include <named/main.h>
|
||||
#include <named/server.h>
|
||||
|
||||
/* In fact more bound to the platform toolset... */
|
||||
#if defined(_M_IX86) && (_MSC_VER < 1600)
|
||||
#define ISC_ADJUST_FDIV
|
||||
#endif
|
||||
|
||||
/* Handle to SCM for updating service status */
|
||||
static SERVICE_STATUS_HANDLE hServiceStatus = 0;
|
||||
static BOOL foreground = FALSE;
|
||||
|
|
@ -199,7 +204,7 @@ _CRTIMP void __cdecl __getmainargs(int *, char ***, char ***, int,
|
|||
_startupinfo *);
|
||||
void __cdecl _setargv(void);
|
||||
|
||||
#ifdef _M_IX86
|
||||
#ifdef ISC_ADJUST_FDIV
|
||||
/* Pentium FDIV adjustment */
|
||||
extern int _adjust_fdiv;
|
||||
extern int * _imp___adjust_fdiv;
|
||||
|
|
@ -236,7 +241,7 @@ void GetArgs(int *argc, char ***argv, char ***envp)
|
|||
__getmainargs(argc, argv, envp, _dowildcard, &startinfo);
|
||||
__initenv = *envp;
|
||||
|
||||
#ifdef _M_IX86
|
||||
#ifdef ISC_ADJUST_FDIV
|
||||
_adjust_fdiv = * _imp___adjust_fdiv;
|
||||
_setdefaultprecision();
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -189,41 +189,113 @@ typedef isc_uint16_t in_port_t;
|
|||
* Use the WSA constants instead.
|
||||
*/
|
||||
|
||||
#include <errno.h>
|
||||
|
||||
#ifndef EWOULDBLOCK
|
||||
#define EWOULDBLOCK WSAEWOULDBLOCK
|
||||
#endif
|
||||
#ifndef EINPROGRESS
|
||||
#define EINPROGRESS WSAEINPROGRESS
|
||||
#endif
|
||||
#ifndef EALREADY
|
||||
#define EALREADY WSAEALREADY
|
||||
#endif
|
||||
#ifndef ENOTSOCK
|
||||
#define ENOTSOCK WSAENOTSOCK
|
||||
#endif
|
||||
#ifndef EDESTADDRREQ
|
||||
#define EDESTADDRREQ WSAEDESTADDRREQ
|
||||
#endif
|
||||
#ifndef EMSGSIZE
|
||||
#define EMSGSIZE WSAEMSGSIZE
|
||||
#endif
|
||||
#ifndef EPROTOTYPE
|
||||
#define EPROTOTYPE WSAEPROTOTYPE
|
||||
#endif
|
||||
#ifndef ENOPROTOOPT
|
||||
#define ENOPROTOOPT WSAENOPROTOOPT
|
||||
#endif
|
||||
#ifndef EPROTONOSUPPORT
|
||||
#define EPROTONOSUPPORT WSAEPROTONOSUPPORT
|
||||
#endif
|
||||
#ifndef ESOCKTNOSUPPORT
|
||||
#define ESOCKTNOSUPPORT WSAESOCKTNOSUPPORT
|
||||
#endif
|
||||
#ifndef EOPNOTSUPP
|
||||
#define EOPNOTSUPP WSAEOPNOTSUPP
|
||||
#endif
|
||||
#ifndef EPFNOSUPPORT
|
||||
#define EPFNOSUPPORT WSAEPFNOSUPPORT
|
||||
#endif
|
||||
#ifndef EAFNOSUPPORT
|
||||
#define EAFNOSUPPORT WSAEAFNOSUPPORT
|
||||
#endif
|
||||
#ifndef EADDRINUSE
|
||||
#define EADDRINUSE WSAEADDRINUSE
|
||||
#endif
|
||||
#ifndef EADDRNOTAVAIL
|
||||
#define EADDRNOTAVAIL WSAEADDRNOTAVAIL
|
||||
#endif
|
||||
#ifndef ENETDOWN
|
||||
#define ENETDOWN WSAENETDOWN
|
||||
#endif
|
||||
#ifndef ENETUNREACH
|
||||
#define ENETUNREACH WSAENETUNREACH
|
||||
#endif
|
||||
#ifndef ENETRESET
|
||||
#define ENETRESET WSAENETRESET
|
||||
#endif
|
||||
#ifndef ECONNABORTED
|
||||
#define ECONNABORTED WSAECONNABORTED
|
||||
#endif
|
||||
#ifndef ECONNRESET
|
||||
#define ECONNRESET WSAECONNRESET
|
||||
#endif
|
||||
#ifndef ENOBUFS
|
||||
#define ENOBUFS WSAENOBUFS
|
||||
#endif
|
||||
#ifndef EISCONN
|
||||
#define EISCONN WSAEISCONN
|
||||
#endif
|
||||
#ifndef ENOTCONN
|
||||
#define ENOTCONN WSAENOTCONN
|
||||
#endif
|
||||
#ifndef ESHUTDOWN
|
||||
#define ESHUTDOWN WSAESHUTDOWN
|
||||
#endif
|
||||
#ifndef ETOOMANYREFS
|
||||
#define ETOOMANYREFS WSAETOOMANYREFS
|
||||
#endif
|
||||
#ifndef ETIMEDOUT
|
||||
#define ETIMEDOUT WSAETIMEDOUT
|
||||
#endif
|
||||
#ifndef ECONNREFUSED
|
||||
#define ECONNREFUSED WSAECONNREFUSED
|
||||
#endif
|
||||
#ifndef ELOOP
|
||||
#define ELOOP WSAELOOP
|
||||
#endif
|
||||
#ifndef EHOSTDOWN
|
||||
#define EHOSTDOWN WSAEHOSTDOWN
|
||||
#endif
|
||||
#ifndef EHOSTUNREACH
|
||||
#define EHOSTUNREACH WSAEHOSTUNREACH
|
||||
#endif
|
||||
#ifndef EPROCLIM
|
||||
#define EPROCLIM WSAEPROCLIM
|
||||
#endif
|
||||
#ifndef EUSERS
|
||||
#define EUSERS WSAEUSERS
|
||||
#endif
|
||||
#ifndef EDQUOT
|
||||
#define EDQUOT WSAEDQUOT
|
||||
#endif
|
||||
#ifndef ESTALE
|
||||
#define ESTALE WSAESTALE
|
||||
#endif
|
||||
#ifndef EREMOTE
|
||||
#define EREMOTE WSAEREMOTE
|
||||
#endif
|
||||
|
||||
|
||||
/***
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@
|
|||
* Define if <netdb.h> does not declare struct addrinfo.
|
||||
*/
|
||||
|
||||
#if _MSC_VER < 1600
|
||||
struct addrinfo {
|
||||
int ai_flags; /* AI_PASSIVE, AI_CANONNAME */
|
||||
int ai_family; /* PF_xxx */
|
||||
|
|
@ -37,6 +38,7 @@ struct addrinfo {
|
|||
struct sockaddr *ai_addr; /* Binary address */
|
||||
struct addrinfo *ai_next; /* Next structure in linked list */
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -50,6 +50,7 @@ isc_stdio_close(FILE *f) {
|
|||
|
||||
isc_result_t
|
||||
isc_stdio_seek(FILE *f, long offset, int whence) {
|
||||
/* based on the fact off_t is typedef to long */
|
||||
int r;
|
||||
|
||||
r = fseek(f, offset, whence);
|
||||
|
|
|
|||
|
|
@ -112,41 +112,113 @@
|
|||
* Use the WSA constants instead.
|
||||
*/
|
||||
|
||||
#include <errno.h>
|
||||
|
||||
#ifndef EWOULDBLOCK
|
||||
#define EWOULDBLOCK WSAEWOULDBLOCK
|
||||
#endif
|
||||
#ifndef EINPROGRESS
|
||||
#define EINPROGRESS WSAEINPROGRESS
|
||||
#endif
|
||||
#ifndef EALREADY
|
||||
#define EALREADY WSAEALREADY
|
||||
#endif
|
||||
#ifndef ENOTSOCK
|
||||
#define ENOTSOCK WSAENOTSOCK
|
||||
#endif
|
||||
#ifndef EDESTADDRREQ
|
||||
#define EDESTADDRREQ WSAEDESTADDRREQ
|
||||
#endif
|
||||
#ifndef EMSGSIZE
|
||||
#define EMSGSIZE WSAEMSGSIZE
|
||||
#endif
|
||||
#ifndef EPROTOTYPE
|
||||
#define EPROTOTYPE WSAEPROTOTYPE
|
||||
#endif
|
||||
#ifndef ENOPROTOOPT
|
||||
#define ENOPROTOOPT WSAENOPROTOOPT
|
||||
#endif
|
||||
#ifndef EPROTONOSUPPORT
|
||||
#define EPROTONOSUPPORT WSAEPROTONOSUPPORT
|
||||
#endif
|
||||
#ifndef ESOCKTNOSUPPORT
|
||||
#define ESOCKTNOSUPPORT WSAESOCKTNOSUPPORT
|
||||
#endif
|
||||
#ifndef EOPNOTSUPP
|
||||
#define EOPNOTSUPP WSAEOPNOTSUPP
|
||||
#endif
|
||||
#ifndef EPFNOSUPPORT
|
||||
#define EPFNOSUPPORT WSAEPFNOSUPPORT
|
||||
#endif
|
||||
#ifndef EAFNOSUPPORT
|
||||
#define EAFNOSUPPORT WSAEAFNOSUPPORT
|
||||
#endif
|
||||
#ifndef EADDRINUSE
|
||||
#define EADDRINUSE WSAEADDRINUSE
|
||||
#endif
|
||||
#ifndef EADDRNOTAVAIL
|
||||
#define EADDRNOTAVAIL WSAEADDRNOTAVAIL
|
||||
#endif
|
||||
#ifndef ENETDOWN
|
||||
#define ENETDOWN WSAENETDOWN
|
||||
#endif
|
||||
#ifndef ENETUNREACH
|
||||
#define ENETUNREACH WSAENETUNREACH
|
||||
#endif
|
||||
#ifndef ENETRESET
|
||||
#define ENETRESET WSAENETRESET
|
||||
#endif
|
||||
#ifndef ECONNABORTED
|
||||
#define ECONNABORTED WSAECONNABORTED
|
||||
#endif
|
||||
#ifndef ECONNRESET
|
||||
#define ECONNRESET WSAECONNRESET
|
||||
#endif
|
||||
#ifndef ENOBUFS
|
||||
#define ENOBUFS WSAENOBUFS
|
||||
#endif
|
||||
#ifndef EISCONN
|
||||
#define EISCONN WSAEISCONN
|
||||
#endif
|
||||
#ifndef ENOTCONN
|
||||
#define ENOTCONN WSAENOTCONN
|
||||
#endif
|
||||
#ifndef ESHUTDOWN
|
||||
#define ESHUTDOWN WSAESHUTDOWN
|
||||
#endif
|
||||
#ifndef ETOOMANYREFS
|
||||
#define ETOOMANYREFS WSAETOOMANYREFS
|
||||
#endif
|
||||
#ifndef ETIMEDOUT
|
||||
#define ETIMEDOUT WSAETIMEDOUT
|
||||
#endif
|
||||
#ifndef ECONNREFUSED
|
||||
#define ECONNREFUSED WSAECONNREFUSED
|
||||
#endif
|
||||
#ifndef ELOOP
|
||||
#define ELOOP WSAELOOP
|
||||
#endif
|
||||
#ifndef EHOSTDOWN
|
||||
#define EHOSTDOWN WSAEHOSTDOWN
|
||||
#endif
|
||||
#ifndef EHOSTUNREACH
|
||||
#define EHOSTUNREACH WSAEHOSTUNREACH
|
||||
#endif
|
||||
#ifndef EPROCLIM
|
||||
#define EPROCLIM WSAEPROCLIM
|
||||
#endif
|
||||
#ifndef EUSERS
|
||||
#define EUSERS WSAEUSERS
|
||||
#endif
|
||||
#ifndef EDQUOT
|
||||
#define EDQUOT WSAEDQUOT
|
||||
#endif
|
||||
#ifndef ESTALE
|
||||
#define ESTALE WSAESTALE
|
||||
#endif
|
||||
#ifndef EREMOTE
|
||||
#define EREMOTE WSAEREMOTE
|
||||
#endif
|
||||
|
||||
LWRES_LANG_BEGINDECLS
|
||||
|
||||
|
|
|
|||
|
|
@ -31,7 +31,9 @@
|
|||
/*
|
||||
* Define if <netdb.h> does not declare struct addrinfo.
|
||||
*/
|
||||
#if _MSC_VER < 1600
|
||||
#define ISC_LWRES_NEEDADDRINFO 1
|
||||
#endif
|
||||
|
||||
#ifdef ISC_LWRES_NEEDADDRINFO
|
||||
struct addrinfo {
|
||||
|
|
|
|||
|
|
@ -81,6 +81,36 @@ copy ..\doc\misc\migration-4to9 ..\Build\Release
|
|||
|
||||
call SetupLibs.bat
|
||||
|
||||
rem
|
||||
rem try to find vcredist_x86.exe upper
|
||||
rem
|
||||
if Not Defined VCRedistPath (
|
||||
if Exist ..\..\vcredist_x86.exe set VCRedistPath=..\..\vcredist_x86.exe
|
||||
)
|
||||
|
||||
rem
|
||||
rem get vcredist where someone said it should be
|
||||
rem
|
||||
if Defined VCRedistPath (
|
||||
|
||||
if Exist "%VCRedistPath%" (
|
||||
|
||||
echo Copying Visual C x86 Redistributable Installer
|
||||
|
||||
rem
|
||||
rem Use /Y so we allways have the current version of the installer.
|
||||
rem
|
||||
|
||||
copy /Y "%VCRedistPath%" ..\Build\Release\
|
||||
copy /Y "%VCRedistPath%" ..\Build\Debug\
|
||||
|
||||
) else (
|
||||
|
||||
echo "**** %VCRedistPath% not found ****"
|
||||
|
||||
)
|
||||
) else (
|
||||
|
||||
rem
|
||||
rem set vcredist here so that it is correctly expanded in the if body
|
||||
rem
|
||||
|
|
@ -106,8 +136,14 @@ copy /Y "%FrameworkSDKDir%\%vcredist%" ..\Build\Debug\
|
|||
echo "**** %FrameworkSDKDir%\%vcredist% not found ****"
|
||||
)
|
||||
) else (
|
||||
if NOT Defined FrameworkDir (
|
||||
echo "**** Warning FrameworkSDKDir not defined ****"
|
||||
echo "**** Run vsvars32.bat ****"
|
||||
) else (
|
||||
echo "**** vcredist_x86.exe not found ****"
|
||||
echo "**** please set VCRedistPath ****"
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
echo Running Message Compiler
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ See COPYRIGHT in the source root or http://isc.org/copyright.html for terms.
|
|||
|
||||
$Id$
|
||||
|
||||
BIND 9.9 for Win32 Source Build Instructions. 12-June-2013
|
||||
BIND 9.9 for Win32 Source Build Instructions. 24-June-2013
|
||||
|
||||
Building BIND 9.9 on Windows XP/Vista/7/8 or server 2003/2008/2008R2
|
||||
has the following prerequisites:
|
||||
|
|
@ -22,7 +22,12 @@ on the system on which you are building BIND.
|
|||
the system on which you are building BIND. (If you do not wish
|
||||
to use the statistics channel, remove HAVE_LIBXML2 from config.h.win32.)
|
||||
|
||||
4) If you want to build using Visual C++ 6.0, you'll need some extra
|
||||
4) The BIND Installer (BINDInstall) includes a copy of the
|
||||
redistributable runtime object vcredist_x86.exe, which is included
|
||||
with Visual Studio and can be downloaded from Microsoft. This file
|
||||
must be in place prior to running the build setup script.
|
||||
|
||||
5) If you want to build using Visual C++ 6.0, you'll need some extra
|
||||
files that are to be found in the Platform SDK (which you will need
|
||||
to install), namely:
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue