[cxx-abi-dev] Deleted virtual functions
Dennis Handly
dhandly at cup.hp.com
Wed Jun 3 03:07:59 UTC 2009
>From: Lawrence Crowl <crowl at google.com>
>The intent was that type_infos for protected or private types be
>distinct between libraries. Anything else would lead to unreliable combination
>of libraries.
Right. Hopefully I mentioned that to Prem.
>From: Jason Merrill <jason at redhat.com>
>Talking about plugins reminds me of a different problem we've run into
>on Linux: you have two plugins A and B that both link against the same
>shared library C. A and B are loaded with RTLD_LOCAL to avoid symbol
This should be obvious. RTLD_LOCAL is another evil linker option that
stabs C++ in the back. ;-)
They go all the way back to cfront days.
>we've decided to go ahead with a solution that makes affected objects
>unique through the whole loaded program regardless of RTLD_LOCAL;
How? If the dynamic loader hides it, how can you make them unique
without some magic global repository of names?
>we have namespaces to deal with name collisions.
Jason
You mean you have lawyers handle it? ;-)
>From: Sean Perry <perry at ca.ibm.com>
>that sounds exactly like the issue we are having with the
>boost/python. I hadn't reached the point of isolating the problem to
>RTLD_LOCAL yet. If you build two libraries with boost/python and load them
>in a python script and try to throw a predefined exception from one of the
>two the exception is not caught.
Yes, we have had customers complaining about not caught or dynamic_casts
not working, with RTLD_LOCAL. I cringe when I see RTLD_LOCAL. :-(
More information about the cxx-abi-dev
mailing list