From 168fb3a8d89bd83c926f3fa2314e064294ebff0b Mon Sep 17 00:00:00 2001 From: Yang Tse Date: Thu, 2 Apr 2009 18:50:39 +0000 Subject: [PATCH] Fix curl_off_t definition for builds done using Sun compilers and a non-configured libcurl. In this case curl_off_t data type was gated to the off_t data type which depends on the _FILE_OFFSET_BITS. This configuration is exactly the unwanted configuration for our curl_off_t data type which must not depend on such setting. This breaks ABI for libcurl libraries built with Sun compilers which were built without having run the configure script with _FILE_OFFSET_BITS different than 64 and using the ILP32 data model. --- CHANGES | 10 ++++++++ RELEASE-NOTES | 1 + include/curl/curlbuild.h.dist | 44 +++++++++++++++++++++-------------- 3 files changed, 37 insertions(+), 18 deletions(-) diff --git a/CHANGES b/CHANGES index d493e640b..5ce29473a 100644 --- a/CHANGES +++ b/CHANGES @@ -7,6 +7,16 @@ Changelog +Yang Tse (2 Apr 2009) +- Fix curl_off_t definition for builds done using Sun compilers and a + non-configured libcurl. In this case curl_off_t data type was gated + to the off_t data type which depends on the _FILE_OFFSET_BITS. This + configuration is exactly the unwanted configuration for our curl_off_t + data type which must not depend on such setting. This breaks ABI for + libcurl libraries built with Sun compilers which were built without + having run the configure script with _FILE_OFFSET_BITS different than + 64 and using the ILP32 data model. + Daniel Stenberg (1 Apr 2009) - Andre Guibert de Bruet fixed a NULL pointer use in an infof() call if a strdup() call failed. diff --git a/RELEASE-NOTES b/RELEASE-NOTES index d211b2fef..b3388b219 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -24,6 +24,7 @@ This release includes the following bugfixes: o missing Curl_read() and write callback result checking in TELNET transfers o more ciphers enabled in libcurl built to use NSS o properly return an error code in curl_easy_recv + o fixed curl_off_t definition for non-configured builds with Sun compilers This release includes the following known bugs: diff --git a/include/curl/curlbuild.h.dist b/include/curl/curlbuild.h.dist index 247213cd4..bc5950df5 100644 --- a/include/curl/curlbuild.h.dist +++ b/include/curl/curlbuild.h.dist @@ -443,25 +443,33 @@ /* ===================================== */ #elif defined(__SUNPRO_C) || defined(__SUNPRO_CC) -#include -#include - -# define CURL_TYPEOF_CURL_OFF_T off_t -# define CURL_SIZEOF_CURL_OFF_T 8 -# if defined(__amd64) || defined(__sparcv9) -# define CURL_SIZEOF_LONG 8 -# define CURL_FORMAT_CURL_OFF_T "ld" -# define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_FORMAT_OFF_T "%ld" -# define CURL_SUFFIX_CURL_OFF_T L -# define CURL_SUFFIX_CURL_OFF_TU UL +# if defined(_LP64) +# define CURL_SIZEOF_LONG 8 +# define CURL_TYPEOF_CURL_OFF_T long +# define CURL_FORMAT_CURL_OFF_T "ld" +# define CURL_FORMAT_CURL_OFF_TU "lu" +# define CURL_FORMAT_OFF_T "%ld" +# define CURL_SIZEOF_CURL_OFF_T 8 +# define CURL_SUFFIX_CURL_OFF_T L +# define CURL_SUFFIX_CURL_OFF_TU UL +# elif defined(__STDC__) && (__STDC__ == 1) +# define CURL_SIZEOF_LONG 4 +# define CURL_TYPEOF_CURL_OFF_T long +# define CURL_FORMAT_CURL_OFF_T "ld" +# define CURL_FORMAT_CURL_OFF_TU "lu" +# define CURL_FORMAT_OFF_T "%ld" +# define CURL_SIZEOF_CURL_OFF_T 4 +# define CURL_SUFFIX_CURL_OFF_T L +# define CURL_SUFFIX_CURL_OFF_TU UL # else -# define CURL_SIZEOF_LONG 4 -# define CURL_FORMAT_CURL_OFF_T "lld" -# define CURL_FORMAT_CURL_OFF_TU "llu" -# define CURL_FORMAT_OFF_T "%lld" -# define CURL_SUFFIX_CURL_OFF_T LL -# define CURL_SUFFIX_CURL_OFF_TU ULL +# define CURL_SIZEOF_LONG 4 +# define CURL_TYPEOF_CURL_OFF_T long long +# define CURL_FORMAT_CURL_OFF_T "lld" +# define CURL_FORMAT_CURL_OFF_TU "llu" +# define CURL_FORMAT_OFF_T "%lld" +# define CURL_SIZEOF_CURL_OFF_T 8 +# define CURL_SUFFIX_CURL_OFF_T LL +# define CURL_SUFFIX_CURL_OFF_TU ULL # endif /* ===================================== */