Date: Wed, 4 Mar 2015 19:11:11 -0800 (PST) From: Don Lewis <truckman@FreeBSD.org> To: hackers@FreeBSD.org Subject: crash in libstdc++ __dynamic_cast() only on FBSD 10, g++ libstdc++ guru advice needed Message-ID: <201503050311.t253BBqn061214@gw.catspoiler.org>
next in thread | raw e-mail | index | archive | help
I'm trying to debug an odd crash in openoffice that only happens on FreeBSD 10 (and most likely 11). It happens on both i386 and amd64. It does not happen FreeBSD 8. Inside the guts of __cxxabiv1::__dynamic_cast(), this line of code whole_type->__do_dyncast (src2dst, __class_type_info::__contained_public, dst_type, whole_ptr, src_type, src_ptr, result); ends up jumping to address 0, and it looks like the problem is a NULL pointer in the vtable. The code is being compiled with the default ports version of gcc on both FreeBSD 8 and 10. This is not a new problem and there have been multiple versions of gcc used since the problem was first reported. It is just very strange the the same code compiled with the same version of gcc, with the same compiler options and linked to the same version of libstdc++ works on FreeBSD 8 and not FreeBSD 10. Changing the compiler optimization level has no effect. All the gory details are here: <https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=188088#c14> I'm about out of ideas, so any advice is welcome.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201503050311.t253BBqn061214>