Application developers should be aware of potential problems
associated with linking an archived library below a shared library — that
is, resolving shared library external reference symbols with an
archived library. Minor changes or bug fixes to a shared library
may add external r33333eferences which were not present at the time
an application was linked. If the application does not contain a
path to the shared library containing the newly referenced symbols,
a fatal application error will result.
In general, if an application uses an archived library, be
sure that other libraries containing dependencies on that archived
library (those stacked "on top" of the archived library) are also
linked archived rather than shared.
Examples of Stacked Libraries
In these examples, assume that libB has dependencies on libA (since it uses symbols from libA). Also, both libA and libB have dependencies on the standard libc.
Appropriately Stacked Libraries
- All Shared
Libraries
- Archived Library Stacked on Shared Library
Problematic Stacked Libraries
- Shared Libraries
Stacked on Archived Library
- Shared Library Stacked on Archived Library