[Bug 201784] [libcxxrt] C++ dynamic_cast does not recognize same types across dynamically loaded modules when downcasting

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Thu Jul 23 12:57:40 UTC 2015


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=201784

--- Comment #8 from Dimitry Andric <dim at FreeBSD.org> ---
(In reply to Marcin Cieślak from comment #6)
> By the way, our <bsd.lib.mk> always uses ${CC} when linking shared library
> (and it's silenced with @). Is this okay for C++ libs?

Not if you specify the lib using LIB_CXX, like in the libatf-c++ Makefile:

LIB_CXX= atf-c++

We used to do a 'deep' comparison of the typeinfo earlier, but only in head
from r256642 onwards, and we eventually reverted it in r278010.  As Jörg
Sonnenberger noted in a private mail conversation:

"... there are three different problematic situations:

(1) A type is used in the main program and it is linked without
-rdynamic.

(2) A type is used by two different DSOs and both are loaded with
RTLD_LOCAL.

(3) Two independent types of the same name are defined in two different
DSOs.

The hack makes the first two work to a degree and fails misserable on
the last. IMO (2) and (3) should be considered the same and (1) is just
a bug."

(N.B.: with 'the hack' he meant doing the deep comparison.)

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-standards mailing list