Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 03 Jun 2003 01:00:36 -0700
From:      Terry Lambert <tlambert2@mindspring.com>
To:        Martin Blapp <mb@imp.ch>, kan@freebsd.org, freebsd-current@freebsd.org, "M. Warner Losh" <imp@bsdimp.com>
Subject:    Re: OpenOffice-devel: repeatable coredump with sun autodocinlibstd++
Message-ID:  <3EDC55A4.774728E1@mindspring.com>
References:  <20030602180313.S71313@cvs.imp.ch> <3EDC53B7.A6AF5A60@mindspring.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Terry Lambert wrote:
> Martin Blapp wrote:
> > > -frtti is required for dynamic_cast<T>(expr) to work.  so if it is
> > > broken, then you've got big problems.
> >
> > Lokks like you are definitly right:
> >
> > grep dynamic `find ./ -name "*.c*"`
> > ./source/ary/cpp/c_class.cxx:    ary::cpp::Display *  pD = dynamic_cast<
> >  ary::cpp::Display* >(&o_rOut);
> 
> [ ... ]
> 
> I have seen this type of error and core dump with a new C++
> and old rtti header files.  Make sure you are not mixing them,
> since these header files definitely have to match the compiler.

BTW: On older FreeBSD, you can't use a ports C++ to compile
C++ code, since bsd.prog.mk and bsd.lib.mk reset the include
path and will get you the older headers all the time, if
DESTDIR is set, which it will be.

If you are using a ports C++, then to see if you have this
problem, type the following:

	cd /usr/share/mk
	grep include/g++ *

If you see:

	bsd.lib.mk:CXXINCLUDES+= -I${DESTDIR}/usr/include/g++
	bsd.prog.mk:CXXINCLUDES+= -I${DESTDIR}/usr/include/g++

Then you have the problem.  This is fixed in 5.x; I'm not sure
if it has been MFC'ed into more recent -stable, or not (i.e.
it may not be a problem on 4.8; the above is from a 4.6 system).

-- Terry



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3EDC55A4.774728E1>