We're not going to installed the latest Glibc version (2.1.2 at the time of writing), but version 2.0.7pre6. The reason is that glibc 2.1.2 requires at least gcc 2.8 (or egcs 1.1). My system has gcc 2.7.2.3 thus I can't compile the glibc2.1.2 library. A second reason is that I have used the 2.1.2 C library for a while and found out that certain software doens't run smoothly when linked against that library version. In the future we might undergo the transition to Glibc-2.1.x when we have been able to fix those programs. For now, we'll stick with the library and compiler in which I have most confidence.
A note on the glibc-crypt package. The following is quoted from the glibc-crypt-README file on ftp://ftp.gnu.org/gnu/glibc:
-*-*-*-*-*- The add-on is not included in the main distribution of the GNU C library because some governments, mostly notable those of France, Russia and the US, have very restrictive rules governing the distribution and use of encryption software. Please read the node "Legal Problems" in the manual for more details. In particular, the US does not allow export of this software without a license, including via the Internet. So please do not download it from the main FSF FTP site at ftp.gnu.org if you are outside of the US. This software was completely developed outside the US. -*-*-*-*-*-
"This software" refers to the glibc-crypt package at ftp://ftp.gwdg.de/pub/linux/glibc/2.0.7pre6/. This law only affects people who don't live in the US. It's not prohibited to import DES software, so if you live in the US you can import it from that German site.
configure --with-gnu-binutils --enable-shared
--enable-add-ons=linuxthreads,crypt
configparms
containing the following:
# Begin configparms prefix=/usr slibdir=/lib sysconfdir=/etc localtime=localtime # End configparms
You have to select the current timezone that you are in. What you need
to enter here must be a file relative to the /usr/share/zoneinfo directory.
You can determine what your timezone file is, by running ls -l /etc/localtime
.
The output of this command will tell you to what file this symlink is pointing.
If your timezone file is /usr/share/zoneinfo/EST5EDT, you enter 'localtime=EST5EDT'
in the configparms file. If your timezone file is /usr/share/zoneinfo/Canada/Eastern
you enter 'localtime=Canada/Eastern' in the configparms file.
make; make install_root=$LFS install
This HOWTO used to install the C++ library from sources, but that has been changed and is an exception. The C++ library is installed from pre-compiled binaries. The reason is that I have not been able to find the sources for the C++ library version that I prefer to use. So until then we'll use pre-compiled binaries. My preference are Debian packages.
ar x libstdc++2.9_2.91.66-0slink2.deb
tar xvfz data.tar.gz
cp -av usr $LFS
usr data.tar.gz control.tar.gz
debian-binary
ar x libstdc++2.9-dev_2.91.66-0slink2.deb
tar xvfz data.tar.gz
cp -av usr $LFS
usr data.tar.gz control.tar.gz
debian-binary