~ubuntu-branches/ubuntu/vivid/curl/vivid

« back to all changes in this revision

Viewing changes to lib/README.curl_off_t

  • Committer: Bazaar Package Importer
  • Author(s): Andreas Schuldei
  • Date: 2009-04-02 23:35:45 UTC
  • mto: (1.2.1 upstream) (3.2.3 sid)
  • mto: This revision was merged to the branch mainline in revision 38.
  • Revision ID: james.westby@ubuntu.com-20090402233545-geixkwhe3izccjt7
Tags: upstream-7.19.4
ImportĀ upstreamĀ versionĀ 7.19.4

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
   curl_off_t explained
 
3
   ====================
 
4
 
 
5
curl_off_t is a data type provided by the external libcurl include headers. It
 
6
is the type meant to be used for the curl_easy_setopt() options that end with
 
7
LARGE. The type is 64bit large on most modern platforms.
 
8
 
 
9
Transition from < 7.19.0 to >= 7.19.0
 
10
-------------------------------------
 
11
 
 
12
Applications that used libcurl before 7.19.0 that are rebuilt with a libcurl
 
13
that is 7.19.0 or later may or may not have to worry about anything of
 
14
this. We have made a significant effort to make the transition really seamless
 
15
and transparent.
 
16
 
 
17
You have have to take notice if you are in one of the following situations:
 
18
 
 
19
o Your app is using or will after the transition use a libcurl that is built
 
20
  with LFS (large file support) disabled even though your system otherwise
 
21
  supports it.
 
22
 
 
23
o Your app is using or will after the transition use a libcurl that doesn't
 
24
  support LFS at all, but your system and compiler support 64bit data types.
 
25
 
 
26
In both these cases, the curl_off_t type will now (after the transition) be
 
27
64bit where it previously was 32bit. This will cause a binary incompatibility
 
28
that you MAY need to deal with.
 
29
 
 
30
Benefits
 
31
--------
 
32
 
 
33
This new way has several benefits:
 
34
 
 
35
o Platforms without LFS support can still use libcurl to do >32 bit file
 
36
  transfers and range operations etc as long as they have >32 bit data-types
 
37
  supported.
 
38
 
 
39
o Applications will no longer easily build with the curl_off_t size
 
40
  mismatched, which has been a very frequent (and annoying) problem with
 
41
  libcurl <= 7.18.2
 
42
 
 
43
Historically
 
44
------------
 
45
 
 
46
Previously, before 7.19.0, the curl_off_t type would be rather strongly
 
47
connected to the size of the system off_t type, where currently curl_off_t is
 
48
independent of that.
 
49
 
 
50
The strong connection to off_t made it troublesome for application authors
 
51
since when they did mistakes, they could get curl_off_t type of different
 
52
sizes in the app vs libcurl, and that caused strange effects that were hard to
 
53
track and detect by users of libcurl.
 
54
 
 
55
SONAME
 
56
------
 
57
 
 
58
We opted to not bump the soname for the library unconditionally, simply
 
59
because soname bumping is causing a lot of grief and moaning all over the
 
60
community so we try to keep that at minimum. Also, our selected design path
 
61
should be 100% backwards compatible for the vast majority of all libcurl
 
62
users.
 
63
 
 
64
Enforce SONAME bump
 
65
-------------------
 
66
 
 
67
If configure doesn't detect your case where a bump is necessary, re-run it
 
68
with the --enable-soname-bump command line option!