The configure script caches a wrong value for libc_cv_gnu89_inline (or checks the cached value incorrectly depending on how you look at it). Around line 1651 of configure.in, a cached check is started to determine wether -fgnu89-inline is a valid compiler switch and stores either 'yes' or 'no' in the libc_cv_gnu89_inline variable. A couple of lines down (around line 1668) this variable is tested for the value 'yes' and then overwritten with either '- fgnu89-inline' or an empty value. This results in '-fgnu89-inline' being the cached value for libc_cv_gnu89_inline. If you run configure again with the same cache file, libc_cv_gnu89_inline will have the value '-fgnu89-inline' which doesn't equal 'yes' so libc_cv_gnu89_inline will be set to an empty value breaking the build of glibc (in my case in io/stat.c because of a redefined __stat function). This can be a real nuisance when generating a cross-compiler toolchain for which you want to provide a config.cache to pre-determine the outcome of certain configure tests.
Created attachment 2789 [details] (Untested) patch for fixing caching of libc_cv_gnu89_inline Haven't had a chance to test this because autoconf doesn't want to work properly.
*** Bug 9710 has been marked as a duplicate of this bug. ***
This has been fixed in the meantime. Thanks for the report. *** This bug has been marked as a duplicate of bug 11840 ***