From 51b46f451fd9bd01f794fa29b59baa73bc94ab49 Mon Sep 17 00:00:00 2001 From: Yang Tse Date: Fri, 20 Feb 2009 11:30:11 +0000 Subject: [PATCH] Do not halt compilation when using VS2008 to build a Windows 2000 target --- CHANGES | 3 +++ ares/CHANGES | 3 +++ ares/config-win32.h | 28 ++++++++++++++++++++++------ lib/config-win32.h | 28 ++++++++++++++++++++++------ src/config-win32.h | 28 ++++++++++++++++++++++------ 5 files changed, 72 insertions(+), 18 deletions(-) diff --git a/CHANGES b/CHANGES index 8c480ade9..780a3f139 100644 --- a/CHANGES +++ b/CHANGES @@ -6,6 +6,9 @@ Changelog +Yang Tse (20 Feb 2009) +- Do not halt compilation when using VS2008 to build a Windows 2000 target. + Daniel Stenberg (20 Feb 2009) - Linus Nielsen Feltzing reported and helped me repeat and fix a problem with FTP with the multi interface: when a transfer fails, like when aborted by a diff --git a/ares/CHANGES b/ares/CHANGES index 2a73a484e..3a4a99ccf 100644 --- a/ares/CHANGES +++ b/ares/CHANGES @@ -1,5 +1,8 @@ Changelog for the c-ares project +* February 20 2009 (Yang Tse) +- Do not halt compilation when using VS2008 to build a Windows 2000 target. + * February 3 2009 (Phil Blundell) - If the server returns garbage or nothing at all in response to an AAAA query, go on and ask for A records anyway. diff --git a/ares/config-win32.h b/ares/config-win32.h index 6fd8288ad..f28125581 100644 --- a/ares/config-win32.h +++ b/ares/config-win32.h @@ -223,17 +223,33 @@ #define _CRT_NONSTDC_NO_DEPRECATE 1 #endif -/* VS2008 does not support Windows build targets prior to WinXP, */ -/* so, if no build target has been defined we will target WinXP. */ +/* Officially, Microsoft's Windows SDK versions 6.X do not support Windows + 2000 as a supported build target. VS2008 default installations provide an + embedded Windows SDK v6.0A along with the claim that Windows 2000 is a + valid build target for VS2008. Popular belief is that binaries built using + Windows SDK versions 6.X and Windows 2000 as a build target are functional */ +#if defined(_MSC_VER) && (_MSC_VER >= 1500) +# define VS2008_MINIMUM_TARGET 0x0500 +#endif + +/* When no build target is specified VS2008 default build target is Windows + Vista, which leaves out even Winsows XP. If no build target has been given + for VS2008 we will target the minimum Officially supported build target, + which happens to be Windows XP. */ +#if defined(_MSC_VER) && (_MSC_VER >= 1500) +# define VS2008_DEFAULT_TARGET 0x0501 +#endif + +/* VS2008 default target settings and minimum build target check */ #if defined(_MSC_VER) && (_MSC_VER >= 1500) # ifndef _WIN32_WINNT -# define _WIN32_WINNT 0x0501 +# define _WIN32_WINNT VS2008_DEFAULT_TARGET # endif # ifndef WINVER -# define WINVER 0x0501 +# define WINVER VS2008_DEFAULT_TARGET # endif -# if (_WIN32_WINNT < 0x0501) || (WINVER < 0x0501) -# error VS2008 does not support Windows build targets prior to WinXP +# if (_WIN32_WINNT < VS2008_MINIMUM_TARGET) || (WINVER < VS2008_MINIMUM_TARGET) +# error VS2008 does not support Windows build targets prior to Windows 2000 # endif #endif diff --git a/lib/config-win32.h b/lib/config-win32.h index c33137bfb..6e37a3c75 100644 --- a/lib/config-win32.h +++ b/lib/config-win32.h @@ -403,17 +403,33 @@ # endif #endif -/* VS2008 does not support Windows build targets prior to WinXP, so, if no - build target has been defined we will target WinXP. */ +/* Officially, Microsoft's Windows SDK versions 6.X do not support Windows + 2000 as a supported build target. VS2008 default installations provide an + embedded Windows SDK v6.0A along with the claim that Windows 2000 is a + valid build target for VS2008. Popular belief is that binaries built using + Windows SDK versions 6.X and Windows 2000 as a build target are functional */ +#if defined(_MSC_VER) && (_MSC_VER >= 1500) +# define VS2008_MINIMUM_TARGET 0x0500 +#endif + +/* When no build target is specified VS2008 default build target is Windows + Vista, which leaves out even Winsows XP. If no build target has been given + for VS2008 we will target the minimum Officially supported build target, + which happens to be Windows XP. */ +#if defined(_MSC_VER) && (_MSC_VER >= 1500) +# define VS2008_DEFAULT_TARGET 0x0501 +#endif + +/* VS2008 default target settings and minimum build target check */ #if defined(_MSC_VER) && (_MSC_VER >= 1500) # ifndef _WIN32_WINNT -# define _WIN32_WINNT 0x0501 +# define _WIN32_WINNT VS2008_DEFAULT_TARGET # endif # ifndef WINVER -# define WINVER 0x0501 +# define WINVER VS2008_DEFAULT_TARGET # endif -# if (_WIN32_WINNT < 0x0501) || (WINVER < 0x0501) -# error VS2008 does not support Windows build targets prior to WinXP +# if (_WIN32_WINNT < VS2008_MINIMUM_TARGET) || (WINVER < VS2008_MINIMUM_TARGET) +# error VS2008 does not support Windows build targets prior to Windows 2000 # endif #endif diff --git a/src/config-win32.h b/src/config-win32.h index 52827e42c..eb0185856 100644 --- a/src/config-win32.h +++ b/src/config-win32.h @@ -263,17 +263,33 @@ # endif #endif -/* VS2008 does not support Windows build targets prior to WinXP, so, if no - build target has been defined we will target WinXP. */ +/* Officially, Microsoft's Windows SDK versions 6.X do not support Windows + 2000 as a supported build target. VS2008 default installations provide an + embedded Windows SDK v6.0A along with the claim that Windows 2000 is a + valid build target for VS2008. Popular belief is that binaries built using + Windows SDK versions 6.X and Windows 2000 as a build target are functional */ +#if defined(_MSC_VER) && (_MSC_VER >= 1500) +# define VS2008_MINIMUM_TARGET 0x0500 +#endif + +/* When no build target is specified VS2008 default build target is Windows + Vista, which leaves out even Winsows XP. If no build target has been given + for VS2008 we will target the minimum Officially supported build target, + which happens to be Windows XP. */ +#if defined(_MSC_VER) && (_MSC_VER >= 1500) +# define VS2008_DEFAULT_TARGET 0x0501 +#endif + +/* VS2008 default target settings and minimum build target check */ #if defined(_MSC_VER) && (_MSC_VER >= 1500) # ifndef _WIN32_WINNT -# define _WIN32_WINNT 0x0501 +# define _WIN32_WINNT VS2008_DEFAULT_TARGET # endif # ifndef WINVER -# define WINVER 0x0501 +# define WINVER VS2008_DEFAULT_TARGET # endif -# if (_WIN32_WINNT < 0x0501) || (WINVER < 0x0501) -# error VS2008 does not support Windows build targets prior to WinXP +# if (_WIN32_WINNT < VS2008_MINIMUM_TARGET) || (WINVER < VS2008_MINIMUM_TARGET) +# error VS2008 does not support Windows build targets prior to Windows 2000 # endif #endif