Ignore:
Timestamp:
01/27/2003 10:10:07 PM (21 years ago)
Author:
Gerard Beekmans <gerard@…>
Branches:
10.0, 10.0-rc1, 10.1, 10.1-rc1, 11.0, 11.0-rc1, 11.0-rc2, 11.0-rc3, 11.1, 11.1-rc1, 11.2, 11.2-rc1, 11.3, 11.3-rc1, 12.0, 12.0-rc1, 12.1, 12.1-rc1, 6.0, 6.1, 6.1.1, 6.3, 6.4, 6.5, 6.6, 6.7, 6.8, 7.0, 7.1, 7.2, 7.3, 7.4, 7.5, 7.5-systemd, 7.6, 7.6-systemd, 7.7, 7.7-systemd, 7.8, 7.8-systemd, 7.9, 7.9-systemd, 8.0, 8.1, 8.2, 8.3, 8.4, 9.0, 9.1, arm, bdubbs/gcc13, ml-11.0, multilib, renodr/libudev-from-systemd, s6-init, trunk, v4_1, v5_0, v5_1, v5_1_1, xry111/arm64, xry111/arm64-12.0, xry111/clfs-ng, xry111/lfs-next, xry111/loongarch, xry111/loongarch-12.0, xry111/loongarch-12.1, xry111/mips64el, xry111/pip3, xry111/rust-wip-20221008, xry111/update-glibc
Children:
4f8a3af9
Parents:
8f8e328c
Message:

QA Part #1

git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@2403 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689

File:
1 edited

Legend:

