From 591fe66f18a289b47b6f6767b4a460955355a5d6 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Sun, 4 Jan 2004 12:00:11 +0000 Subject: [PATCH] Dominick Meglio's description how to build ares for libcurl on win32 --- lib/README.ares | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/lib/README.ares b/lib/README.ares index 6eacfab3e..c20b2505e 100644 --- a/lib/README.ares +++ b/lib/README.ares @@ -49,3 +49,38 @@ Ares and ipv6 If the configure script enables IPv6 support you need to explicitly disable that (--disable-ipv6) since ares isn't IPv6 compatible (yet). + +Ares on win32 +============= +(description brought by Dominick Meglio) + +First I compiled curl-ares. I changed the default C runtime library to be the +single-threaded rather than the multi-threaded (this seems to be required to +prevent linking errors later on). Then I simply build the areslib project (the +other projects adig/ahost seem to fail under MSVC). + +Next was libcurl. I opened lib/config-win32.h and I added a: + #define USE_ARES 1 + +Next thing I added was, near the HAVE_GETTIMEOFDAY checks I added: +#ifdef USE_ARES +#define HAVE_GETTIMEOFDAY 1 +#endif + +The reason is, it seems curl-ares has a gettimeofday function in it (perhaps +this should be made static in ares to avoid this kludge?) To prevent a +duplicate symbol error, I had to make sure libcurl didn't also try and create +a gettimeofday() function. + +Next thing I did was I added the path for the ares includes to the include +path, and the libares.lib to the libraries. + +Lastly, I also changed libcurl to be single-threaded rather than +multi-threaded, again this was to prevent some duplicate symbol errors. I'm +not sure why I needed to change everything to single-threaded, but when I +didn't I got redefinition errors for several CRT functions (malloc, stricmp, +etc.) + +I would have modified the MSVC++ project files, but I only have VC.NET and it +uses a different format than VC6.0 so I didn't want to go and change +everything and remove VC6.0 support from libcurl.