Red Hat Enterprise Linux maintains a core set of libraries where the APIs and ABIs are preserved for each architecture across major releases (eg between Red Hat Enterprise Linux 5 and 6). This will help developers produce software that is compatible with a variety of Red Hat Enterprise Linux versions. Limit applications to linking against this set of libraries to take advantage of this feature.
The list of core libraries maintained by Red Hat Enterprise Linux includes the following. Each package is annotated with a compatibility number for ABI and ABI. The API numbers correspond to characterizations described in
Section 4.2.1, “API Compatibility”. The ABI numbers correspond to characterizations described in
Section 4.2.2, “ABI Compatibility”.
Table 4.2. Core Library Compatibility
|
Package Name
|
Files
|
Previous RHEL Version
|
Notes
|
|---|
|
|
|
5
|
4
|
|
|---|
|
|
|
API
|
ABI
|
API
|
ABI
|
|
|---|
|
glibc
|
libc, libm, libdl, libutil, libcrypt
|
2
|
2
|
3
|
2
|
See notes for RHEL 2 and 3.
|
|
libstdc++
|
libstdc++
|
2
|
2
|
3
|
2
|
See notes for RHEL 3.
|
|
zlib
|
libz
|
1
|
?
|
1
|
?
|
|
|
ncurses-libs
|
libncurses
|
1
|
?
|
1
|
?
|
|
|
nss
|
libnss3, libssl3
|
|
?
|
|
?
|
|
|
gtk2
|
libgdk-x11-2.0, libgdk_pixbuf-2.0, libgtk-x11-2.0
|
2
|
?
|
|
?
|
|
|
glib2
|
libglib-2.0, libgmodule-2.0, libgthread-2.0,
|
2
|
?
|
|
?
|
|
If an application can not limit itself to the interfaces of these core libraries, then to ensure compatibility across major releases, the application should bundle the additional required libraries as part of the application itself. In that case, the bundled libraries must themselves use only the interfaces provided by the core libraries.