This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Minimal GCC/Linux shared lib + EH bug example
- From: martin at v dot loewis dot de (Martin v. Loewis)
- To: Mark Mitchell <mark at codesourcery dot com>
- Cc: Jason Merrill <jason at redhat dot com>, David Abrahams <david dot abrahams at rcn dot com>, "Ralf W. Grosse-Kunstleve" <rwgk at cci dot lbl dot gov>, "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>
- Date: 12 May 2002 20:48:42 +0200
- Subject: Re: Minimal GCC/Linux shared lib + EH bug example
- References: <50980000.1021228184@warlock.codesourcery.com>
Mark Mitchell <mark@codesourcery.com> writes:
> > I find this testcase somewhat persuasive, as the offending dlopen call is
> > not in the C++ code. What do others think?
>
> I agree with your other statement: RTLD_LOCAL and C++ don't really make
> sense.
The issue is that Python *must* use RTLD_LOCAL to load its extension
modules, or else unrelated extension modules might crash due to
conflicting symbols.
Now, people want to use C++ for extension modules. So far, this has
worked fine - except that it now stops working with g++ 3.x, if you
want to throw exceptions in the extension module.
> We will have given people a bigger bazooka, but it will be aimed at
> their own feet.
Since the alternative is not to allow writing exceptions in C++,
people would be willing to accept restrictions, if they know what
those restrictions are. Requiring all classes used as exceptions to be
polymorphic (non-pure non-inline blabla), and not allowing static
members in templates might be acceptable; not allowing exceptions
probably isn't.
It would be nice if the compiler could warn if features are used that
require symbol uniqueness.
Regards,
Martin