Unmodified
Added
Removed
  • chapter06/glibc-inst.xml

    r8f8e328c r7bfad05  
    1313is best left alone. Therefore, if you have defined any environment variables
    1414that override default optimizations, such as CFLAGS and CXXFLAGS, we
    15 recommend unsetting or modifying them when building Glibc. You have
    16 been warned.</para>
     15recommend unsetting or modifying them when building Glibc.</para>
    1716
    1817<para>Basically, compiling Glibc in any other way than the book suggests
    19 is putting your system at very high risk.</para>
     18is putting your system at a very high risk.</para>
    2019
    2120<para>We'll start by applying a patch to Glibc that fixes the following:</para>
     
    2625<filename>malloc/Makefile</filename> file. This is done because Glibc
    2726can't autodetect the location of perl because the Perl package hasn't been
    28 installed yet.</para></listitem>
     27installed yet. And if Glibc thinks Perl isn't installed, the
     28<userinput>mtrace</userinput> perl program won't be installed
     29either.</para></listitem>
    2930
    3031<listitem><para>It replaces all occurrences of <emphasis>root</emphasis>
     
    4344to crash that were linked against Glibc-2.2 or older libraries. Even though
    4445static binaries have all the necessary parts of Glibc built-in, they still
    45 rely on one external library: Glibc's NSS libraries. These libraries, among
    46 other things, tell programs where the system's password database is
     46rely on one external library set: Glibc's NSS libraries. These libraries,
     47among other things, tell programs where the system's password database is
    4748(/etc/password, or NIS, or whatever other scheme has been
    4849configured).</para>
     
    5152code is incompatible with the old one. So when Glibc is installed, it will
    5253install its new NSS libraries and static programs will load these new NSS
    53 libraries and start to abort with <emphasis>segmentation faults</emphasis>.
    54 This patch undoes a few of the changes to overcome the problem.</para>
     54libraries and start to abort with <emphasis>segmentation fault</emphasis>
     55error. This patch undoes a few of the changes to overcome the problem.</para>
    5556
    56 <para>So, if you started chapter 5 with a host system that uses Glibc-2.2.x
     57<para>If you started chapter 5 with a host system that uses Glibc-2.2.x
    5758or older, you must apply the following patch. We will install Glibc again at
    5859the end of this chapter to remove this patch so you'll have a pristine Glibc
     
    6263
    6364<para>Glibc will check for the <filename>/etc/ld.so.conf</filename> file
    64 and abort with an error if the file is missing, so we must create it.</para>
     65and abort with an error if the file is missing, so we must create it:</para>
    6566
    6667<para><screen><userinput>touch /etc/ld.so.conf</userinput></screen></para>
    6768
    6869<para>It is recommended by the Glibc installation documentation to build
    69 Glibc outside of the source directory in a dedicated directory.</para>
     70Glibc outside of the source directory in a dedicated directory:</para>
    7071
    7172<para><screen><userinput>mkdir ../glibc-build &amp;&amp;
    7273cd ../glibc-build</userinput></screen></para>
    7374
    74 <para>Next, prepare Glibc to be compiled.</para>
     75<para>Next, prepare Glibc to be compiled:</para>
    7576
    7677<para><screen><userinput>../glibc-&glibc-version;/configure --prefix=/usr \
    7778&nbsp;&nbsp;&nbsp;&nbsp;--disable-profile --enable-add-ons \
    7879&nbsp;&nbsp;&nbsp;&nbsp;--libexecdir=/usr/bin</userinput></screen></para>
     80
     81<para>The meaning of the configure options are:</para>
     82
     83<itemizedlist>
     84<listitem><para><userinput>--disable-profile:</userinput> This disables the
     85building of libraries with profiling information. This command may be
     86omitted if you plan to do profiling.</para></listitem>
     87
     88<listitem><para><userinput>--enable-add-ons:</userinput> This enables the
     89add-on that we install with Glibc, linuxthreads</para></listitem>
     90
     91<listitem><para><userinput>--libexecdir=/usr/bin:</userinput> This will
     92cause the pt_chown program to be installed in the /usr/bin
     93directory.</para></listitem>
     94</itemizedlist>
    7995
    8096<para>During this stage you will see the following warning:</para>
     
    94110would require you to re-generate the binary files.</para>
    95111
    96 <para>The meaning of the configure options are:</para>
    97 
    98 <itemizedlist>
    99 <listitem><para><userinput>--disable-profile:</userinput> This disables the
    100 building of libraries with profiling information. This command may be
    101 omitted if you plan to do profiling.</para></listitem>
    102 
    103 <listitem><para><userinput>--enable-add-ons:</userinput> This enables the
    104 add-on that we install with Glibc, linuxthreads</para></listitem>
    105 
    106 <listitem><para><userinput>--libexecdir=/usr/bin:</userinput> This will
    107 cause the pt_chown program to be installed in the /usr/bin
    108 directory.</para></listitem>
    109 </itemizedlist>
    110 
    111112<para>Because Glibc hasn't been installed yet, one of the tests that was
    112113run by the configure script failed. This test is supposed to test gcc to
    113114determine whether or not a cross-compiler is installed. However, Glibc
    114115needs to be installed already to run this test. Since the test failed, the
    115 configure script automatically assumed we do have a cross-compiler. So,
    116 we have to override that assumption by explicitly telling Glibc we're not
    117 cross-compiling.</para>
     116configure script automatically assumed we do have a cross-compiler. We have
     117to override that assumption by explicitly telling Glibc we're not
     118cross-compiling. Not doing this has a couple of unintended side effects,
     119such as the timezone files not being installed.</para>
    118120
    119121<para><screen><userinput>echo "cross-compiling = no" &gt; configparms</userinput></screen></para>
    120122
    121 <para>We'll continue with compiling and installing Glibc. The Linuxthreads man
     123<para>Continue with compiling the package:</para>
     124
     125<para><screen><userinput>make</userinput></screen></para>
     126
     127<para>We'll continue with installing the package. The Linuxthreads man
    122128pages are not going to be installed at this point because it requires a
    123129working Perl installation. We'll install Perl later on in this chapter,
     
    125131time at the end of this chapter.</para>
    126132
    127 <para><screen><userinput>make &amp;&amp;
    128 make install</userinput></screen></para>
     133<para><screen><userinput>make install</userinput></screen></para>
    129134
    130135<para>Locales aren't installed when you ran
    131136<userinput>make install</userinput>, so we have to do that ourselves now.
    132137Locales are used by Glibc to make your Linux system talk in a different
    133 language.</para>
     138language:</para>
    134139
    135140<para><screen><userinput>make localedata/install-locales</userinput></screen></para>
     
    143148<para>To finish off the installation we'll reload Bash so it uses the
    144149libnss files. This will also get rid of the
    145 <emphasis>I have no name!</emphasis> message in the command prompt.</para>
     150<emphasis>I have no name!</emphasis> message in the command prompt:</para>
    146151
    147152<para><screen><userinput>exec /static/bin/bash --login</userinput></screen></para>
Note: See TracChangeset for help on using the changeset viewer.