chiark / gitweb /
volume_id: provide libvolume_id.a file
[elogind.git] / klibc / klibc / README
1 This is klibc, what is intended to be a minimalistic libc subset for
2 use with initramfs.  It is deliberately written for small size,
3 minimal entaglement, and portability, not speed.  It is definitely a
4 work in progress, and a lot of things are still missing.
5
6
7 The build procedure is not very polished yet, but it should work like
8 this:
9
10 a) In the source root directory (the directory above the one in which
11    this file is found) create a symlink called "linux" pointing to a
12    reasonably recent Linux kernel tree (2.4 or 2.6 should be OK.)
13    This tree must have the include/asm symlink set up for the
14    architecture you're compiling for, and include/linux/autoconf.h
15    must exist.  The easiest way to make sure of all of these is to do
16    a "make config" or any of its variants on the kernel tree is
17    question, followed by a "make dep" (2.4) or "make prepare" (2.6).
18
19 b) If you're cross-compiling, change ARCH in the main MCONFIG file to
20    the appropriate architecture, and set CROSS to your toolchain
21    prefix.
22
23    IMPORTANT: if you're on a 64-bit machine with a 32-bit userland
24    (ia64, mips64, ppc64 sparc64, s390x or x86_64), and you want to
25    build the 32-bit version: you need to set ARCH to the 32-bit
26    architecture as well as set up the linux/include/asm symlink to
27    point to the 32-bit architecture.  Building the 32-bit architecture
28    usually (but not always) produces smaller binaries, and is likely
29    to be better tested.
30
31    If you are on ARM, and want to build a thumb version of the library
32    (this is supported), change OPTFLAGS in arch/arm/MCONFIG to build
33    thumb code.
34
35    The following is the last known status of various architectures:
36
37    alpha:        Working static, shared untested
38    arm-thumb:    Untested
39    arm26:        Not yet ported
40    arm:          Working
41    cris:         Working
42    h8300:        Not yet ported
43    i386:         Working
44    ia64:         Working
45    m32r:         Untested
46    m68k:         Not yet ported
47    mips64:       Not yet ported
48    mips:         Working
49    parisc:       Untested
50    ppc64:        Working
51    ppc:          Working
52    s390:         Working static, shared untested
53    s390x:        Working
54    sh:           Untested
55    sparc64:      Untested
56    sparc:        Working
57    v850:         Not yet ported
58    x86-64:       Working
59    
60    Shared library support requires recent binutils on many
61    architectures.
62
63    "Need sysstub.ph" means the architectural changes first implemented
64    in klibc-0.117 has not yet been implemented; klibc-0.116 did,
65    however, work.  "Not yet ported" means no porting work has been
66    done on this architecture.
67
68    Note that even the "working" ones likely have bugs.  Please report
69    them if you run into them.
70
71 c) Type "make" and pray...
72
73 d) Try the test programs in the tests/ directory.  They should run...
74
75 Contact the klibc mailing list:
76
77         http://www.zytor.com/mailman/listinfo/klibc
78
79 ... for more info.
80
81         -hpa