Dimitri Tcaciuc <dtcaciuc@xxxxxxxxx> 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