Re: llvm & RTTI over shared libraries
- Reply: Joerg Sonnenberger : "Re: llvm & RTTI over shared libraries"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 20 Apr 2022 06:03:33 UTC
Joerg Sonnenberger <joerg_at_bec.de> wrote on 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. Seems out of date for the GCC information . . . https://gcc.gnu.org/faq.html#dso reports: QUOTE The new C++ ABI in the GCC 3.0 series uses address comparisons, rather than string compares, to determine type equality. END QUOTE > 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. === Mark Millard marklmi at yahoo.com