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
signature.asc
Description: Message signed with OpenPGP using GPGMail