mips64-linux-gnu abi_check issues

Benjamin Kosnik bkoz@redhat.com
Thu Jan 29 20:11:00 GMT 2009


> Thanks for looking into it.

This appears to be two classes of failure, with 67 missing symbols.

1) missing long double exports. Did this platform change the size of
long double since 3.4? (Is __LONG_DOUBLE_128__ defined?) This is
probably another instance of mistaken export of long double math
functions from the 3.4 era for RISC-y targets, like hppa. See 

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26926.

This isn't especially critical, and can be fixed by hacking around
in src/compatibility.cc by adding something like __mips64__ or whatever
by __hppa__. Try it.

2) missing locale exports. Are you configured to use the gnu locale
model? Looks like no to me.

You should see this line when configuring:

checking for C locale to use... gnu

Usually this is set automatically if you have the requisite C locale
bits installed, but you can force it with --enable-clocale=gnu. Try it.

See stuff like:
_ZNSt11__timepunctIcE23_M_initialize_timepunctEPi
std::__timepunct<char>::_M_initialize_timepunct(int*)
version status: incompatible
GLIBCXX_3.4
type: function
status: added

Should be:
FUNC:_ZNSt11__timepunctIcE23_M_initialize_timepunctEP15__locale_struct@@GLIBCXX_3.4

Note the function argument difference.

best,
-benjamin



More information about the Libstdc++ mailing list