If you are installing GNU libc on a GNU/Linux system, you need to have the
header files from a 2.2 or newer kernel around for reference. For some
architectures, like ia64, sh and hppa, you need at least headers from
kernel 2.3.99 (sh and hppa) or 2.4.0 (ia64). You do not need to use
that kernel, just have its headers where glibc can access at them. The
easiest way to do this is to unpack it in a directory such as
/usr/src/linux-2.2.1. In that directory, run make config
and accept all the defaults. Then run make
include/linux/version.h. Finally, configure glibc with the option
--with-headers=/usr/src/linux-2.2.1/include. Use the most recent
kernel you can get your hands on.
An alternate tactic is to unpack the 2.2 kernel and run make
config as above; then, rename or delete /usr/include, create a
new /usr/include, and make symbolic links of
/usr/include/linux and /usr/include/asm into the kernel
sources. You can then configure glibc with no special options. This
tactic is recommended if you are upgrading from libc5, since you need to
get rid of the old header files anyway.
After installing GNU libc, you may need to remove or rename
/usr/include/linux and /usr/include/asm, and replace them
with copies of include/linux and
include/asm-$ARCHITECTURE taken from the Linux source
package which supplied kernel headers for building the library.
ARCHITECTURE will be the machine architecture for which the
library was built, such as i386 or alpha. You do not need
to do this if you did not specify an alternate kernel header source
using --with-headers. The intent here is that these directories
should be copies of, not symlinks to, the kernel headers used to
build the library.
Note that /usr/include/net and /usr/include/scsi should
not be symlinks into the kernel sources. GNU libc provides its
own versions of these files.
GNU/Linux expects some components of the libc installation to be in
/lib and some in /usr/lib. This is handled automatically
if you configure glibc with --prefix=/usr. If you set some other
prefix or allow it to default to /usr/local, then all the
components are installed there.
If you are upgrading from libc5, you need to recompile every shared
library on your system against the new library for the sake of new code,
but keep the old libraries around for old binaries to use. This is
complicated and difficult. Consult the Glibc2 HOWTO at
<http://www.imaxx.net/~thrytis/glibc> for details.
You cannot use nscd with 2.0 kernels, due to bugs in the
kernel-side thread support. nscd happens to hit these bugs
particularly hard, but you might have problems with any threaded
program.
....................................................................................................................................
About ~
Privacy Statement ~
Terms of Use ~
~
All Linux-Documentation.com