This is klibc, what is intended to be a minimalistic libc subset for
use with initramfs.  It is deliberately written for small size,
minimal entaglement and portability, not speed.  It is definitely a
work in progress, and a lot of things are still missing.


The build procedure is not very polished yet, but it should work like
this:

a) Create a symlink called "linux" pointing to a reasonably recent
   Linux kernel tree (2.4 or 2.5 should be OK.)  This tree must have
   the include/asm symlink set up for the architecture you're
   compiling for, and include/linux/autoconf.h must exist.

b) Change ARCH in the main Makefile to match your architecture.
   If you're cross-compiling, set CROSS to your toolchain prefix.

c) Type "make" and pray...

d) Try the test programs:
       microhello
       minihello
       hello
       testvsnp
       getenvtest
       getopttest
       malloctest
       minips

Contact me at <hpa@zytor.com> for more info.

	-hpa
