# EGLIBC-&eglibc-version;

## Installation of EGLIBC

Tell EGLIBC to install its libraries into `/lib`:

    echo "slibdir=/lib" >> configparms

    CFLAGS="-mtune=generic -g -O2" \
        ../eglibc-&eglibc-version;/configure --prefix=/usr \
        --disable-profile --enable-kernel=2.6.32 \
        --libexecdir=/usr/lib/eglibc --libdir=/usr/lib

## The meaning of the new configure option:

`--libexecdir=/usr/lib/eglibc`

- This changes the location of the `pt_chown` program from its default of `/usr/libexec` to `/usr/lib/eglibc`.

The install will finish by checking that everything is correctly installed. Unfortunately, it will test for a multilib installation. On x86_64 Pure64 this means it will try to test the non-existent 32-bit loader which has a different name from the 64-bit loader (unlike on other 64-bit architectures). We fool it by creating a symlink to the real loader.

    ln -sv &eglibc-ld-name; /lib/ld-linux.so.2

Now we can remove this symlink. We also need to correct the `/usr/bin/ldd` script - if you look at this, you will see it references not only the 32-bit linker, but also /lib64 where it thinks the 64-bit linker is. The following `sed` will correct this:

    rm -v /lib/ld-linux.so.2
    cp -v /usr/bin/ldd{,.bak}
    sed '/RTLDLIST/s%/ld-linux.so.2 /lib64%%' /usr/bin/ldd.bak >/usr/bin/ldd

Check the script to make sure the sed worked correctly, then delete the backup.

    rm -v /usr/bin/ldd.bak

## Configuring The Dynamic Loader

By default, the dynamic loader (`/lib/ld-linux-x86-64.so.2`) searches through `/lib` and `/usr/lib` for dynamic libraries that are needed by programs as they are run. However, if there are libraries in directories other than `/lib` and `/usr/lib`, these need to be added to the `/etc/ld.so.conf` file in order for the dynamic loader to find them. Two directories that are commonly known to contain additional libraries are `/usr/local/lib` and `/opt/lib`, so add those directories to the dynamic loader's search path.