	  -------------------------------------------------
	  Please note the following caveats to using klibc:
	  -------------------------------------------------

optimization:
-------------

Compiling with -O0 is not supported.  It may or may not work; please
use -O1 if you want to do maximize debuggability.

Compiling with -O0 is more likely to work on gcc 3.


setjmp()/longjmp():
-------------------

setjmp() and longjmp() *do not* save signal state.  sigsetjmp() and
siglongjmp() *do* save the signal mask -- regardless of the value of
the extra argument.

The standards actually state that if you pass longjmp() a final value
of zero the library should change that to a 1!  Presumably the reason
is so people who write broken code can get away with writing
longjmp(buf); or something equally bad.  If you pass longjmp() a final
value of 0 you get what you deserve -- setjmp() will happily return 0.


stdio:
------

Only a small subset of the stdio functions are implemented.  Those
that are implemented do not buffer, although they *do* trap EINTR or
short read/writes and iterate.

_fread() and _fwrite(), which take only one size argument (like
read/write), but do handle EINTR/short return are also available.


namespaces:
-----------

klibc frequently includes headers in other headers in a way that
exposes more symbols than POSIX says they should.  "Live with it."


theading:
---------

klibc is not thread-safe.  Consequently, clone() or any of the
pthreads functions are not included.


bsd_signal vs sysv_signal:
--------------------------

There is no signal() call, because you never know if you want
Linux/SysV semantics (SA_RESETHAND) or GNU/BSD semantics (SA_RESTART).
The best, in *any* circumstances, is to never use signal() and instead
use sigaction(), but in order to simplify porting you can use either
sysv_signal() or bsd_signal(), depending on what you actually want.
