This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Minimal GCC/Linux shared lib + EH bug example


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]