Commit 168fb3a8 authored by Yang Tse's avatar Yang Tse
Browse files

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.
parent 4c5307b4
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -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. 
+1 −0
Original line number Diff line number Diff line
@@ -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:

+26 −18
Original line number Diff line number Diff line
@@ -443,23 +443,31 @@
/* ===================================== */

#elif defined(__SUNPRO_C) || defined(__SUNPRO_CC)
#include <sys/types.h>
#include <stdint.h>

#  define CURL_TYPEOF_CURL_OFF_T off_t
#  define CURL_SIZEOF_CURL_OFF_T 8
#  if defined(__amd64) || defined(__sparcv9)
#  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_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