Red Hat Bugzilla – Bug 614291
In which major releases are APIs and ABIs preserved?
Last modified: 2015-07-26 18:09:08 EDT
Description of problem:
In 3.1. Compatibility, you just mentioned preservation of APIs and ABIs between RHEL 5 and 6.
---- From Development Guide -----------------------------------------
Red Hat Enterprise Linux maintains a core set of libraries whose APIs and ABIs are preserved for each architecture across major releases (e.g. between Red Hat Enterprise Linux 5 and 6).
Can you add other RHEL versions like RHEL 3 and 4?
I think a lot of users who are going to move from older RHEL version will care about this.
Version-Release number of selected component (if applicable):
Revision 1.0 Thu Oct 08 2009
According to http://www.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6-Beta/ , the date is June 2010.
Hey I updated the gcc/compat and lib/compat bits of the docs based on feedback from various parties. This should be clearer now.
Created attachment 453016 [details]
pdf version of latest dev guide
This has the new ABI/API layout. Some of the details still need to be added.
It's become much clearer, but can I clarify one more thing here?
In "18.104.22.168. Compatibility Between Major Releases," it tells:
Red Hat Enterprise Linux 6 provides runtime compatibility support for applications built for Red Hat Enterprise Linux 5 and Red Hat Enterprise Linux 4.
But in Section 3.3.2. "The GNU C++ Standard Library," I found this statement:
As the C++ language and runtime implementation has remained stable throughout Red Hat Enterprise Linuxes 4, 5, and 6, no compatibility libraries are needed for libstdc++. However, combatability libraries compat-libstdc++-296 for Red Hat Enterprise Linux 2.1 and compat-libstdc++-33 for Red Hat Enterprise Linux 3 are provided for support.
This statement seems confusing, because some might think that RHEL6 offers compatibility for C++ applications built for RHEL 2 or 3. But if so, it conflicts with the former statement.
Can you tell me which statement is prior?
I guess the former is prior to the latter, and if so, can you add some description about compat-libstdc++, such as compat-libstdc++-296 and compat-libstdc++-33 are not officially supported?
reassigning to Benjamin for clarification.
Masahiro, just saw comment #8. Not quite sure of the current wording, but RHEL6 is compatible with RHEL5 and RHEL4 without installing any additional compatibility libraries.
On RHEL6, you can install compat-libstdc++33 for RHEL3 compat. It is not there by default.
On RHEL6, you can install compat-libstdc++296 for RHEL2 compat. It is not there by default.
Hopefully this makes it the situation clearer for you. I defer to the editor on the exact wording.
Benjamin, technically, I see your point, but my concern is about support policy.
Red Hat assures compatibility across three major versions, which means RHEL4 and RHEL5 applications work on RHEL6, but no assurance with RHEL3 and RHEL2 applications.
In other words, from technical point of view, RHEL6 has compat-libstdc++ libraries for RHEL2 and 3 compat. However, there seems to be no assurance for RHEL2 and 3 applications on RHEL6. Is that right?
If so, I'll announce a guideline for my customers and my coworkers like this. Every application developer for RHEL6 has to use RHEL4 and later for compiling their applications.
Our official policy on compatibility is that we support the current release and two consecutive prior versions. Today that means RHEL 6, RHEL 5 and RHEL 4. Applications built on RHEL 4 and RHEL 5 will continue to run on RHEL 6 as long as they comply with our guidelines (using the symbols that we have white-listed etc.). We have tried to provide some guidelines in the application compatibility white paper (link below).
Red Hat understands that as an enterprise platform customers rely on us for long-term deployment of their applications. For this reason, we continue to provide support for applications built against C/C++ libraries with the help of compatibility libraries for RHEL 2 and RHEL 3. RHEL 2 and RHEL 3 are no longer supported for the vast majority of our subscriber base. Customers are advised to plan their migration to a more current version of the libraries as Red hat cannot guarantee that they will be included for the full life of RHEL 6.
We need to refer to these references somewhere in the Developer Guide:
RHEL supported releases:
General RHEL compatibility policy: