Glibc 2.28 porting notes/libio h removal

From Gentoo Wiki
Jump to: navigation, search

From the release notes:

* The nonstandard header files <libio.h> and <_G_config.h> are no longer
  installed.  Software that was using either header should be updated to
  use standard <stdio.h> interfaces instead.

This leads apparently to some side effects. In particular, stdio.h did previously include abovementioned libio.h, which unintentionally leaked the complete definition of struct FILE.

A workaround for software that now fails to build is to additionally #include <bits/types/struct_FILE.h> (but keep in mind that this header was only added in 2.28, and doesnt exist in previous glibc versions).

glibc commit: a4fea3f2c3253b9ae6ffacd3747034ccbe56bc60