aboutsummaryrefslogtreecommitdiff
path: root/docs/INSTALL
diff options
context:
space:
mode:
authorYang Tse <yangsita@gmail.com>2009-10-21 18:46:00 +0000
committerYang Tse <yangsita@gmail.com>2009-10-21 18:46:00 +0000
commit525549f204e3cca64968577a661581ed4116af89 (patch)
tree0d268f3fe1a3462aec445ce184dd8dae95e46cfd /docs/INSTALL
parent3f8d3e9c50af5b23aa50f2f0336da57023402a78 (diff)
Update MSVC 6 caveats section
Diffstat (limited to 'docs/INSTALL')
-rw-r--r--docs/INSTALL54
1 files changed, 42 insertions, 12 deletions
diff --git a/docs/INSTALL b/docs/INSTALL
index ecfd15069..2d0d7f1a2 100644
--- a/docs/INSTALL
+++ b/docs/INSTALL
@@ -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
----------------------