[v3] <regex> implementation foundation, version 1

Jonathan Wakely jwakely.gcc@gmail.com
Sun Jun 20 13:28:00 GMT 2010


On 20 June 2010 05:28, Paolo Carlini wrote:
>
>> The offending container is in fact a std::stack of indexes into a
>> std::vector of a type defined private to the library.  It doesn't
>> matter:  the genesis of the problem is that the linker script places all
>> symbols matching std::v* (or std::d*) in version GLIBCXX_3.4.  These
>> symbols were not in that older version, so boom there's an ABI
>> incompatibility.  It does not matter what type the vector is
>> instantiated on, it will fail the ABI check.
>
> As I said in a previous message - did you get it in your mailbox? - this is
> a quite common problem, just tighten the existing old pattern in the linker
> script to *not* match the new symbols you want to export now, then add a new
> pattern at the last open version for the new symbols.

Right, the rule isn't "all symbols matching vector must be in
GLIBCXX_3.4" it's that all _existing_ symbols using vector must have
that symbol version.  If you add new symbols, change the patterns so
the existing ones get the old version and the new ones get the new
version.



More information about the Libstdc++ mailing list