From cc8c8f957e35fc8bda22a80862a0e90a5979bffb Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Mon, 24 Oct 2016 13:38:29 +0200 Subject: [PATCH] TODO: Remove the generated include file --- docs/TODO | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/docs/TODO b/docs/TODO index 5f72f3682..156db7c51 100644 --- a/docs/TODO +++ b/docs/TODO @@ -38,6 +38,7 @@ 1.21 API for URL parsing/splitting 1.23 Offer API to flush the connection pool 1.24 TCP Fast Open for windows + 1.25 Remove the generated include file 2. libcurl - multi interface 2.1 More non-blocking @@ -377,6 +378,32 @@ Mac OS. Windows supports TCP Fast Open starting with Windows 10, version 1607 and we should add support for it. +1.25 Remove the generated include file + + When curl and libcurl are built, one of the public include files are + generated and is populated with a set of defines that are derevid from sizes + and constants for the particular target architecture that build is made. For + platforms that can select between 32 bit and 64 bit at build time, this + approach makes the libcurl build only create a set of public headers suitable + for one of the architectures and not both. If you build libcurl for such a + platform and you want to allow applications to get built using either 32/64 + version, you must generate the libcurl headers once for each setup and you + must then add a replacement curl header that would itself select the correct + 32 or 64 bit specific header as necessary. + + Your curl/curl.h alternative could then look like (replace with suitable CPP + variable to check): + + #ifdef ARCH_32bit + #include + #else /* ARCH_64bit */ + #include + #endif + + A fix would either (A) fix the 32/64 setup automatically or even better (B) + work away the architecture specific defines from the headers so that they can + be used for all architectures independently of what libcurl was built for. + 2. libcurl - multi interface