Installing Glibc

Installation of Glibc

Unpack the glibc-linuxthreads in the glibc-2.2.1 directory, not in /usr/src. Don't enter the created directories. Just unpack them and leave it with that.

Install Glibc by running the following commands:



touch /etc/ld.so.conf &&
mkdir /usr/src/glibc-build &&
cd /usr/src/glibc-build &&
../glibc-2.2.1/configure \
   --prefix=/usr --enable-add-ons \
   --libexecdir=/usr/bin &&
sed s/"cross-compiling = yes"/"cross-compiling = no"/ \
   config.make > config.make~ &&
mv config.make~ config.make &&
make &&
make install &&
make localedata/install-locales &&
cp login/pt_chown /usr/bin

You can get rid of the "I have no name!" in the bash prompt if you want. Do this by exiting chroot and re-entering it. Run the following commands to do that:



logout
chroot $LFS /usr/bin/env -i HOME=/root /bin/bash --login

Command explanations

touch /etc/ld.so.conf One of the final steps of the Glibc installation is running ldconfig to update the dynamic loader cache. If this file isn't present Glibc will abort with an error that it can't read the file. So we create an empty file for it (empty file will have Glibc default to using /lib and /usr/lib which is fine right now).

--enable-add-ons: This enabled the add-ons that we install with Glibc: linuxthreads

Contents

The Glibc package contains the GNU C Library.

Description

The C Library is a collection of commonly used functions in programs. This way a programmer doens't need to create his own functions for every single task. The most common things like writing a string to your screen are already present and at the disposal of the programmer.

The C library (actually almost every library) come in two flavours: dynamic ones and static ones. In short when a program uses a static C library, the code from the C library will be copied into the executable file. When a program uses a dynamic library, that executable will not contain the code from the C library, but instead a routine that loads the functions from the library at the time the program is run. This means a significant decrease in the file size of a program. If you don't understand this concept, you better read the documentation that comes with the C Library as it is too complicated to explain here in one or two lines.