+compiler flags enables a set of replacement functions within libc capable of detecting simple buffer overflows. The functionality is heavily integrated with
+the compiler itself.
+.Pp
+The concept builds on the observation that there are many cases where the
+compiler can determine the size of a buffer. If a buffer overflow is known at
+compile time the compiler can report a warning, otherwise it will run the checks
+during runtime.
+.Pp
+.Sh OPTIONS
+.Ss Fortify level
+.Nm level
+Setting the level to 0 disables FORTIFY_SOURCE.
+Levels higher than 1 adds more checks but may cause conformant programs to fail.
+.Pp
+.Sh IMPLEMENTATION NOTES
+Replacement functions are meant to be transparent to the developer and cannot
+be called directly:
+headers cannot be imported directly from any public header.
+Checker functions do appear visible when debugging or when reporting an
+overflow.
+.Pp
+Object size information is usually available to the compiler only in
+optimization mode: for this reason disabling optimizations also involves
+disabling FORTIFY_SOURCE.
+.Pp
+The implementation uses the standard headers to provide inlined
+replacements: any standard function that is not declared through the
+standard headers will therefore be unaffected and will remain unprotected.
+Similarly, functions overflowing in a different compilation unit may remain
+unprotected.
+.Pp
+Support for
+.Xr clang 1
+and other compilers that have only partial implementation of
+.Tn GNU
+extensions is somewhat limited, particularly regarding compile time and
+level 2 checks.
+.Pp
+.Sh SEE ALSO
+.Xr cc 1 ,
+.Xr poll 2 ,
+.Xr ppoll 2 ,
+.Xr pread 2 ,
+.Xr read 2 ,
+.Xr readlink 2 ,
+.Xr readlinkat 2 ,
+.Xr recfrom 2 ,
+.Xr umask 2 ,
+.Xr bcopy 3 ,
+.Xr bzero 3 ,
+.Xr fgets 3 ,
+.Xr fread 3 ,
+.Xr fwrite 3 ,
+.Xr getcwd 3 ,
+.Xr memccpy 3 ,
+.Xr memcpy 3 ,
+.Xr memmove 3 ,
+.Xr memrchr 3 ,
+.Xr memset 3 ,
+.Xr rindex 3 ,
+.Xr snprintf 3 ,
+.Xr sprintf 3 ,
+.Xr stpcpy 3 ,
+.Xr stpncpy 3 ,
+.Xr strcat 3 ,
+.Xr strchr 3 ,
+.Xr strchrnul 3 ,
+.Xr strcpy 3 ,
+.Xr strlcat 3 ,
+.Xr strlcpy 3 ,
+.Xr strlen 3 ,
+.Xr strncat 3 ,
+.Xr strncpy 3 ,
+.Xr strrchr 3 ,
+.Xr vsnprintf 3 ,
+.Xr vsprintf 3
+.Sh HISTORY
+Support for FORTIFY_SOURCE is a
+.Tn GNU
+C extension.
+The current implementation was developed by
+.An Oliver Pinter
+with help from
+.An Pedro Giffuni
+based on similar implementations from Bionic's libc and