]> granicus.if.org Git - curl/commitdiff
Update MSVC 6 caveats section
authorYang Tse <yangsita@gmail.com>
Wed, 21 Oct 2009 18:46:00 +0000 (18:46 +0000)
committerYang Tse <yangsita@gmail.com>
Wed, 21 Oct 2009 18:46:00 +0000 (18:46 +0000)
docs/INSTALL

index ecfd15069751fc49ebea50450b79fdad905c4eb4..2d0d7f1a212de1dc8883e8acf0183814c686290b 100644 (file)
@@ -249,19 +249,49 @@ Win32
    MSVC 6 caveats
    --------------
 
-   If you use MSVC 6 it is required that you use the MS PSDK:
+   If you use MSVC 6 it is required that you use the February 2003 edition PSDK:
    http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm
-   The headers and libs provided with MSVC 6 are now more than 10 years old
-   and not sufficient for a build of libcurl / curl with common features!
-   Without the PSDK you will run into these issues:
-   - LDAPv3 is not supported --> breaks compilation
-   - IPv6 support is incomplete --> breaks compilation
-   - socklen_t type is missing --> breaks compilation
-   If you really need to compile without PSDK then you can workaround these
-   issues by disabling LDAP and IPv6 support, and adding a line:
-   typedef int socklen_t;
-   to the winsock2.h header. This is however not recommended, and you should
-   use the PSDK whenever possible!  
+
+   Building any software with MSVC 6 without having PSDK installed is just
+   asking for trouble down the road once you have released it, you might notice
+   the problems in the first corner or ten miles ahead, depending mostly on your
+   choice of static vs dynamic runtime and third party libraries. Anyone using
+   software built in such way will at some point regret having done so.
+
+   When someone uses MSVC 6 without PSDK he is using a compiler back from 1998.
+
+   If the compiler has been updated with the installation of a service pack as
+   those mentioned in http://support.microsoft.com/kb/194022 the compiler can be
+   safely used to read source code, translate and make it object code.
+
+   But, even with the service packs mentioned above installed, the resulting
+   software generated in such an environment will be using outdated system
+   header files and libraries with bugs and security issues which have already
+   been addressed and fixed long time ago.
+
+   In order to make use of the updated system headers and fixed libraries
+   for MSVC 6, it is required that 'Platform SDK', PSDK from now onwards,
+   is installed. The specific PSDK that must be installed for MSVC 6 is the
+   February 2003 edition, which is the latest one supporting the MSVC 6 compiler,
+   this PSDK is also known as 'Windows Server 2003 PSDK' and can be downloaded
+   from http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm
+
+   So, building curl and libcurl with MSVC 6 without PSDK is absolutely
+   discouraged for the benefit of anyone using software built in such
+   environment. And it will not be supported in any way, as we could just
+   be hunting bugs which have already been fixed way back in 2003.
+
+   When building with MSVC 6 we attempt to detect if PSDK is not being used,
+   and if this is the case the build process will fail hard with an error
+   message stating that the February 2003 PSDK is required. This is done to
+   protect the unsuspecting and avoid PEBKAC issues.
+
+   Additionally it might happen that a die hard MSVC hacker still wants to
+   build curl and libcurl with MSVC 6 without PSDK installed, even knowing
+   that this is a highly discouraged and unsupported build environment. In
+   this case the brave of heart will be able to build in such an environment
+   with the requisite of defining preprocessor symbol ALLOW_MSVC6_WITHOUT_PSDK
+   in lib/config-win32.h and knowing that LDAP and IPv6 support will be missing.
 
    MSVC from command line
    ----------------------