incubator-stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Sebor <se...@roguewave.com>
Subject Re: binary compatibility question
Date Thu, 18 Oct 2007 21:35:28 GMT
Farid Zaripov wrote:
>   The binary compatibility requirement is related to shared libraries only,
> or to both shared and static libraries?

Both.

When the user builds their own shared library, libusr.so, from
the stdcxx archive, libstd.a, (a subset of) stdcxx symbols become
part of the interface of libusr.so. When libusr.so is linked into
an executable that also links with libstd.a, the stdcxx symbols
compiled into the common interface between the two parts of the
executable must be compatible with one another.

The issue becomes a little bit more complicated when it comes to
implementation details like the __rw_dbl_infinity symbol that's
not really part of the interface to begin with and can't easily
become one, if at all. On Windows, AFAIK, these details become
private to each module (i.e., libusr.so will have its own copy
and so will the executable).

>  
>   If only to shared libraried, then the STDCXX-509 issue can be fixed
> on MSVC by exporting alias with the required name using /EXPORT
> linker option.

So what would we do in the archive? Keep the incompatible extern
"C" symbol? I can't really think of a problem with that. Travis,
can you?

It would be great if you could put together a patch.

Martin

Mime
View raw message