https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119250
--- Comment #4 from Iain Sandoe <iains at gcc dot gnu.org> --- there seems to be a fundamental inconsistency here; * libiberty is configured (and determines the availability of the POSIX basename). If that is not found, then it provides and publishes the fall-back (but that has the const char * signature). * libiberty.h depends on configured values, but does not install or include the config.h that was determined when it was built. * GCC builds a config.h which uses a different test from the one used by libiberty's configure to decide on the availability of basename. * So now what is published by libiberty.h depends on GCC's config.h which was built using different criteria from those determined at libiberty-build-time. In this case, (basename) the result becomes visible when we include a valid system header, one wonders if there are more subtle cases. Does anyone know why libiberty doe not install the build-time config file and have libiberty.h include it?