| 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, change ARCH in the main MCONFIG file to |
| the appropriate architecture, and set CROSS 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 ARCH 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 static, shared untested |
| arm-thumb: Untested |
| arm26: Not yet ported |
| arm: Working |
| cris: Working |
| h8300: Not yet ported |
| i386: Working |
| ia64: Working |
| m32r: Untested |
| 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: Untested |
| sparc: Working |
| v850: Not yet ported |
| x86-64: Working |
| |
| Shared library support requires recent binutils on many |
| architectures. |
| |
| "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. |
| |
| 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 |