]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
build: drop support for VS2008 (Windows)
authorViktor Szakats <commit@vsz.me>
Sun, 13 Jul 2025 10:57:26 +0000 (12:57 +0200)
committerViktor Szakats <commit@vsz.me>
Sat, 15 Nov 2025 14:56:19 +0000 (15:56 +0100)
Require Visual Studio 2010 or newer.

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

Follow-up to dc28bb86c1e466c667ce220fd2e51355cd8bae8d #17798
Follow-up to 63e513b106113db0b1b68bab347b80cb4cef4e65 #17380

Closes #17931

CMake/win32-cache.cmake
docs/DEPRECATE.md
docs/INSTALL.md
lib/config-win32.h
lib/curl_setup.h
lib/curl_setup_once.h
lib/rand.c
lib/vtls/schannel_int.h
lib/vtls/vtls_spack.c

index 50c319d1b66b75a29af6175eca5a9aca1b5a48f6..870acf80de190249c5208fa30db847a04314e845 100644 (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()
index d02174d8caabbdf509f6198a4fdfee58c19f4306..102969e4b10b2ba74e338128aa50aaa250f5bb13 100644 (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)
index 0db7848a224ef2a52100ab3cf8bc8e9e8c63c947..f3db34da280a56e87d56669524f0c7e5dc48d02d 100644 (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
index bf9038a894a28ffc84ea96b867ca8bf2afa96459..4bf034bea31bc94d61212adfaa5cc5647b07dfe4 100644 (file)
 #        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 */
 #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
 
index fe3b9e0ee39594a54f87166bf16a7545495970df..bf7030f693e10777a5c9dd3f64c10c8540f01fbc 100644 (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
 
index 1c2194c502480a373dd32d6efe39e9ded5c5562c..7caf6c9bc5eb08b4c62a290226e60805b650b1cd 100644 (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
index cbfcbf27409b5800a4168ee6c8a2327c173c253b..5eace0283349e9fdd25ba1e62855cc71bc194e08 100644 (file)
 #  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)
index 05116dfa1a920dce54dab7ddf209ab0652db7e0e..88f03aaf68c4222b0b657aaf11488af82782053a 100644 (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
index 10d16f213d4f5377b44d43a5dcfad71fd8127f90..d86f31d727216ed18b0a0e353f107f640e2c313b 100644 (file)
 #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