[lsb-discuss] what is the current libchk status in LSB 4.0 and 4.1?
dsilakov at gmail.com
Thu May 16 12:24:15 UTC 2013
This tool can be also used to easy observer vtable structure -
(iirc, it just performs the same actions as Karel mentioned)
On 05/16/2013 04:05 PM, Karel Srot wrote:
> I am forwarding a feedback from our engineer Benjamin Kosnik regarding
> similar failure
> Message from the test:
> Symbol address found for Virtual table entry  0xfff86ae4bf8 (found) doesn't match 0xfff86ae4c08 (expected)
> Virtual Function NULL or _ZNSt21__ctype_abstract_baseIcED0Ev (expected) doesn't match _ZNSt14collate_bynameIcED0Ev (found)
> Unmangled expected: std::__ctype_abstract_base<char>::~__ctype_abstract_base()
> Unmangled found...: std::collate_byname<char>::~collate_byname()
> [!!!] Unqualified function names do not match:
> (expected) ~__ctype_abstract_base()
> (.found..) ~collate_byname()
> Test Purpose Comment: _ZSt21__ctype_abstract_baseIcE virtual function pointers
> This is very problematic, in that std::__ctype_abstract_base<char> is never instantiated by user or library code. Instead, the std::ctype<char> class is derived from std::locale::facet, and std::ctype_base.
> If you're wondering, "hey, does this libstdc++.so have a std::ctype<char> facet that works?" Well then, the answer is in libstdc++-v3/testsuite/22_locale/ctype*. This is part of "make check" in the gcc package, so if there are fails there then be concerned. And the same for codecvt, in libstdc++-v3/testsuite/22_locale/codecvt*.
> Instead, this testsuite is looking at libstdc++ exports. In fact, there is a vtable emitted for std::ctype<char>, due to the use of "inline template" explicit instantiations in src/locale-inst.cc. This I consider a build/versioning oversight/mistake that now must be maintained for ABI compat.
> But you want to verify on a built machine.
> You can re-make the file with the vtables (locale-inst.o), and instrument it as follows:
> cd LIBCXXBLD/src/c++98;
> make CXXFLAGS="-g -O2 -fdump-class-hierarchy" locale-inst.o
> then, look at the generated files:
More information about the lsb-discuss