Well, apparently no one has attempted to compile that IEEE I/O code in 8.1 for a while.
Is it broken? In that case I can take a look at it.
C99 says that floats are implemented according to IEEE when the hardware uses it,
Where do you think it says that? The only part of C99 which mentions IEEE is Annex F (and G, covering complex numbers), which describes how floating point should behave in an implementation which defines __STDC_IEC_559__. An implementation not defining this preprocessor symbol is not covered by said annex, and can chose any floating point representation, regardless of hardware support.