Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
tag: cares-1_7_0
Fetching contributors…

Octocat-spinner-32-eaf2f5

Cannot retrieve contributors at this time

file 69 lines (49 sloc) 2.505 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68

   curl_off_t explained
   ====================

curl_off_t is a data type provided by the external libcurl include headers. It
is the type meant to be used for the curl_easy_setopt() options that end with
LARGE. The type is 64bit large on most modern platforms.

Transition from < 7.19.0 to >= 7.19.0
-------------------------------------

Applications that used libcurl before 7.19.0 that are rebuilt with a libcurl
that is 7.19.0 or later may or may not have to worry about anything of
this. We have made a significant effort to make the transition really seamless
and transparent.

You have have to take notice if you are in one of the following situations:

o Your app is using or will after the transition use a libcurl that is built
  with LFS (large file support) disabled even though your system otherwise
  supports it.

o Your app is using or will after the transition use a libcurl that doesn't
  support LFS at all, but your system and compiler support 64bit data types.

In both these cases, the curl_off_t type will now (after the transition) be
64bit where it previously was 32bit. This will cause a binary incompatibility
that you MAY need to deal with.

Benefits
--------

This new way has several benefits:

o Platforms without LFS support can still use libcurl to do >32 bit file
  transfers and range operations etc as long as they have >32 bit data-types
  supported.

o Applications will no longer easily build with the curl_off_t size
  mismatched, which has been a very frequent (and annoying) problem with
  libcurl <= 7.18.2

Historically
------------

Previously, before 7.19.0, the curl_off_t type would be rather strongly
connected to the size of the system off_t type, where currently curl_off_t is
independent of that.

The strong connection to off_t made it troublesome for application authors
since when they did mistakes, they could get curl_off_t type of different
sizes in the app vs libcurl, and that caused strange effects that were hard to
track and detect by users of libcurl.

SONAME
------

We opted to not bump the soname for the library unconditionally, simply
because soname bumping is causing a lot of grief and moaning all over the
community so we try to keep that at minimum. Also, our selected design path
should be 100% backwards compatible for the vast majority of all libcurl
users.

Enforce SONAME bump
-------------------

If configure doesn't detect your case where a bump is necessary, re-run it
with the --enable-soname-bump command line option!
Something went wrong with that request. Please try again.