cvs commit: LFS/BOOK/chapter06 glibc-inst.xml glibc.xml

gerard at gerard at
Wed Jan 1 06:14:38 PST 2003

gerard      03/01/01 09:14:38

  Modified:    BOOK     index.xml
               BOOK/bookinfo copyright.xml
               BOOK/chapter06 glibc-inst.xml glibc.xml
  new copyright year, glibc install change beta
  Revision  Changes    Path
  1.528     +3 -2      LFS/BOOK/index.xml
  Index: index.xml
  RCS file: /home/cvsroot/LFS/BOOK/index.xml,v
  retrieving revision 1.527
  retrieving revision 1.528
  diff -u -r1.527 -r1.528
  --- index.xml	31 Dec 2002 16:38:24 -0000	1.527
  +++ index.xml	1 Jan 2003 14:14:38 -0000	1.528
  @@ -4,8 +4,8 @@
   <!ENTITY book SYSTEM "book/book.xml">
  -<!ENTITY version "20021231">
  -<!ENTITY releasedate "December 31st, 2002">
  +<!ENTITY version "20030101">
  +<!ENTITY releasedate "January 1st, 2003">
   <!ENTITY ftp-root "">
   <!ENTITY http-root "">
  @@ -163,3 +163,4 @@
  1.4       +1 -1      LFS/BOOK/bookinfo/copyright.xml
  Index: copyright.xml
  RCS file: /home/cvsroot/LFS/BOOK/bookinfo/copyright.xml,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- copyright.xml	12 Feb 2002 01:16:27 -0000	1.3
  +++ copyright.xml	1 Jan 2003 14:14:38 -0000	1.4
  @@ -1,6 +1,6 @@
   <copyright id="copyright">
  -	<year>1999-2002</year>
  +	<year>1999-2003</year>
   	<holder>Gerard Beekmans</holder>
  1.73      +99 -29    LFS/BOOK/chapter06/glibc-inst.xml
  Index: glibc-inst.xml
  RCS file: /home/cvsroot/LFS/BOOK/chapter06/glibc-inst.xml,v
  retrieving revision 1.72
  retrieving revision 1.73
  diff -u -r1.72 -r1.73
  --- glibc-inst.xml	31 Dec 2002 16:38:24 -0000	1.72
  +++ glibc-inst.xml	1 Jan 2003 14:14:38 -0000	1.73
  @@ -1,9 +1,6 @@
   <title>Installation of Glibc</title>
  -<para>This package requires its patch to be applied before you can
  -install it.</para>
   <para>Before starting to install glibc, you must cd into the
   glibc-&glibc-version; directory and unpack glibc-linuxthreads inside
   the glibc-&glibc-version; directory, not in /usr/src as you normally
  @@ -19,33 +16,54 @@
   <para>Basically, compiling Glibc in any other way than the book suggests
   is putting your system at very high risk.</para>
  -<para>Install Glibc by running the following commands:</para>
  -<para><screen><userinput>patch -Np1 -i ../glibc-&glibc-patch-version;.patch &&
  -touch /etc/ &&
  -mkdir ../glibc-build &&
  -cd ../glibc-build &&
  -../glibc-&glibc-version;/configure --prefix=/usr --disable-profile \
  -    --enable-add-ons --libexecdir=/usr/bin &&
  -echo "cross-compiling = no" > configparms &&
  -make &&
  -make install &&
  -make localedata/install-locales &&
  -exec /static/bin/bash --login</userinput></screen></para>
  +<para>We'll start by applying a patch to Glibc that fixes a few
  -<para>An alternative to running <userinput>make
  -localedata/install-locales</userinput> is to only install those locales
  -which you need or want. This can be achieved using the localedef
  -command. Information on this can be found in the INSTALL
  -file in the glibc-&glibc-version; tree. One thing to note is that the
  -<userinput>localedef</userinput> program assumes that the <filename
  -class="directory">/usr/lib/locale</filename> directory exists, so you need
  -to create it first.</para>
  -<para>The Linux Threads man pages are not going to be installed at this
  -point because it requires a working Perl installation. We'll install Perl
  -later on in this chapter, and the man pages will be installed when Glibc is
  -installed for the second time at the end of this chapter.</para>
  +<listitem><para>It converts all occurrences of <emphasis>$(PERL)</emphasis>
  +to <emphasis>/usr/bin/perl</emphasis> in the
  +<filename>malloc/Makefile</filename> file. This is done because Glibc
  +can't autodetect the location of perl because the Perl package hasn't been
  +installed yet.</para></listitem>
  +<listitem><para>It replaces all occurrences of <emphasis>root</emphasis>
  +with <emphasis>0</emphasis> in the <filename>login/Makefile</filename>
  +file. This is done because Glibc itself isn't installed yet and therefore
  +username to userid resolving isn't working yet, so a
  +<userinput>chown root file</userinput> will fail, however it'll work fine
  +if you use the numeric IDs (such as <userinput>chown 0
  +<listitem><para>Lastly, the patch also fixes a problem that causes
  +statically linked binaries to crash that were linked against Glibc-2.2
  +libraries. This patch is only needed temporarily because we have static
  +programs in <filename class="directory">/static/bin</filename> that might
  +be linked against an older Glibc version (the one from the host
  +distribution). We will install Glibc again at the end of this chapter to
  +remove this patch so you'll have a pristine Glibc as the developers
  +intended it.</para></listitem>
  +<para><screen><userinput>patch -Np1 -i ../glibc-&glibc-patch-version;.patch</userinput></screen></para>
  +<para>Glibc will check for the <filename>/etc/</filename> file
  +and abort with an error if the file is missing, so we create it.</para>
  +<para><screen><userinput>touch /etc/</userinput></screen></para>
  +<para>It is recommended by the Glibc installation documentation to build
  +Glibc outside of the source directory in a dedicated directory. Let's
  +create such a directory and make it our CWD (Current Working
  +<para><screen><userinput>mkdir ../glibc-build &&
  +cd ../glibc-build &&</userinput></screen></para>
  +<para>Next, configure Glibc.</para>
  +<para><screen><userinput>../glibc-&glibc-version;/configure --prefix=/usr \
  +    --disable-profile --enable-add-ons \
  +    --libexecdir=/usr/bin</userinput></screen></para>
   <para>During the configure stage you will see the following warning:</para>
  @@ -62,6 +80,58 @@
   you change the translation source files (the <filename>*.po</filename>
   files in the <filename class="directory">po</filename> subdirectory) which
   would require you to re-generate the binary files.</para>
  +<para>The meaning of the configure switches are:</para>
  +<listitem><para><userinput>--disable-profile:</userinput> This disables the
  +building of libraries with profiling information. This command may be
  +omitted if you plan to do profiling.</para></listitem>
  +<listitem><para><userinput>--enable-add-ons:</userinput> This enables the
  +add-on that we install with Glibc, linuxthreads</para></listitem>
  +<listitem><para><userinput>--libexecdir=/usr/bin:</userinput> This will
  +cause the pt_chown program to be installed in the /usr/bin
  +<para>Because Glibc hasn't been installed yet, one of the tests that was
  +run by the configure script failed. This test is supposed to test gcc to
  +determine whether or not a cross-compiler is installed. However, Glibc
  +needs to be installed already to run this test. Since the test failed, the
  +configure script automatically assumed we do have a cross-compiler. So,
  +we have to override that assumption by explicitly telling Glibc we're not
  +<para><screen><userinput>echo "cross-compiling = no" > configparms</userinput></screen></para>
  +<para>We'll continue with compiling and installing Glibc. The Linuxthreads man
  +pages are not going to be installed at this point because it requires a
  +working Perl installation. We'll install Perl later on in this chapter,
  +and the man pages will be installed when Glibc is installed for the second
  +time at the end of this chapter.</para>
  +<para><screen><userinput>make &&
  +make install</userinput></screen></para>
  +<para>Locales aren't installed by default so we install them now. Locales
  +are used by Glibc to make your Linux system talk in a different language
  +such as your native tongue.</para>
  +<para><screen><userinput>make localedata/install-locales</userinput></screen></para>
  +<para>An alternative to running <userinput>make
  +localedata/install-locales</userinput> is to only install those locales
  +which you need or want. This can be achieved using the localedef
  +command. Information on this can be found in the INSTALL
  +file in the glibc-&glibc-version; tree.</para>
  +<para>To finish off the installation we'll reload Bash so it uses the new
  +libnss files. This will get rid of the <emphasis>I have no name!</emphasis>
  +message in the command prompt.</para>
  +<para><screen><userinput>exec /static/bin/bash --login</userinput></screen></para>
  1.9       +0 -1      LFS/BOOK/chapter06/glibc.xml
  Index: glibc.xml
  RCS file: /home/cvsroot/LFS/BOOK/chapter06/glibc.xml,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- glibc.xml	14 Dec 2001 23:04:46 -0000	1.8
  +++ glibc.xml	1 Jan 2003 14:14:38 -0000	1.9
  @@ -6,7 +6,6 @@
   Estimated required disk space:  &glibc-compsize;</screen>
Unsubscribe: send email to listar at
and put 'unsubscribe lfs-book' in the subject header of the message

More information about the lfs-book mailing list