[lsb-discuss] standardized C++ apps?

Wichmann, Mats D mats.d.wichmann at intel.com
Sun Aug 7 06:58:53 PDT 2005

>Hey everyone.

>My interests in Linux lie mostly in desktop arena, 
>where Linux is currently weakest.  One of the biggest
>reasons, I think, is the lack of a standardized C++ ABI.

>In the real world, this means I can't run many (even
>most) Fedora Core 4 binaries in Fedora Core 3.  In fact,
>you can't run many Fedora Core 3 binaries in SuSE Linux
>9.3, the latest and greatest from the two of the most
>popular distributions distributions of the world.

Of course, FC4 is the latet on that side...

>Does the upcoming 3.0 release of the LSB plan to do
>anything about this issue?  How can I help?

There is a C++ ABI included in LSB 3.0, as there was
in LSB 2.0. The former requires a libstdc++.so.6,
while the latter uses libstdc++.so.5.  For the example
apps we build it does indicate interoperability is

A couple of notes, though:

1. The targets for LSB conformance by the distro
vendors have generally been the "enterprise" releases,
rather than the more community-oriented releases.
Doesn't mean the non-enterprise releases don't work,
but they may have a little more work to set up the
full LSB environment.

2. Most apps use a lot more libraries than are part
of the LSB, so even if there's a C++ ABI, there may
not be enough other stuff to build the apps you're
intrested in.  

#2 really contains the answer to the "how can I help" 
question...  help work on the expansion of the LSB,
whether that's working on specs for new libraries, 
running tests, trying to compile some apps in LSB mode(*)
and let the project team know how well it works, or
just generally pay attention and comment on what's
going on (NOTE: more stuff happens on lsb-wg than on
this list which has gone really quiet in the last couple
of years).

(*) Building in "LSB mode" means targeting the LSB
Runtime platform rather than a native distro. The
quickest way to do this tends to be to use the
build packages from the LSB project, which gives
you two new compiler drivers, lsbcc and lsbc++, which
are just thin wrappers around the native gcc/g++.
"CC=lsbcc CXX=lsbc++ ./configure --prefix=/opt/somepath"
is often enough.  This makes the configure checks
"see" only the features that are available in the
LSB runtime, and thus make the right choices.

More information about the lsb-discuss mailing list