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) In the source root directory (the directory above the one in which this file is found) create a symlink called "linux" pointing to a reasonably recent Linux kernel tree (2.4 or 2.6 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. The easiest way to make sure of all of these is to do a "make config" or any of its variants on the kernel tree is question, followed by a "make dep" (2.4) or "make prepare" (2.6). b) If you're cross-compiling, you need to set KLIBCARCH to the appropriate architecture, and set CROSS_COMPILE to your toolchain prefix. IMPORTANT: if you're on a 64-bit machine with a 32-bit userland (ia64, mips64, ppc64 sparc64, s390x or x86_64), and you want to build the 32-bit version: you need to set KLIBCARCH to the 32-bit architecture as well as set up the linux/include/asm symlink to point to the 32-bit architecture. Building the 32-bit architecture usually (but not always) produces smaller binaries, and is likely to be better tested. If you are on ARM, and want to build a thumb version of the library (this is supported), change OPTFLAGS in arch/arm/MCONFIG to build thumb code. The following is the last known status of various architectures: alpha: Working arm-thumb: Untested arm: Working arm26: Not yet ported avr32: Not yet ported cris: Working h8300: Not yet ported i386: Working ia64: Working static, shared untested m32r: Untested m68k: Untested m68knommu: Not yet ported mips: Working mips64: Not yet ported parisc: Working parisc64: Not yet ported ppc: Working ppc64: Working s390: Working s390x: Working sh: Untested sh64: Not yet ported sparc: Working sparc64: Untested v850: Not yet ported x86-64: Working xtensa: Not yet ported Shared library support requires recent binutils on many architectures. Note that even the "working" ones likely have bugs. Please report them if you run into them. c) Type "make" and pray... d) Try the test programs in the tests/ directory. They should run... Contact the klibc mailing list: http://www.zytor.com/mailman/listinfo/klibc ... for more info. -hpa