RE: standardized C++ apps?
"Wichmann, Mats D" <[email protected]> Sun, 7 Aug 2005 06:58:53 -0700
| Newsgroups | gmane.linux.lsb.discuss |
|---|---|
| Message-ID | <A06801158AE07847B27A52C1A074BC1D085FC1EC@fmsmsx404.amr.corp.intel.com> |
>Hey everyone. >My interests in Linux lie mostly in desktop arena,=20 >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. =20 #2 really contains the answer to the "how can I help"=20 question... help work on the expansion of the LSB, whether that's working on specs for new libraries,=20 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=3Dlsbcc CXX=3Dlsbc++ ./configure --prefix=3D/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.