These are some of the libraries that DevPro delivers into Solaris in
package SUNWlibC.
libC.so.5:
Runtime support for C++ 4.x (1993-1997).
Incompatible with any program that uses the C++ standard library.
libCrun.so.1:
Runtime support for basic language features in C++ 5.x.
(new, delete, run-time type identification, exception handling,
compiler "helper" routines.)
libCstd.so.1:
Runtime support for the remainder of the C++ standard library in
C++ 5.x.
Independent of libstdcxx, we will continue to ship all the above
libraries for many years to come.
C++ 5.x compilers generate two ABIs:
1. -compat=4 mode for compatibility with C++ 4.x, using libC.so.5.
2. Default standard mode (-compat=5), using some version of the C++
Standard library: libCstd, libstlport, or some other library acquired by
a customer.
I am using "ABI" here in the sense of how the compiler generates object
code for source code constructs. Technically, the standard library is
part of the ABI, but it is sometimes useful to separate the specific
library from the compiler behavior that does not vary.
Even though we will add another ABI to support the 2010 C++ standard, we
will continue to support the -compat=5 ABI for many years to come. I
expect -compat=5 mode to be the default in that new compiler, to
minimize code breakage. Old code can't depend on C++ 2010. New code can
use new compiler options.
If we ship the Apache libstdcxx with Studio 12 and with the next release
("Ceres"), it will use the -compat=5 ABI. The next compiler, for C++
2010, will continue to support this same version of libstdcxx in
-compat=5 mode, for many years to come.
libstlport is not shipped with Solaris, and does not have a stability
guarantee. If we ship libstdcxx with Ceres, we will drop libstlport in
the following release.
---
Steve Clamage, stephen.clamage at sun.com
On 9/5/2008 8:35 PM, Garrett D'Amore wrote:
> John Plocher wrote:
>> Garrett D'Amore wrote (slightly more verbosely and parenthetically):
>>> C++ programs linked against this library are incompatible
>>> with libC that ships with Solaris today.
>>
>> Where does this claim come from? Are you confusing libstdcxx
>> with libC?
>>
>> The proposal only says:
>>
>> The Apache/RogueWave Standard C++ Library is not binary compatible
>> with the Sun Standard C++ Library [ libCstd.so.1 ], or with the
>> STLport Standard C++ Library.
>>
>> Nowhere does it mention the C++ Runtime support library, libC.
>
> Hmm... I guess I was confusing libC with libCstd.
>
> That does beg two new questions though, which is whether we have any
> stability guarantees for either STLport or libCstd, and whether
> libstdc++ is compatible with libC.
>
> -- Garrett
>