--- /dev/null
+--- stdio.3 2004-11-25 11:38:35.000000000 -0800
++++ stdio.3.edit 2006-09-06 16:18:21.000000000 -0700
+@@ -45,6 +45,20 @@
+ .Vt FILE *stdin ;
+ .Vt FILE *stdout ;
+ .Vt FILE *stderr ;
++.Pp
++Note:
++The current implementation does not allow these variables
++to be evaluated at C compile/link time.
++That is, a runtime calculation must be performed, such as:
++.Bd -literal -offset indent
++#include <stdio.h>
++
++static FILE *var;
++
++int main() {
++ var = stdout;
++}
++.Ed
+ .Sh DESCRIPTION
+ The standard
+ .Tn I/O
+@@ -232,11 +246,21 @@
+ .Dv putchar_unlocked
+ exist and will be used if the macro
+ definitions are explicitly removed.
++.Sh LEGACY SYNOPSIS
++The -D_NONSTD_SOURCE flag can be used
++to allow stdin, stdout, and/or stderr
++to be evaluated at compile/link time, as:
++.Bd -literal -offset indent
++#include <stdio.h>
++
++static FILE *var = stdout;
++.Ed
+ .Sh SEE ALSO
+ .Xr close 2 ,
+ .Xr open 2 ,
+ .Xr read 2 ,
+-.Xr write 2
++.Xr write 2 ,
++.Xr compat 5
+ .Sh BUGS
+ The standard buffered functions do not interact well with certain other
+ library and system functions, especially
+@@ -250,7 +274,9 @@
+ .Bl -column "Description"
+ .It Sy "Function Description"
+ .It "asprintf formatted output conversion"
++.It ""
+ .It "clearerr check and reset stream status"
++.It ""
+ .It "fclose close a stream"
+ .It "fdopen stream open functions"
+ .It "feof check and reset stream status"
+@@ -282,15 +308,18 @@
+ .It "fwopen open a stream"
+ .It "fwprintf formatted wide character output conversion"
+ .It "fwrite binary stream input/output"
++.It ""
+ .It "getc get next character or word from input stream"
+ .It "getchar get next character or word from input stream"
+ .It "gets get a line from a stream"
+ .It "getw get next character or word from input stream"
+ .It "getwc get next wide character from input stream"
+ .It "getwchar get next wide character from input stream"
++.It ""
+ .It "mkdtemp create unique temporary directory"
+ .It "mkstemp create unique temporary file"
+ .It "mktemp create unique temporary file"
++.It ""
+ .It "perror system error messages"
+ .It "printf formatted output conversion"
+ .It "putc output a character or word to a stream"
+@@ -299,8 +328,10 @@
+ .It "putw output a character or word to a stream"
+ .It "putwc output a wide character to a stream"
+ .It "putwchar output a wide character to a stream"
++.It ""
+ .It "remove remove directory entry"
+ .It "rewind reposition a stream"
++.It ""
+ .It "scanf input format conversion"
+ .It "setbuf stream buffering operations"
+ .It "setbuffer stream buffering operations"
+@@ -313,11 +344,14 @@
+ .It "swprintf formatted wide character output conversion"
+ .It "sys_errlist system error messages"
+ .It "sys_nerr system error messages"
++.It ""
+ .It "tempnam temporary file routines"
+ .It "tmpfile temporary file routines"
+ .It "tmpnam temporary file routines"
++.It ""
+ .It "ungetc un-get character from input stream"
+ .It "ungetwc un-get wide character from input stream"
++.It ""
+ .It "vasprintf formatted output conversion"
+ .It "vfprintf formatted output conversion"
+ .It "vfscanf input format conversion"
+@@ -329,5 +363,6 @@
+ .It "vsscanf input format conversion"
+ .It "vswprintf formatted wide character output conversion"
+ .It "vwprintf formatted wide character output conversion"
++.It ""
+ .It "wprintf formatted wide character output conversion"
+ .El