This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
RE: Will the dynamic_cast, throw, typeid shared library bug be fixed?
- From: Jim Wilson <wilson at specifixinc dot com>
- To: "Rice, Michael A." <MICHAEL dot A dot RICE at saic dot com>
- Cc: gcc-bugs at gcc dot gnu dot org
- Date: 30 Oct 2003 14:39:21 -0800
- Subject: RE: Will the dynamic_cast, throw, typeid shared library bug be fixed?
- References: <326B3EDB3229B440BEBFFA0D2203BD8F0172CE1D@US-Huntsville.mail.saic.com>
On Thu, 2003-10-30 at 12:46, Rice, Michael A. wrote:
> Specifically, we use dlopen() to load the libraries, but the call to
> dlopen() is in a 3rd party library that we can't modify.
OK. It sounds like you may have a legitimate complaint. I am not a C++
expert though, so there isn't much I can do about it. You could try
submitting a bug into bugzilla.
It isn't clear if we can do much to help though. If we add a command
line flag to gcc that causes gcc to emit code using a different ABI that
does not have this issue, you then still have the problem that the 3rd
party library needs to be compiled differently. And if you can get the
3rd party library changed, then it might be easier to add the missing
RTLD_GLOBAL flag.
> To me, it looks like a regression since it doesn't happen in previous GCC
> versions and this particular problem doesn't seem to occur with other
> vendors' compilers (SGI, Sun, MS, etc.)
Perhaps these compilers aren't using the new C++ ABI standard? This
allows for some link time compatibility between different C++ compilers,
which was never practical before the C++ ABI standard. It also improves
performance, and has other benefits. I am pretty sure that Sun and MS
are not using the C++ ABI standard, but I would have thought that SGI
was. If SGI is using the C++ ABI standard, and does not have this
problem, then perhaps we can solve it the same way that SGI did.
--
Jim Wilson, GNU Tools Support, http://www.SpecifixInc.com