+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 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
+.AUTHORS
+The framework was developed by
+.An Oliver Pinter
+with help from
+.An Pedro Giffuni
+based on similar implementations from Bionic's libc and
+.Nx
+.Sh HISTORY
+Support for FORTIFY_SOURCE is a
+.Tn GNU
+C extension.
+The current implementation is available starting from