cvs commit: LFS/latex/chapter06 glibc.tex

gerard at linuxfromscratch.org gerard at linuxfromscratch.org
Thu Feb 20 06:22:59 PST 2003


gerard      03/02/20 09:22:59

  Modified:    latex/chapter06 glibc.tex
  Log:
  applied a patch by Alex fixing sentences and grammar
  
  Revision  Changes    Path
  1.11      +61 -67    LFS/latex/chapter06/glibc.tex
  
  Index: glibc.tex
  ===================================================================
  RCS file: /home/cvsroot/LFS/latex/chapter06/glibc.tex,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- glibc.tex	19 Feb 2003 17:12:38 -0000	1.10
  +++ glibc.tex	20 Feb 2003 14:22:59 -0000	1.11
  @@ -42,37 +42,36 @@
   
   \subsection{Glibc installation}
   
  -Before starting to install glibc, you must cd into the
  +Before starting to install glibc, you must \command{cd} into the
   \filename|glibc-2.3.1| directory and unpack \filename|glibc-linuxthreads|
  -inside the \filename|glibc-2.3.1| directory, not in \filename|/usr/src| as
  +in that directory, not in \filename|/usr/src| as
   you normally would do.
   
   This package is known to behave badly when you have changed its default
   optimization flags (including the -march and -mcpu options).  Therefore, if
   you have defined any environment variables that override default
   optimizations, such as \var{CFLAGS} and \var{CXXFLAGS}, we recommend
  -unsetting or modifying them when building Glibc.
  +unsetting them when building Glibc.
   
   \noindent Basically, compiling Glibc in any other way than the book suggests is
   putting your system at a very high risk.
   
  -\bigskip \noindent We'll start by applying a patch to Glibc that fixes the
  -following:
  +\bigskip \noindent We'll start by applying a patch that does the following:
   
   \begin{itemize}
   \item It converts all occurrences of \emph{\$(PERL)} to
   \filename|/usr/bin/perl| in the\\
   \filename|malloc/Makefile| file. This is done because Glibc can't autodetect
  -the location of perl because the Perl package hasn't been
  +the location of \filename|perl| because the Perl package hasn't been
   installed yet. And if Glibc thinks Perl isn't installed, the
  -mtrace perl program won't be installed either.
  +\filename|mtrace| perl program won't be installed either.
   
   \item It replaces all occurrences of \username{root} with \username{0} in
   the \filename|login/Makefile|
   file. This is done because Glibc itself isn't installed yet and
   therefore username to userid resolving isn't working yet, so a
  -\command{chown root $<$file$>$} will fail, however it'll work fine if you use the
  -numeric IDs (such as \command{chown 0 $<$file$>$}).
  +\command{chown root $<$file$>$} will fail. Using numeric IDs (as in
  +\command{chown 0 $<$file$>$}) works fine.
   \end{itemize}
   
   \command{patch -Np1 -i ../glibc-2.3.1-root-perl.patch}
  @@ -82,14 +81,14 @@
   libraries. Even though static binaries have all the necessary parts of
   Glibc built-in, they still rely on one external library set: Glibc's NSS
   libraries.  These libraries, among other things, tell programs where the
  -system's password database is (\filename|/etc/password|, or NIS, or
  +system's password database is (in \filename|/etc/password|, NIS, or
   whatever other scheme has been configured).
   
   Glibc has undergone some changes since version 2.2.x and the new NSS
  -code is incompatible with the old one. So when Glibc is installed, it
  -will install its new NSS libraries and static programs will load these
  -new NSS libraries and start to abort with segmentation fault error.
  -This patch undoes a few of the changes to overcome the problem.
  +code that comes with it is incompatible with the old one. When Glibc is
  +installed, static programs will load these new NSS Libraries and will
  +abort with \emph{segmentation fault} errors. This patch undoes some of the
  +changes to overcome the problem.
   
   If you started chapter 5 with a host system that uses Glibc-2.2.x or older,
   you must apply the following patch. We will install Glibc again at the end
  @@ -103,9 +102,8 @@
   
   \bigskip \command{touch /etc/ld.so.conf}
   
  -\bigskip \noindent It is recommended by the Glibc installation
  -documentation to build Glibc outside of the source directory in a dedicated
  -directory:
  +\bn The documentation that comes with Glibc recommends to build the package
  +not in the source directory but in a separate, dedicated directory:
   
   \bigskip \command{mkdir ../glibc-build \&\&\\
   \indent cd ../glibc-build}
  @@ -119,19 +117,20 @@
   \bn The meaning of the configure options are:
   
   \begin{itemize}
  -\item \command{-{}-disable-profile}: This disables the building of libraries
  -with profiling information. This command may be omitted if you plan to do
  +\item \command{-{}-disable-profile}: This disables the building of the
  +libraries with profiling information. Omit this option if you plan to do
   profiling.
   
   \index{-{}-disable-profile}
   
  -\item \command{-{}-enable-add-ons}: This enables the add-on that we install
  -with Glibc, linuxthreads
  +\item \command{-{}-enable-add-ons}: This enables any add-on that we install
  +with Glibc, in our case the Glibc-linuxthreads package.
   
   \index{-{}-enable-add-ons}
   
  -\item \command{-{}-libexecdir=/usr/bin}: This will cause the pt\_chown
  -program to be installed in the \filename|/usr/bin| directory.
  +\item \command{-{}-libexecdir=/usr/bin}: This will cause the
  +\filename|pt\_chown| program to be installed in the \filename|/usr/bin|
  +directory.
   \end{itemize}
   
   \noindent During this stage you will see the following warning:
  @@ -143,23 +142,23 @@
   *** Check the INSTALL file for required versions.
   \end{BVerbatim}
   
  -\bigskip \noindent The missing \command{msgfmt} (from the gettext package
  -which we will install later in this chapter) won't cause any problems.
  -\command{msgfmt} is used to generate the binary translation files that are
  -used to make your system talk in a different language. Because these
  -translation files have already been generated for you, there is no need for
  -msgfmt.  You'd only need \command{msgfmt} if you change the translation
  -source files (the \filename|*.po| files in the \filename|po| subdirectory)
  -which would require you to re-generate the binary files.
  +\bigskip \noindent The missing \command{msgfmt} (from the Gettext package,
  +which we'll install later) won't cause any problems.  The \command{msgfmt}
  +program is used to generate the binary translation files that are used to
  +make your system talk in a different language. Because these translation
  +files have already been generated for you, there is no need for
  +\filename|msgfmt|. You'd only need this program if you change the
  +translation source files (the \filename|*.po| files in the \filename|po|
  +subdirectory), which would require you to re-generate the binary files.
   
   \bigskip \noindent Because Glibc hasn't been installed yet, one of the
  -tests that was run by the \command{configure} script failed. This test is
  -supposed to test \command{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. We have to override that assumption by explicitly
  -telling Glibc we're not cross-compiling. Not doing this has a couple of
  -unintended side effects, such as the timezone files not being installed.
  +tests that was run by the \command{configure} script has failed. This test
  +is supposed to test \command{gcc} to determine whether or not a
  +cross-compiler is installed. However, Glibc needs to be already installed
  +to run this test. Since the test failed, the configure script assumes we
  +have a cross-compiler. We have to override that assumption by explicitly
  +telling Glibc we're not cross-compiling. Not doing this would have a couple
  +of unintended side effects, such as the timezone files not being installed.
   
   \bigskip \command{echo "cross-compiling = no" $>$ configparms}
   
  @@ -177,33 +176,34 @@
   
   \bigskip \command{make install}
   
  -\bigskip \noindent Locales aren't installed when you ran make install, so
  -we have to do that ourselves now. Locales are used by Glibc to make your
  -Linux system talk in a different language:
  +\bn The locales (used by Glibc to make your Linux system talk in a
  +different language) weren't installed when you ran the previous command, so
  +we have to do that ourselves now:
  +
   
   \bigskip \command{make localedata/install-locales}
   
  -\bigskip \noindent An alternative to running \command{make
  -localedata/install-locales} is to only install those locales which you need
  -or want. This can be achieved using the \command{localedef} command.
  -Information on this can be found in the \filename|INSTALL| file in the
  -\filename|glibc-2.3.1| tree.
  +\bigskip \noindent An alternative to running the previous command is to
  +install only those locales which you need or want. This can be achieved
  +by using the \command{localedef} command. Information on this can be found
  +in the \filename|INSTALL| file located in the \filename|glibc-2.3.1|
  +directory.
   
   \index{locales}
   
   \bigskip \noindent To finish off the installation we'll reload Bash so it
  -uses the libnss files. This will also get rid of the ``I have no name!''
  -message in the command prompt:
  +will use the new \filename|libnss_*| files. This will also get rid of the
  +``I have no name!'' message in the command prompt:
   
   \bigskip \command{exec /static/bin/bash -{}-login}
   
   
   \subsection{Configuring Glibc}
   
  -We need to create the \filename|/etc/nsswitch.conf| file. Although glibc
  -should provide defaults when this file is missing or corrupt, its defaults
  -don't work well with networking. That is dealt with in a later chapter.
  -Also, our timezone needs to be set up.
  +We need to create the \filename|/etc/nsswitch.conf| file, because, although
  +Glibc provides defaults when this file is missing or orrupt, the Glibc
  +defaults don't work well with networking. Also, our timezone eeds to be set
  +up.
   
   
   \noindent Create a new file \filename|/etc/nsswitch.conf| by running the
  @@ -228,25 +228,19 @@
   \index{nsswitch.conf}
   \index{/etc/nsswitch.conf}
   
  -\bigskip \noindent The tzselect script has to be run and the questions
  -regarding your timezone have to be answered. When you're done, the script
  -will give the location of the needed timezone file.
  -
  -\bigskip \noindent Create the \filename|/etc/localtime| symlink by running:
  -
  -\bigskip
  -\command{ln -sf ../usr/share/zoneinfo/<tzselect's output> /etc/localtime}
  +To find out what timezone you're in, run the following script:
   
  -\bigskip \noindent tzselect's output can be something like \emph{EST5EDT}
  -or \emph{Canada/Eastern}.
  +\bc{tzselect}
   
  -\bigskip \noindent The symlink you'd create with that information would be:
  -
  -\bigskip \command{ln -sf ../usr/share/zoneinfo/EST5EDT /etc/localtime}
  -
  -\bigskip \noindent Or:
  +\bn When you've answered a few questions about your location, the script will
  +output the name of your timezone, something like \emph{EST5EDT} or
  +\emph{Canada/Eastern}. Then create the \filename|/etc/localtime| symlink by
  +running:
   
   \bigskip \command{ln -sf ../usr/share/zoneinfo/Canada/Eastern /etc/localtime}
  +
  +Of course, instead of \emph{Canada/Eastern}, fill in the name of the
  +timezone that the \command{tzselect} script gave you.
   
   \index{localtime}
   \index{/etc/localtime}
  
  
  
-- 
Unsubscribe: send email to listar at linuxfromscratch.org
and put 'unsubscribe lfs-book' in the subject header of the message



More information about the lfs-book mailing list