aboutsummaryrefslogtreecommitdiff
path: root/docs/libcurl/ABI
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2020-06-12 13:26:20 +0200
committerDaniel Stenberg <daniel@haxx.se>2020-06-12 17:05:21 +0200
commit2a0269589a7dc536b2b42f0a75d7dbcacb6a4d69 (patch)
treefb2fcc836e923fed42f05bbaae572a191915de90 /docs/libcurl/ABI
parentbc392074d2f9957e2c3bb9b3c3ec610c284d669e (diff)
ABI.md: rename to .md and polish the markdown
Closes #5562
Diffstat (limited to 'docs/libcurl/ABI')
-rw-r--r--docs/libcurl/ABI68
1 files changed, 0 insertions, 68 deletions
diff --git a/docs/libcurl/ABI b/docs/libcurl/ABI
deleted file mode 100644
index c7c914202..000000000
--- a/docs/libcurl/ABI
+++ /dev/null
@@ -1,68 +0,0 @@
-ABI - Application Binary Interface
-==================================
-
- "ABI" describes the low-level interface between an application program and a
- library. Calling conventions, function arguments, return values, struct
- sizes/defines and more.
-
- [Wikipedia has a longer description](https://en.wikipedia.org/wiki/Application_binary_interface)
-
-Upgrades
---------
-
- In the vast majority of all cases, a typical libcurl upgrade does not break
- the ABI at all. Your application can remain using libcurl just as before,
- only with less bugs and possibly with added new features. You need to read
- the release notes, and if they mention an ABI break/soname bump, you may have
- to verify that your application still builds fine and uses libcurl as it now
- is defined to work.
-
-Version Numbers
----------------
-
- In libcurl land, you really can't tell by the libcurl version number if that
- libcurl is binary compatible or not with another libcurl version.
-
-Soname Bumps
-------------
-
- Whenever there are changes done to the library that will cause an ABI
- breakage, that may require your application to get attention or possibly be
- changed to adhere to new things, we will bump the soname. Then the library
- will get a different output name and thus can in fact be installed in
- parallel with an older installed lib (on most systems). Thus, old
- applications built against the previous ABI version will remain working and
- using the older lib, while newer applications build and use the newer one.
-
- During the first seven years of libcurl releases, there have only been four
- ABI breakages.
-
- We are determined to bump the SONAME as rarely as possible. Ideally, we
- never do it again.
-
-Downgrades
-----------
-
- Going to an older libcurl version from one you're currently using can be a
- tricky thing. Mostly we add features and options to newer libcurls as that
- won't break ABI or hamper existing applications. This has the implication
- that going backwards may get you in a situation where you pick a libcurl that
- doesn't support the options your application needs. Or possibly you even
- downgrade so far so you cross an ABI break border and thus a different
- soname, and then your application may need to adapt to the modified ABI.
-
-History
--------
-
- The previous major library soname number bumps (breaking backwards
- compatibility) have happened the following times:
-
- 0 - libcurl 7.1, August 2000
-
- 1 - libcurl 7.5 December 2000
-
- 2 - libcurl 7.7 March 2001
-
- 3 - libcurl 7.12.0 June 2004
-
- 4 - libcurl 7.16.0 October 2006