build: drop support for VS2008 (Windows)

Require Visual Studio 2010 or newer.

Ref: https://github.com/curl/curl/discussions/15972

Follow-up to dc28bb86c1 #17798
Follow-up to 63e513b106 #17380

Closes #17931
This commit is contained in:
Viktor Szakats 2025-07-13 12:57:26 +02:00
parent 554dfa5568
commit 2e1a045d89
No known key found for this signature in database
GPG Key ID: B5ABD165E2AEF201
9 changed files with 15 additions and 47 deletions

View File

@ -53,11 +53,7 @@ else()
if(MSVC)
set(HAVE_UNISTD_H 0)
set(HAVE_STDDEF_H 1) # detected by CMake internally in check_type_size()
if(MSVC_VERSION GREATER_EQUAL 1600)
set(HAVE_STDINT_H 1) # detected by CMake internally in check_type_size()
else()
set(HAVE_STDINT_H 0) # detected by CMake internally in check_type_size()
endif()
set(HAVE_STDINT_H 1) # detected by CMake internally in check_type_size()
if(MSVC_VERSION GREATER_EQUAL 1800)
set(HAVE_STDBOOL_H 1)
else()

View File

@ -12,17 +12,6 @@ email the
as soon as possible and explain to us why this is a problem for you and
how your use case cannot be satisfied properly using a workaround.
## VS2008
curl drops support for getting built with Microsoft Visual Studio 2008 in
November 2025.
The only reason we kept support for this version is for Windows CE - and we
intend to remove support for that Operating System in this time frame as well.
Bumping the minimum to VS2010. VS2008 is a pain to support.
Previous discussion and details: https://github.com/curl/curl/discussions/15972
## Windows XP
In January 2026, curl drops support for Windows XP and Server 2003. Their
@ -94,3 +83,4 @@ Support for RTMP in libcurl gets removed in April 2026.
- msh3 (removed in 8.16.0)
- winbuild build system (removed in 8.17.0)
- Windows CE (removed in 8.18.0)
- Support for Visual Studio 2008 (removed in 8.18.0)

View File

@ -200,7 +200,7 @@ Building for Windows XP is required as a minimum.
You can build curl with:
- Microsoft Visual Studio 2008 v9.0 or later (`_MSC_VER >= 1500`)
- Microsoft Visual Studio 2010 v10.0 or later (`_MSC_VER >= 1600`)
- MinGW-w64 3.0 or later (`__MINGW64_VERSION_MAJOR >= 3`)
## Building Windows DLLs and C runtime (CRT) linkage issues

View File

@ -56,22 +56,21 @@
# error VS2012 does not support build targets prior to Windows Vista
# endif
# endif
/* Default target settings and minimum build target check for
VS2008 and VS2010 */
/* VS2010 default target settings and minimum build target check. */
# else
# define VS2008_MIN_TARGET 0x0501 /* XP */
/* VS2008 default build target is Windows Vista (0x0600).
/* VS2010 default build target is Windows 7 (0x0601).
We override default target to be Windows XP. */
# define VS2008_DEF_TARGET 0x0501 /* XP */
# define VS2010_MIN_TARGET 0x0501 /* XP */
# define VS2010_DEF_TARGET 0x0501 /* XP */
# ifndef _WIN32_WINNT
# define _WIN32_WINNT VS2008_DEF_TARGET
# define _WIN32_WINNT VS2010_DEF_TARGET
# endif
# ifndef WINVER
# define WINVER VS2008_DEF_TARGET
# define WINVER VS2010_DEF_TARGET
# endif
# if (_WIN32_WINNT < VS2008_MIN_TARGET) || (WINVER < VS2008_MIN_TARGET)
# error VS2008 does not support build targets prior to Windows XP
# if (_WIN32_WINNT < VS2010_MIN_TARGET) || (WINVER < VS2010_MIN_TARGET)
# error VS2010 does not support build targets prior to Windows XP
# endif
# endif
#endif /* _MSC_VER */
@ -104,7 +103,7 @@
#endif
/* Define to 1 if you have the <stdint.h> header file. */
#if (defined(_MSC_VER) && (_MSC_VER >= 1600)) || defined(__MINGW32__)
#if defined(_MSC_VER) || defined(__MINGW32__)
#define HAVE_STDINT_H 1
#endif

View File

@ -80,9 +80,9 @@
#error "Building curl requires mingw-w64 3.0 or later"
#endif
/* Visual Studio 2008 is the minimum Visual Studio version we support.
/* Visual Studio 2010 is the minimum Visual Studio version we support.
Workarounds for older versions of Visual Studio have been removed. */
#if defined(_MSC_VER) && (_MSC_VER < 1500)
#if defined(_MSC_VER) && (_MSC_VER < 1600)
#error "Ancient versions of Visual Studio are no longer supported due to bugs."
#endif

View File

@ -65,8 +65,6 @@
Use it for APIs that do not or cannot support the const qualifier. */
#ifdef HAVE_STDINT_H
# define CURL_UNCONST(p) ((void *)(uintptr_t)(const void *)(p))
#elif defined(_WIN32) /* for VS2008 */
# define CURL_UNCONST(p) ((void *)(ULONG_PTR)(const void *)(p))
#else
# define CURL_UNCONST(p) ((void *)(p)) /* Fall back to simple cast */
#endif

View File

@ -50,10 +50,6 @@
# include <bcrypt.h>
# ifdef _MSC_VER
# pragma comment(lib, "bcrypt.lib")
# endif
/* Offered by mingw-w64 v3+. MS SDK v7.0A+. */
# ifndef BCRYPT_USE_SYSTEM_PREFERRED_RNG
# define BCRYPT_USE_SYSTEM_PREFERRED_RNG 0x00000002
# endif
# ifndef STATUS_SUCCESS
# define STATUS_SUCCESS ((NTSTATUS)0x00000000L)

View File

@ -31,7 +31,7 @@
#include "vtls.h"
#include "../curl_sha256.h"
#if defined(_MSC_VER) && (_MSC_VER <= 1600)
#if defined(_MSC_VER) && (_MSC_VER < 1700)
/* Workaround for warning:
'type cast' : conversion from 'int' to 'LPCSTR' of greater size */
#undef CERT_STORE_PROV_MEMORY

View File

@ -36,17 +36,6 @@
#include "../curl_memory.h"
#include "../memdebug.h"
#ifdef _MSC_VER
#if _MSC_VER >= 1600
#include <stdint.h>
#else
typedef unsigned char uint8_t;
typedef unsigned __int16 uint16_t;
typedef unsigned __int32 uint32_t;
typedef unsigned __int64 uint64_t;
#endif
#endif /* _MSC_VER */
#ifndef UINT16_MAX
#define UINT16_MAX 0xffff
#endif