This is the mail archive of the gcc-help@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: dlopen() and placing exception body in .cpp file


Dimitri Tcaciuc <dtcaciuc@gmail.com> writes:

> Now, according to `dlopen` manual, I have to load with RTLD_GLOBAL for
> RTTI to function properly.

Yes.  Anything else is unsupported.  Even if we explain how it all works
today, it may change tomorrow.

Basically, it works by doing pointer comparisons on the RTTI
information.  That works reliably when using RTLD_GLOBAL.  When using
RTLD_LOCAL, whether it works depends on exactly where the code creating
the object runs, because where that code runs determines which pointer
it will get when it refers to the symbol containing the type
information.

Ian


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