------- Comment #9 from dje at gcc dot gnu dot org 2006-02-18 23:16 ------- libstdc++ configuration may have detected that the particular feature causing problems was not present or the header may not have defined the function at all, causing libstdc++ to provide its own implementation.
The usual problem is that a system claims it supports some feature, but does not implement it correctly or does not declare the standard function correctly. Providing something wrong generally is worse than not providing it. GCC does have some functionality to go back and fix up headers, but GCC probably does not know about this particular problem. The problem appears to be that AIX 4.2 declares strtof() in /usr/include/stdlib.h as extern float strtof(char *, char **); instead of extern float strtof(const char *, char **); In other words, missing the "const". You could manually fix the header during the build process between building the compiler and building the libraries, by changing the copy of the stdlib.h header in the gcc/include subdirectory of the build. GCC uses its copy of the header if present. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26297