[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
good.
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