In glibc-devel-2.1.1-6 a gratuitous change to stdio.h/libio.h was made which prevents stdin, stderr and stdout from being used as initializers. The code below complies on every system I've tried *except* the latest glibc-devel-2.1.1. #include <stdio.h> FILE *x = stdout; An (unnacceptable) workaround is to use _IO_stdout.
*** This bug has been marked as a duplicate of 3137 ***