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
+minimal entaglement, and portability, not speed. It is definitely a
work in progress, and a lot of things are still missing.
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.5 should be OK.)
+ 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".
+ question, followed by a "make dep" (2.4) or "make prepare" (2.6).
b) If you're cross-compiling, change ARCH in the main MCONFIG file to
the appropriate architecture, and set CROSS to your toolchain
The following is the last known status of various architectures:
- Known to work: alpha arm i386 s390 s390x sparc sparc64 x86_64*
- Works static, not shared: mips* arm-thumb sh*
- Need crt0.S updates: ppc
- Missing setjmp: ppc64
- Need porting work: cris ia64 m68k mips64 parisc
+ alpha: Working static, shared untested
+ arm-thumb: Untested
+ arm26: Not yet ported
+ arm: Working
+ cris: Untested
+ h8300: Not yet ported
+ i386: Working
+ ia64: Working
+ m68k: Not yet ported
+ mips64: Not yet ported
+ mips: Working
+ parisc: Untested
+ ppc64: Working
+ ppc: Working
+ s390: Working static, shared untested
+ s390x: Working
+ sh: Untested
+ sparc64: sigaction() fails in ash for unknown reason
+ sparc: Working
+ v850: Not yet ported
+ x86-64: Working
+
+ Shared library support requires recent binutils on many
+ architectures.
- x86_64: requires a kernel header patch (to be created)
- mips, sh: linker problem; might work with fixed linker
+ "Need sysstub.ph" means the architectural changes first implemented
+ in klibc-0.117 has not yet been implemented; klibc-0.116 did,
+ however, work. "Not yet ported" means no porting work has been
+ done on this architecture.
- Shared library support for sparc/sparc64 requires binutils 2.13.90.0.4.
-
- Note that even the "known to work" ones likely have bugs. Please
- report them if you run into them.
+ 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 me at <hpa@zytor.com> for more info.
+Contact the klibc mailing list:
+
+ http://www.zytor.com/mailman/listinfo/klibc
+
+... for more info.
-hpa