Bug 614291 - In which major releases are APIs and ABIs preserved?
In which major releases are APIs and ABIs preserved?
Status: CLOSED CURRENTRELEASE
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: doc-Developer_Guide (Show other bugs)
6.0
All Linux
low Severity medium
: rc
: ---
Assigned To: Jacquelynn East
ecs-bugs
: Documentation
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2010-07-13 23:15 EDT by Masahiro Ito
Modified: 2015-07-26 18:09 EDT (History)
7 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2011-05-24 01:33:32 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
pdf version of latest dev guide (2.36 MB, application/pdf)
2010-10-12 15:00 EDT, Benjamin Kosnik
no flags Details

  None (edit)
Description Masahiro Ito 2010-07-13 23:15:15 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.
Comment 3 Benjamin Kosnik 2010-09-30 12:01:05 EDT
Hey I updated the gcc/compat and lib/compat bits of the docs based on feedback from various parties. This should be clearer now.
Comment 7 Benjamin Kosnik 2010-10-12 15:00:32 EDT
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.
Comment 8 Masahiro Ito 2010-10-21 04:02:41 EDT
Hi Benjamin,

It's become much clearer, but can I clarify one more thing here?


In "3.2.3.2. 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?
Comment 9 Don Domingo 2010-11-22 21:13:22 EST
reassigning to Benjamin for clarification.
Comment 12 Benjamin Kosnik 2011-03-23 16:56:02 EDT
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.
Comment 14 Masahiro Ito 2011-04-04 05:21:50 EDT
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.
Comment 22 Siddharth Nagar 2011-05-10 10:34:47 EDT
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:
https://access.redhat.com/support/policy/updates/errata/

General RHEL compatibility policy:
https://www.redhat.com/f/pdf/rhel/RHEL6_App_Compatibility_WP.pdf

Note You need to log in before you can comment on or make changes to this bug.