On 26 Jan 2013, at 15:22, Konstantin Belousov wrote:

> Your initial assesment of the problem as a misbehaviour of the combination
> of filtering and versioning made no sense to me, I asked you to provide
> the isolated test case, which you did not.

The test case in the PR was such a test case.  libstdc++ and libsupc++ export a 
few symbols (including the ones that I mentioned in the email that you are 
replying to) with different versions.  The end result is that you get some 
cases where some code (typically in libsupc++) 

I am not claiming that this is an rtld bug, so I don't know why you keep going 
on about it as if I am.  I do not know why you want me to provide you with an 
isolated test case for a bug that is assigned to me and that I am in the 
process of fixing.

> Our implementation of filters indeed only allows for the filtered
> symbol to have the same version as the filtee symbol. I re-read the
> SUN documentation about filters (who had designed them), and looked at
> what Linux does there. It seems to me that Sun document spirit forces
> us to behave in a way which our rtld currently does. Linux behaviour is
> useless there, IMHO, since their rtld just inserts filtee before filter
> in the global lookup order (I may be wrong there).

This is COMPLETELY IRRELEVANT to the bug in question, which is that our 
libcxxrt and libsupc++ version scripts have some incorrect symbol versions.

> I do suggest (again) that the way to fix the issue is to provide the
> isolated test-case and decide if the behaviour of rtld is right.

It is correct.  I am not claiming it is incorrect.  I don't know why you keep 
repeating that I am.  

> If we
> conclude that the problem is not in rtld but in the versioning mismatch
> between libraries (libstdc++ and libsupc++), I again suggest to provide
> the patch for review first. The ABI seems to become too unwieldly, and
> making ad-hoc changes there could paint us into the corner.

I have a patch, which fixes it in some cases and has been tested, but misses 
some others.  I am preparing a patch that fixes the versioning consistently 
across libsupc++ and libcxxrt to match libstdc++.  I want to do this as a 
single patch, rather than an ad hoc series of changes.  My aim is, as it has 
always been, to preserve the existing ABI. 

David

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

Reply via email to