| Abstract | Addition of the v5 version of the c++ ABI. |
| Version | $Revision: 1.21 $ |
| Generated | $Date: 2005/09/28 00:08:27 $ |
| Phase 1 - Identification | |
|---|---|
| Status | Added 2.0 |
| Group | LSB |
| Number | #001 |
| Assigned 2002-04-08 | |
| Demand | Yes |
| Many ISVs have requested it. LSB-future's Distribution Dependencies process identified it as a core system dependency. |
|
| License | Yes |
| libstdc++ is licenced under the GPL with the "runtime exception" see the license page for the details. | |
| Bestpractice | Yes |
| Controversial. The GCC project represents best practice for solving the problem of implementing the C++ Standard. By the current selection criteria, the v5 ABI is the defacto standard by way of widespread deployment, but the v6 ABI is the latest version and the GCC community considers /that/ ABI best practice. | |
| Stable | Maybe |
| GCC's implementation serves as our canonical example and defines the ABI. There have been ABI difference with all the 3.x releases. The 3.3 release is the last release using it's soname version, 3.4 (and 3.5 expected) uses a new version. It is believed possible that the LSB can add the 3.3 version in the future add the 3.4/3.5 version and that they can coexist on a runtime implementation. | |
| Depends | Yes |
|
|
| Phase 2 - Investigation | |
| Rationale | Yes |
c++ is an important development language
|
|
| Upstream | Maybe |
| A small symbol visibility patch was deemed suitable and added to
the gcc 3.3 cvs. However, upstream would prefer, since it fixes
a number of issues, that the newer gcc 3.4 version had been used as
the LSB baseline instead. The compromise position is the LSB's
intent to transition to that baseline as quickly as possible.
That work is tracked separately as "c++v6". Upstream location |
|
| Distros | Maybe |
| A survey of existing certified distributions indicated that 7 are willing to support the v5 ABI, one would prefer the v6 ABI, and one had no opinion. | |
| Versions | Unknown |
We need to complete this.
|
|
| Patches | Unknown |
| No comparison has been done. | |
| I18n | Unknown |
| Resources | Yes |
| Stuart Anderson heading the db/spec work. Benjamin Kosnik will advise. Testing effort by Codesourcery. The rest of the effort by the LSB-wg. |
|
| Phase 3 - Implementation | |
| Db | Yes |
| Spec | Yes |
| Test | Yes |
More testing is needed. For LSB 2.0, libchk checks the existence of required interfaces and some additional details. A port of the tests from GCC's libstdc++ tree under Code Sourcery's qmtest harness is used for runtime testing. It incorporates GCC's abi_check program, which compares a library against a baseline symbol set, which has been generated for each LSB architecture. Note this isn't full coverage of the libstdc++ ABI, but it's useful anyway. At some point, somebody will have to go through and make a detailed list of sizeof and alignof data for all types specified in the C++ standard. There may be additional tests available, including Intel's ABI test suite for C++. This should cover name mangling, vtable layout, etc. More about the libstdc++ ABI: here |
|
| Devel | Yes |
| Initial versions of devel tools available. | |
| Sample | Yes |
| The SI is using the gcc 3.3 v5 implementation. | |
| Appbat | Yes |
| groff, celestia, and xpdf are the applications that use c++. | |
| Notes | Potential app-battery stuff (there are already several C++ appbat apps)
|