Changes between Version 4 and Version 5 of LibraryVersioning


Ignore:
Timestamp:
Jul 2, 2015, 12:04:21 PM (2 years ago)
Author:
fdupont
Comment:

changed current by interface

Legend:

Unmodified
Added
Removed
Modified
  • LibraryVersioning

    v4 v5  
    1818lib/libfoo.a.
    1919
    20 The colon-delimited fields are **current**:**revision**:**age**.
     20The colon-delimited fields are **interface**:**revision**:**age**.
    2121
    22 **current** is the interface number.
     22**interface** is the current interface number.
    2323
    2424**revision** is the implementation of that interface. The runtime loader uses the highest revision.
    2525
    26 **age** is the number of previous compatible interfaces. The age must be less or equal to current. This can be updated immediately before public release.
     26**age** is the number of previous compatible interfaces. The age must be less or equal to interface. This can be updated immediately before public release.
    2727
    2828On source code changes, increment **revision**.
    2929
    30 On interface (API) changes (add, remove, changed), set **revision** to 0 and increment **current**.
     30On interface (API) changes (add, remove, changed), set **revision** to 0 and increment **interface**.
    3131
    3232When a new interface is added since previous release, increment the **age**.
     
    3636Changing **revision** only means it is backwards compatible.
    3737
    38 When adding a new interface, but the rest is compatible, then set **revision** to 0, and increment the **age** and **current**.
     38When adding a new interface, but the rest is compatible, then set **revision** to 0, and increment the **age** and **interface**.
    3939
    40 If an incompatible library, then increment **current** and set **age** and **revision** to 0.
     40If an incompatible library, then increment **interface** and set **age** and **revision** to 0.
    4141
    42 We only increase the **current** number once per software release.
     42We only increase the **interface** number once per software release.
    4343
    4444The -no-undefined libtool switch is used to make sure shared libraries are made on all architectures that support it. (It allows building a shared library even on architectures that require that all symbols are resolved at run-time.)