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) Create a symlink in the include directory called "bitsize" pointing
   either to the "bits32" or the "bits64" directory, depending on the
   architecture you're compiling for.

c) Change ARCH and OPTFLAGS in the main Makefile to match your
   architecture.

d) Type "make" and pray...

e) Try the "hello", "minihello" and "testvsnp" programs... they should
   run.

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

	-hpa
