curl tool: make setup.h first header included in tool_setup.h again
authorYang Tse <yangsita@gmail.com>
Tue, 10 Apr 2012 01:20:30 +0000 (03:20 +0200)
committerYang Tse <yangsita@gmail.com>
Tue, 10 Apr 2012 01:20:30 +0000 (03:20 +0200)
src/tool_setup.h

index 648b0f2267fa10d9b62ee308b0f4f6f249a93057..677f6e5c90c64e647872f6d53e98b394791e86cf 100644 (file)
 
 #define CURL_NO_OLDIES
 
-#include <curl/curl.h> /* external interface */
+/*
+ * setup.h may define preprocessor macros such as _FILE_OFFSET_BITS and
+ * _LARGE_FILES in order to support files larger than 2 GB. On platforms
+ * where this happens it is mandatory that these macros are defined before
+ * any system header file is included, otherwise file handling function
+ * prototypes will be misdeclared and curl tool may not build properly;
+ * therefore we must include setup.h before curl.h when building curl.
+ */
 
 #include "setup.h" /* from the lib directory */
 
+/*
+ * Undefine macros intended for libcurl internal use only.
+ */
+
+#undef CURL_HIDDEN_SYMBOLS
+
+/*
+ * curl tool certainly uses libcurl's external interface.
+ */
+
+#include <curl/curl.h> /* external interface */
+
+/*
+ * Platform specific stuff.
+ */
+
 #if defined(macintosh) && defined(__MRC__)
 #  define main(x,y) curl_main(x,y)
 #endif