[PATCH] libstdc++ ABI issues with __int128

Benjamin Kosnik benjamin.kosnik@gmail.com
Mon Mar 21 16:58:00 GMT 2011


> Most of the linux targets are actually __GXX_TYPEINFO_EQUALITY_INLINE 1
> and thus perhaps if we want to maintain some ABI compatibility with 3.4-ish
> inlined typeid comparisons, we might need to export _ZTS* for _ZTI*
> that could somehow be emitted for user code too.

Right, for C++98 types.

> Thus perhaps the _ZT[IS][PK]*[no] change is right, but we can only do it
> only for the builtin types (and, clearly we've been doing that in the past,
> for decltype(nullptr)/_Decimal{32,64,128}/char{16,32}_t.
>
> If/when we decide to break ABI for C++, we could just make all _ZTS* symbols
> hidden.

... so for the new builtin C++0X types where there is no prior compat
issue, _ZTS* can be elided in the current ABI. The for libstdc++.so >
6 we can do much better on a lot of this stuff. I'm trying to store
intelligence about the future in gnu-versioned-namespace.ver.

I need to add a note about this to the abi docs. But I can do that
later and get out of the critical path for you and RC2.

-benjamin



More information about the Gcc-patches mailing list