LSB-Futures Tracker - c++
Current status of c++ in the LSB Futures process
Disclaimer
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
  • libc6 since LSB 1.0
  • libgcc_s was added to LSB 1.3
Phase 2 - Investigation
Rationale Yes
c++ is an important development language
  • supported on all operating platforms
  • identified in our distribution analysis as heavily used in the Linux community
  • requested by developers
  • already standardized, pending adoption
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.
  • Debian(unstable release) - 3.3.4-2
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)
  • adopt the gcc release criteria apps (ideal)
    somewhere on the gcc.gnu.org page
  • openjade
  • octave
  • xpdf
  • opensg
  • KDE/Qt
  • aRts
  • mozilla
Return to main candidate tracker page
Last generated on Wed Sep 28 00:12:37 2005 GMT.