Re: llvm & RTTI over shared libraries
- In reply to: jbo_a_insane.engineer: "llvm & RTTI over shared libraries"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 19 Apr 2022 21:49:44 UTC
Am Thu, Apr 14, 2022 at 04:36:24PM +0000 schrieb jbo@insane.engineer: > After some research I seem to understand that the way that RTTI is handled over shared library boundaries is different between GCC and LLVM. I think you are running into the old problem that GCC thinks comparing types by name makes sense where as everyone else compares types by type pointer identity. GCC is glaringly wrong because types with identical names can and often are unrelated. This is especially a problem for plugins. The correct way to deal with it is making sure that every type has a key function of appropiate visibility and making sure that the interface library exports them and every plugin links against it. If you do that, dlopen without RTLD_GLOBAL or linking the main program without -rdynamic works fine. Joerg