+3605. [port] win32: Addressed several compatibility issues
+ with newer versions of Visual Studio. [RT #33916]
+
3603. [bug] Install <isc/stat.h>. [RT #33956]
3600. [cleanup] dig: Fixed a typo in the warning output when receiving
#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;
_startupinfo *);
void __cdecl _setargv(void);
-#ifdef _M_IX86
+#ifdef ISC_ADJUST_FDIV
/* Pentium FDIV adjustment */
extern int _adjust_fdiv;
extern int * _imp___adjust_fdiv;
__getmainargs(argc, argv, envp, _dowildcard, &startinfo);
__initenv = *envp;
-#ifdef _M_IX86
+#ifdef ISC_ADJUST_FDIV
_adjust_fdiv = * _imp___adjust_fdiv;
_setdefaultprecision();
#endif
* 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
/***
* 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 */
struct sockaddr *ai_addr; /* Binary address */
struct addrinfo *ai_next; /* Next structure in linked list */
};
+#endif
/*
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);
* 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
/*
* 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 {
call BuildOpenSSL.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
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
$Id$
- BIND 9.4 for Win32 Source Build Instructions. 28-May-2005
+ BIND 9.6 for Win32 Source Build Instructions. 24-June-2013
-Building BIND 9.4 on Windows NT/2000 has the following prerequisites:
+Building BIND 9.6 on Windows NT/2000 has the following prerequisites:
+
+1) You need to install Perl for Windows. ActivePerl
+(http://www.activestate.com/) and Strawberry Perl
+(http://www.strawberryperl.com) have both been tested and found
+to work.
-1) You need to install Perl for Windows NT/2000. ActiveState
-(http://www.activestate.com/) is the one most people install and use;
2) OpenSSL (http://www.openssl.org) needs to be downloaded and built
on the system on which you are building BIND.
-3) If you want to build using Visual C++ 6.0, you'll need some extra
+
+3) If you wish to use the statistics channel, LibXML2
+(ftp://xmlsoft.org/libxml2) needs to be downloaded and built on
+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) 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: