Go to the first, previous, next, last section, table of contents.
GNU Libc can be compiled in the source directory but we'd advise to build in a separate build directory. For example, if you have unpacked the glibc sources in `/src/gnu/glibc-2.1.0', create a directory `/src/gnu/glibc-build' to put the object files in.
From your object directory, run the shell script `configure' found at the top level of the source tree. In the scenario above, you'd type
$ ../glibc-2.1.0/configure args...
configure
takes many options, but you can get away with knowing
only two: `--prefix' and `--enable-add-ons'. The
--prefix
option tells configure where you want glibc installed.
This defaults to `/usr/local'. The `--enable-add-ons' option
tells configure to use all the add-on bundles it finds in the source
directory. Since important functionality is provided in add-ons, you
should always give this option.
It may also be useful to set the CC and CFLAGS variables in
the environment when running configure
. CC selects the C
compiler that will be used, and CFLAGS sets optimization options
for the compiler.
Here are all the useful options known by configure
:
configure
will detect the problem and
suppress these constructs, so the library will still be usable, but
functionality may be lost--for example, you can not build a shared libc
with old binutils.)
configure
will prepare to cross-compile glibc from build-system to be used
on host-system. You'll probably need the `--with-headers'
option too, and you may have to override configure's selection of
the compiler and/or binutils.
If you give just `--host', configure will prepare for a native
compile but use what you say instead of guessing what your system is.
This is most useful to change the CPU submodel. For example, if
configure guesses your machine as i586-pc-linux-gnu
but you want
to compile a library optimized for 386es, give
`--host=i386-pc-linux-gnu' or just `--host=i386-linux'. (A
library compiled for a Pentium (i586
) will still work on a 386,
but it may be slower.)
If you give just `--build', configure will get confused.
To build the library and related programs, type make
. This will
produce a lot of output, some of which may look like errors from
make
but isn't. Look for error messages from make
containing `***'. Those indicate that something is really wrong.
The compilation process takes several hours even on fast hardware. Expect at least two hours for the default configuration on i586 for Linux. For Hurd times are much longer. Except for EGCS 1.1 (and later versions of EGCS), all supported versions of GCC have a problem which causes them to take several minutes to compile certain files in the iconvdata directory. Do not panic if the compiler appears to hang.
If you want to run a parallel make, you can't just give make
the
`-j' option, because it won't be passed down to the sub-makes.
Instead, edit the generated `Makefile' and uncomment the line
# PARALLELMFLAGS = -j 4
You can change the `4' to some other number as appropriate for your system.
To build and run some test programs which exercise some of the library
facilities, type make check
. This should complete successfully;
if it doesn't, do not use the built library, and report a bug.
See section Reporting Bugs, for how to do that. Note that some of the tests
assume they are not being run by root
. We recommend you compile
and test glibc as an unprivileged user.
To format the GNU C Library Reference Manual for printing, type
make dvi
. You need a working TeX installation to do this.
The distribution already includes the on-line formatted version of the
manual, as Info files. You can regenerate those with make
info
, but it shouldn't be necessary.
Go to the first, previous, next, last section, table of contents.