mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-31 14:35:26 +00:00
[master] win32 fixes
3605. [port] win32: Addressed several compatibility issues with newer versions of Visual Studio. [RT #33916] 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:
3
CHANGES
3
CHANGES
@@ -1,3 +1,6 @@
|
||||
3605. [port] win32: Addressed several compatibility issues
|
||||
with newer versions of Visual Studio. [RT #33916]
|
||||
|
||||
3604. [bug] Fixed a compile-time error when building with
|
||||
JSON but not XML. [RT #33959]
|
||||
|
||||
|
@@ -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
|
||||
|
||||
|
||||
/*
|
||||
|
@@ -51,9 +51,10 @@ isc_stdio_close(FILE *f) {
|
||||
|
||||
isc_result_t
|
||||
isc_stdio_seek(FILE *f, off_t offset, int whence) {
|
||||
/* based on the fact off_t is typedef to long */
|
||||
int r;
|
||||
|
||||
r = fseeko(f, offset, whence);
|
||||
r = fseek(f, offset, whence);
|
||||
if (r == 0)
|
||||
return (ISC_R_SUCCESS);
|
||||
else
|
||||
@@ -62,11 +63,12 @@ isc_stdio_seek(FILE *f, off_t offset, int whence) {
|
||||
|
||||
isc_result_t
|
||||
isc_stdio_tell(FILE *f, off_t *offsetp) {
|
||||
off_t r;
|
||||
/* based on the fact off_t is typedef to long */
|
||||
long r;
|
||||
|
||||
REQUIRE(offsetp != NULL);
|
||||
|
||||
r = ftello(f);
|
||||
r = ftell(f);
|
||||
if (r >= 0) {
|
||||
*offsetp = r;
|
||||
return (ISC_R_SUCCESS);
|
||||
|
@@ -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.10 for Win32 Source Build Instructions. 12-June-2013
|
||||
BIND 9.10 for Win32 Source Build Instructions. 24-June-2013
|
||||
|
||||
Building BIND 9.10 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:
|
||||
|
||||
|
Reference in New Issue
Block a user