- Timestamp:
- 01/22/2006 01:14:30 PM (19 years ago)
- Children:
- e6ab4b5
- Parents:
- 3b45abb
- Location:
- chapter05
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
chapter05/sed.xml
r3b45abb rb4cd3c5 1 1 <?xml version="1.0" encoding="ISO-8859-1"?> 2 <!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ 2 <!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" 3 "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ 3 4 <!ENTITY % general-entities SYSTEM "../general.ent"> 4 5 %general-entities; 5 6 ]> 7 6 8 <sect1 id="ch-tools-sed" role="wrap"> 7 <title>Sed-&sed-version;</title> 8 <?dbhtml filename="sed.html"?> 9 <?dbhtml filename="sed.html"?> 9 10 10 <indexterm zone="ch-tools-sed"> 11 <primary sortas="a-Sed">Sed</primary> 12 <secondary>tools</secondary></indexterm> 11 <title>Sed-&sed-version;</title> 13 12 14 <sect2 role="package"><title/> 15 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/sed.xml" xpointer="xpointer(/sect1/sect2[1]/para[1])"/> 13 <indexterm zone="ch-tools-sed"> 14 <primary sortas="a-Sed">Sed</primary> 15 <secondary>tools</secondary> 16 </indexterm> 16 17 17 <segmentedlist> 18 <segtitle>&buildtime;</segtitle> 19 <segtitle>&diskspace;</segtitle> 20 <seglistitem><seg>0.2 SBU</seg><seg>8.4 MB</seg></seglistitem> 21 </segmentedlist> 18 <sect2 role="package"> 19 <title/> 22 20 23 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/sed.xml" xpointer="xpointer(/sect1/sect2[1]/segmentedlist[2])"/> 21 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" 22 href="../chapter06/sed.xml" 23 xpointer="xpointer(/sect1/sect2[1]/para[1])"/> 24 24 25 </sect2> 25 <segmentedlist> 26 <segtitle>&buildtime;</segtitle> 27 <segtitle>&diskspace;</segtitle> 26 28 27 <sect2 role="installation"> 28 <title>Installation of Sed</title> 29 <seglistitem> 30 <seg>0.2 SBU</seg> 31 <seg>8.4 MB</seg> 32 </seglistitem> 33 </segmentedlist> 29 34 30 <para>Prepare Sed for compilation:</para> 35 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" 36 href="../chapter06/sed.xml" 37 xpointer="xpointer(/sect1/sect2[1]/segmentedlist[2])"/> 38 39 </sect2> 40 41 <sect2 role="installation"> 42 <title>Installation of Sed</title> 43 44 <para>Prepare Sed for compilation:</para> 31 45 32 46 <screen><userinput>./configure --prefix=/tools</userinput></screen> 33 47 34 <para>Compile the package:</para>48 <para>Compile the package:</para> 35 49 36 50 <screen><userinput>make</userinput></screen> 37 51 38 <para>To test the results, issue: <userinput>make check</userinput>.</para> 52 <para>To test the results, issue: 53 <userinput>make check</userinput>.</para> 39 54 40 <para>Install the package:</para>55 <para>Install the package:</para> 41 56 42 57 <screen><userinput>make install</userinput></screen> 43 58 44 </sect2>59 </sect2> 45 60 46 <sect2 role="content"><title/> 47 <para>Details on this package are located in <xref 48 linkend="contents-sed" role="."/></para> 49 </sect2> 61 <sect2 role="content"> 62 <title/> 63 64 <para>Details on this package are located in 65 <xref linkend="contents-sed" role="."/></para> 66 67 </sect2> 50 68 51 69 </sect1> 52 -
chapter05/stripping.xml
r3b45abb rb4cd3c5 1 1 <?xml version="1.0" encoding="ISO-8859-1"?> 2 <!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ 2 <!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" 3 "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ 3 4 <!ENTITY % general-entities SYSTEM "../general.ent"> 4 5 %general-entities; 5 6 ]> 7 6 8 <sect1 id="ch-tools-stripping"> 7 <title>Stripping</title> 8 <?dbhtml filename="stripping.html"?> 9 <?dbhtml filename="stripping.html"?> 9 10 10 <para>The steps in this section are optional, but if the LFS partition 11 is rather small, it is beneficial to learn that unnecessary items can 12 be removed. The executables and libraries built so far contain about 13 130 MB of unneeded debugging symbols. Remove those symbols 14 with:</para> 11 <title>Stripping</title> 12 13 <para>The steps in this section are optional, but if the LFS partition is 14 rather small, it is beneficial to learn that unnecessary items can be removed. 15 The executables and libraries built so far contain about 130 MB of unneeded 16 debugging symbols. Remove those symbols with:</para> 15 17 16 18 <screen><userinput>strip --strip-debug /tools/lib/* 17 19 strip --strip-unneeded /tools/{,s}bin/*</userinput></screen> 18 20 19 <para>The last of the above commands will skip some twenty files,20 reporting that it does not recognize their file format. Most of these21 are scripts instead of binaries.</para>21 <para>The last of the above commands will skip some twenty files, 22 reporting that it does not recognize their file format. Most of these 23 are scripts instead of binaries.</para> 22 24 23 <para>Take care <emphasis>not</emphasis> to use24 <parameter>--strip-unneeded</parameter> on the libraries.The static25 ones would be destroyed and the toolchain packages would need to be26 built all over again.</para>25 <para>Take care <emphasis>not</emphasis> to use 26 <parameter>--strip-unneeded</parameter> on the libraries. The static 27 ones would be destroyed and the toolchain packages would need to be 28 built all over again.</para> 27 29 28 <para>To save another 30 MB, remove the documentation:</para>30 <para>To save another 30 MB, remove the documentation:</para> 29 31 30 32 <screen><userinput>rm -rf /tools/{info,man}</userinput></screen> 31 33 32 <para>There will now be at least 850 MB of free space on the LFS file33 system that can be used to build and install Glibc in the next phase.34 If you can build and install Glibc, you can build and install the rest35 too.</para>34 <para>There will now be at least 850 MB of free space on the LFS file 35 system that can be used to build and install Glibc in the next phase. 36 If you can build and install Glibc, you can build and install the rest 37 too.</para> 36 38 37 39 </sect1> 38 -
chapter05/tar.xml
r3b45abb rb4cd3c5 1 1 <?xml version="1.0" encoding="ISO-8859-1"?> 2 <!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ 2 <!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" 3 "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ 3 4 <!ENTITY % general-entities SYSTEM "../general.ent"> 4 5 %general-entities; 5 6 ]> 7 6 8 <sect1 id="ch-tools-tar" role="wrap"> 7 <title>Tar-&tar-version;</title> 8 <?dbhtml filename="tar.html"?> 9 <?dbhtml filename="tar.html"?> 9 10 10 <indexterm zone="ch-tools-tar"> 11 <primary sortas="a-Tar">Tar</primary> 12 <secondary>tools</secondary></indexterm> 11 <title>Tar-&tar-version;</title> 13 12 14 <sect2 role="package"><title/> 15 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/tar.xml" xpointer="xpointer(/sect1/sect2[1]/para[1])"/> 13 <indexterm zone="ch-tools-tar"> 14 <primary sortas="a-Tar">Tar</primary> 15 <secondary>tools</secondary> 16 </indexterm> 16 17 17 <segmentedlist> 18 <segtitle>&buildtime;</segtitle> 19 <segtitle>&diskspace;</segtitle> 20 <seglistitem><seg>0.2 SBU</seg><seg>12.7 MB</seg></seglistitem> 21 </segmentedlist> 18 <sect2 role="package"> 19 <title/> 22 20 23 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/tar.xml" xpointer="xpointer(/sect1/sect2[1]/segmentedlist[2])"/> 21 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" 22 href="../chapter06/tar.xml" 23 xpointer="xpointer(/sect1/sect2[1]/para[1])"/> 24 24 25 </sect2> 25 <segmentedlist> 26 <segtitle>&buildtime;</segtitle> 27 <segtitle>&diskspace;</segtitle> 26 28 27 <sect2 role="installation"> 28 <title>Installation of Tar</title> 29 <seglistitem> 30 <seg>0.2 SBU</seg> 31 <seg>12.7 MB</seg> 32 </seglistitem> 33 </segmentedlist> 29 34 30 <para>If you wish to run the test suite, apply the following patch to fix 31 some issues with GCC-&gcc-version;:</para> 35 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" 36 href="../chapter06/tar.xml" 37 xpointer="xpointer(/sect1/sect2[1]/segmentedlist[2])"/> 38 39 </sect2> 40 41 <sect2 role="installation"> 42 <title>Installation of Tar</title> 43 44 <para>If you wish to run the test suite, apply the following patch to fix 45 some issues with GCC-&gcc-version;:</para> 32 46 33 47 <screen><userinput>patch -Np1 -i ../&tar-gcc4_fix-patch;</userinput></screen> 34 48 35 <para>Prepare Tar for compilation:</para>49 <para>Prepare Tar for compilation:</para> 36 50 37 51 <screen><userinput>./configure --prefix=/tools</userinput></screen> 38 52 39 <para>Compile the package:</para>53 <para>Compile the package:</para> 40 54 41 55 <screen><userinput>make</userinput></screen> 42 56 43 <para>To test the results, issue: <userinput>make check</userinput>.</para> 57 <para>To test the results, issue: 58 <userinput>make check</userinput>.</para> 44 59 45 <para>Install the package:</para>60 <para>Install the package:</para> 46 61 47 62 <screen><userinput>make install</userinput></screen> 48 63 49 </sect2>64 </sect2> 50 65 51 <sect2 role="content"><title/> 52 <para>Details on this package are located in <xref 53 linkend="contents-tar" role="."/></para> 54 </sect2> 66 <sect2 role="content"> 67 <title/> 68 69 <para>Details on this package are located in 70 <xref linkend="contents-tar" role="."/></para> 71 72 </sect2> 55 73 56 74 </sect1> 57 -
chapter05/tcl.xml
r3b45abb rb4cd3c5 1 1 <?xml version="1.0" encoding="ISO-8859-1"?> 2 <!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ 2 <!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" 3 "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ 3 4 <!ENTITY % general-entities SYSTEM "../general.ent"> 4 5 %general-entities; 5 6 ]> 7 6 8 <sect1 id="ch-tools-tcl" role="wrap"> 7 <title>Tcl-&tcl-version;</title> 8 <?dbhtml filename="tcl.html"?> 9 <?dbhtml filename="tcl.html"?> 9 10 10 <indexterm zone="ch-tools-tcl"><primary sortas="a-Tcl">Tcl</primary></indexterm>11 <title>Tcl-&tcl-version;</title> 11 12 12 <sect2 role="package"><title/> 13 <para>The Tcl package contains the Tool Command Language.</para> 13 <indexterm zone="ch-tools-tcl"> 14 <primary sortas="a-Tcl">Tcl</primary> 15 </indexterm> 14 16 15 <segmentedlist> 16 <segtitle>&buildtime;</segtitle> 17 <segtitle>&diskspace;</segtitle> 18 <seglistitem><seg>0.9 SBU</seg><seg>23.3 MB</seg></seglistitem> 19 </segmentedlist> 17 <sect2 role="package"> 18 <title/> 20 19 21 <segmentedlist> 22 <segtitle>&dependencies;</segtitle> 23 <seglistitem><seg>Bash, Binutils, Coreutils, Diffutils, 24 GCC, Glibc, Grep, Make, and Sed</seg></seglistitem> 25 </segmentedlist> 20 <para>The Tcl package contains the Tool Command Language.</para> 26 21 27 </sect2> 22 <segmentedlist> 23 <segtitle>&buildtime;</segtitle> 24 <segtitle>&diskspace;</segtitle> 28 25 29 <sect2 role="installation"> 30 <title>Installation of Tcl</title> 26 <seglistitem> 27 <seg>0.9 SBU</seg> 28 <seg>23.3 MB</seg> 29 </seglistitem> 30 </segmentedlist> 31 31 32 <para>This package and the next two (Expect and DejaGNU) are 33 installed to support running the test suites for GCC and Binutils. 34 Installing three packages for testing purposes may seem excessive, but 35 it is very reassuring, if not essential, to know that the most 36 important tools are working properly. Even if the test suites are not 37 run in this chapter (they are not mandatory), these packages 38 are required to run the test suites in <xref 39 linkend="chapter-building-system"/>.</para> 32 <segmentedlist> 33 <segtitle>&dependencies;</segtitle> 40 34 41 <para>Tcl's configure script has a syntax error:</para> 35 <seglistitem> 36 <seg>Bash, Binutils, Coreutils, Diffutils, GCC, Glibc, Grep, 37 Make, and Sed</seg> 38 </seglistitem> 39 </segmentedlist> 40 41 </sect2> 42 43 <sect2 role="installation"> 44 <title>Installation of Tcl</title> 45 46 <para>This package and the next two (Expect and DejaGNU) are installed 47 to support running the test suites for GCC and Binutils. Installing 48 three packages for testing purposes may seem excessive, but it is very 49 reassuring, if not essential, to know that the most important tools are 50 working properly. Even if the test suites are not run in this chapter 51 (they are not mandatory), these packages are required to run the test 52 suites in <xref linkend="chapter-building-system"/>.</para> 53 54 <para>Tcl's configure script has a syntax error:</para> 55 42 56 <screen><userinput>cd unix 43 57 cp -v configure{,.orig} 44 58 sed "s/relid'/relid/" configure.orig > configure</userinput></screen> 45 59 46 <para>Prepare Tcl for compilation:</para>60 <para>Prepare Tcl for compilation:</para> 47 61 48 62 <screen><userinput>./configure --prefix=/tools</userinput></screen> 49 63 50 <para>Build the package:</para>64 <para>Build the package:</para> 51 65 52 66 <screen><userinput>make</userinput></screen> 53 67 54 <para>To test the results, issue: <userinput>TZ=UTC make test</userinput>. 55 The Tcl test suite is known to experience failures 56 under certain host conditions that are not fully understood. 57 Therefore, test suite failures here are not surprising, and are not 58 considered critical. The <parameter>TZ=UTC</parameter> parameter sets 59 the time zone to Coordinated Universal Time (UTC), also known as 60 Greenwich Mean Time (GMT), but only for the duration of the test suite 61 run. This ensures that the clock tests are exercised correctly. 62 Details on the <envar>TZ</envar> environment variable are provided in 63 <xref linkend="chapter-bootscripts"/>.</para> 68 <para>To test the results, issue: <userinput>TZ=UTC make test</userinput>. 69 The Tcl test suite is known to experience failures under certain host 70 conditions that are not fully understood. Therefore, test suite failures 71 here are not surprising, and are not considered critical. The 72 <parameter>TZ=UTC</parameter> parameter sets the time zone to Coordinated 73 Universal Time (UTC), also known as Greenwich Mean Time (GMT), but only 74 for the duration of the test suite run. This ensures that the clock tests 75 are exercised correctly. Details on the <envar>TZ</envar> environment 76 variable are provided in <xref linkend="chapter-bootscripts"/>.</para> 64 77 65 <para>Install the package:</para>78 <para>Install the package:</para> 66 79 67 80 <screen><userinput>make install</userinput></screen> 68 81 69 <para>Install Tcl's headers. The next package, Expect, requires them to build.</para> 82 <para>Install Tcl's headers. The next package, Expect, requires them 83 to build.</para> 70 84 71 85 <screen><userinput>make install-private-headers</userinput></screen> 72 86 73 <para>Now make a necessary symbolic link:</para>87 <para>Now make a necessary symbolic link:</para> 74 88 75 89 <screen><userinput>ln -sv tclsh8.4 /tools/bin/tclsh</userinput></screen> 76 90 77 </sect2>91 </sect2> 78 92 79 <sect2 id="contents-tcl" role="content"><title>Contents of Tcl</title> 93 <sect2 id="contents-tcl" role="content"> 94 <title>Contents of Tcl</title> 80 95 81 <segmentedlist> 82 <segtitle>Installed programs</segtitle> 83 <segtitle>Installed library</segtitle> 84 <seglistitem><seg>tclsh (link to tclsh8.4) and tclsh8.4</seg><seg>libtcl8.4.so</seg></seglistitem> 85 </segmentedlist> 96 <segmentedlist> 97 <segtitle>Installed programs</segtitle> 98 <segtitle>Installed library</segtitle> 86 99 87 <variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead> 88 <?dbfo list-presentation="list"?> 89 <?dbhtml list-presentation="table"?> 100 <seglistitem> 101 <seg>tclsh (link to tclsh8.4) and tclsh8.4</seg> 102 <seg>libtcl8.4.so</seg> 103 </seglistitem> 104 </segmentedlist> 90 105 91 <varlistentry id="tclsh8.4"> 92 <term><command>tclsh8.4</command></term> 93 <listitem> 94 <para>The Tcl command shell</para> 95 <indexterm zone="ch-tools-tcl tclsh8.4"><primary sortas="b-tclsh8.4">tclsh8.4</primary></indexterm> 96 </listitem> 97 </varlistentry> 106 <variablelist> 107 <bridgehead renderas="sect3">Short Descriptions</bridgehead> 108 <?dbfo list-presentation="list"?> 109 <?dbhtml list-presentation="table"?> 98 110 99 <varlistentry id="tclsh"> 100 <term><command>tclsh</command></term> 101 <listitem> 102 <para>A link to tclsh8.4</para> 103 <indexterm zone="ch-tools-tcl tclsh"><primary sortas="b-tclsh">tclsh</primary></indexterm> 104 </listitem> 105 </varlistentry> 111 <varlistentry id="tclsh8.4"> 112 <term><command>tclsh8.4</command></term> 113 <listitem> 114 <para>The Tcl command shell</para> 115 <indexterm zone="ch-tools-tcl tclsh8.4"> 116 <primary sortas="b-tclsh8.4">tclsh8.4</primary> 117 </indexterm> 118 </listitem> 119 </varlistentry> 106 120 107 <varlistentry id="libtcl8.4.so"> 108 <term><filename class="libraryfile">libtcl8.4.so</filename></term> 109 <listitem> 110 <para>The Tcl library</para> 111 <indexterm zone="ch-tools-tcl libtcl8.4.so"><primary sortas="c-libtcl8.4.so">libtcl8.4.so</primary></indexterm> 112 </listitem> 113 </varlistentry> 114 </variablelist> 121 <varlistentry id="tclsh"> 122 <term><command>tclsh</command></term> 123 <listitem> 124 <para>A link to tclsh8.4</para> 125 <indexterm zone="ch-tools-tcl tclsh"> 126 <primary sortas="b-tclsh">tclsh</primary> 127 </indexterm> 128 </listitem> 129 </varlistentry> 115 130 116 </sect2> 131 <varlistentry id="libtcl8.4.so"> 132 <term><filename class="libraryfile">libtcl8.4.so</filename></term> 133 <listitem> 134 <para>The Tcl library</para> 135 <indexterm zone="ch-tools-tcl libtcl8.4.so"> 136 <primary sortas="c-libtcl8.4.so">libtcl8.4.so</primary> 137 </indexterm> 138 </listitem> 139 </varlistentry> 140 141 </variablelist> 142 143 </sect2> 117 144 118 145 </sect1> 119 -
chapter05/texinfo.xml
r3b45abb rb4cd3c5 1 1 <?xml version="1.0" encoding="ISO-8859-1"?> 2 <!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ 2 <!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" 3 "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ 3 4 <!ENTITY % general-entities SYSTEM "../general.ent"> 4 5 %general-entities; 5 6 ]> 7 6 8 <sect1 id="ch-tools-texinfo" role="wrap"> 7 <title>Texinfo-&texinfo-version;</title> 8 <?dbhtml filename="texinfo.html"?> 9 <?dbhtml filename="texinfo.html"?> 9 10 10 <indexterm zone="ch-tools-texinfo"> 11 <primary sortas="a-Texinfo">Texinfo</primary> 12 <secondary>tools</secondary></indexterm> 11 <title>Texinfo-&texinfo-version;</title> 13 12 14 <sect2 role="package"><title/> 15 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/texinfo.xml" xpointer="xpointer(/sect1/sect2[1]/para[1])"/> 13 <indexterm zone="ch-tools-texinfo"> 14 <primary sortas="a-Texinfo">Texinfo</primary> 15 <secondary>tools</secondary> 16 </indexterm> 16 17 17 <segmentedlist> 18 <segtitle>&buildtime;</segtitle> 19 <segtitle>&diskspace;</segtitle> 20 <seglistitem><seg>0.2 SBU</seg><seg>14.7 MB</seg></seglistitem> 21 </segmentedlist> 18 <sect2 role="package"> 19 <title/> 22 20 23 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/texinfo.xml" xpointer="xpointer(/sect1/sect2[1]/segmentedlist[2])"/> 21 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" 22 href="../chapter06/texinfo.xml" 23 xpointer="xpointer(/sect1/sect2[1]/para[1])"/> 24 24 25 </sect2> 25 <segmentedlist> 26 <segtitle>&buildtime;</segtitle> 27 <segtitle>&diskspace;</segtitle> 26 28 27 <sect2 role="installation"> 28 <title>Installation of Texinfo</title> 29 <seglistitem> 30 <seg>0.2 SBU</seg> 31 <seg>14.7 MB</seg> 32 </seglistitem> 33 </segmentedlist> 29 34 30 <para>Prepare Texinfo for compilation:</para> 35 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" 36 href="../chapter06/texinfo.xml" 37 xpointer="xpointer(/sect1/sect2[1]/segmentedlist[2])"/> 38 39 </sect2> 40 41 <sect2 role="installation"> 42 <title>Installation of Texinfo</title> 43 44 <para>Prepare Texinfo for compilation:</para> 31 45 32 46 <screen><userinput>./configure --prefix=/tools</userinput></screen> 33 47 34 <para>Compile the package:</para>48 <para>Compile the package:</para> 35 49 36 50 <screen><userinput>make</userinput></screen> 37 51 38 <para>To test the results, issue: <userinput>make check</userinput>.</para> 52 <para>To test the results, issue: 53 <userinput>make check</userinput>.</para> 39 54 40 <para>Install the package:</para>55 <para>Install the package:</para> 41 56 42 57 <screen><userinput>make install</userinput></screen> 43 58 44 </sect2>59 </sect2> 45 60 46 <sect2 role="content"><title/> 47 <para>Details on this package are located in <xref 48 linkend="contents-texinfo" role="."/></para> 49 </sect2> 61 <sect2 role="content"> 62 <title/> 63 64 <para>Details on this package are located in 65 <xref linkend="contents-texinfo" role="."/></para> 66 67 </sect2> 50 68 51 69 </sect1> 52 -
chapter05/toolchaintechnotes.xml
r3b45abb rb4cd3c5 1 1 <?xml version="1.0" encoding="ISO-8859-1"?> 2 <!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ 2 <!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" 3 "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ 3 4 <!ENTITY % general-entities SYSTEM "../general.ent"> 4 5 %general-entities; 5 6 ]> 7 6 8 <sect1 id="ch-tools-toolchaintechnotes"> 7 <title>Toolchain Technical Notes</title> 8 <?dbhtml filename="toolchaintechnotes.html"?> 9 10 <para>This section explains some of the rationale and technical 11 details behind the overall build method. It is not essential to 12 immediately understand everything in this section. Most of this 13 information will be clearer after performing an actual build. This 14 section can be referred back to at any time during the process.</para> 15 16 <para>The overall goal of <xref linkend="chapter-temporary-tools"/> is to 17 provide a temporary environment that can be chrooted into and from which can be 18 produced a clean, trouble-free build of the target LFS system in <xref 19 linkend="chapter-building-system"/>. Along the way, we separate the new system 20 from the host system as much as possible, and in doing so, build a 21 self-contained and self-hosted toolchain. It should be noted that the build 22 process has been designed to minimize the risks for new readers and provide 23 maximum educational value at the same time.</para> 24 25 <important> 26 <para>Before continuing, be aware of the name of the working platform, 27 often referred to as the target triplet. Many times, the target 28 triplet will probably be <emphasis>i686-pc-linux-gnu</emphasis>. A 29 simple way to determine the name of the target triplet is to run the 30 <command>config.guess</command> script that comes with the source for 31 many packages. Unpack the Binutils sources and run the script: 32 <userinput>./config.guess</userinput> and note the output.</para> 33 34 <para>Also be aware of the name of the platform's dynamic linker, 35 often referred to as the dynamic loader (not to be confused with the 36 standard linker <command>ld</command> that is part of Binutils). The 37 dynamic linker provided by Glibc finds and loads the shared libraries 38 needed by a program, prepares the program to run, and then runs it. 39 The name of the dynamic linker will usually be 40 <filename class="libraryfile">ld-linux.so.2</filename>. On platforms that are less 41 prevalent, the name might be <filename class="libraryfile">ld.so.1</filename>, 42 and newer 64 bit platforms might be named something else entirely. The name of 43 the platform's dynamic linker can be determined by looking in the 44 <filename class="directory">/lib</filename> directory on the host 45 system. A sure-fire way to determine the name is to inspect a random 46 binary from the host system by running: <userinput>readelf -l <name 47 of binary> | grep interpreter</userinput> and noting the output. 48 The authoritative reference covering all platforms is in the 49 <filename>shlib-versions</filename> file in the root of the Glibc 50 source tree.</para> 51 </important> 52 53 <para>Some key technical points of how the <xref linkend="chapter-temporary-tools"/> build 54 method works:</para> 55 56 <itemizedlist> 57 <listitem><para>The process is similar in principle to 58 cross-compiling, whereby tools installed in the same prefix work in 59 cooperation, and thus utilize a little GNU 60 <quote>magic</quote></para></listitem> 61 62 <listitem><para>Careful manipulation of the standard linker's library 63 search path ensures programs are linked only against chosen 64 libraries</para></listitem> 65 66 <listitem><para>Careful manipulation of <command>gcc</command>'s 67 <filename>specs</filename> file tells the compiler which target dynamic 68 linker will be used</para></listitem> 69 </itemizedlist> 70 71 <para>Binutils is installed first because the 72 <command>configure</command> runs of both GCC and Glibc perform 73 various feature tests on the assembler and linker to determine which 74 software features to enable or disable. This is more important than 75 one might first realize. An incorrectly configured GCC or Glibc can 76 result in a subtly broken toolchain, where the impact of such breakage 77 might not show up until near the end of the build of an entire 78 distribution. A test suite failure will usually highlight this error 79 before too much additional work is performed.</para> 80 81 <para>Binutils installs its assembler and linker in two locations, 82 <filename class="directory">/tools/bin</filename> and <filename 83 class="directory">/tools/$TARGET_TRIPLET/bin</filename>. The tools in 84 one location are hard linked to the other. An important facet of the 85 linker is its library search order. Detailed information can be 86 obtained from <command>ld</command> by passing it the 87 <parameter>--verbose</parameter> flag. For example, an <userinput>ld 88 --verbose | grep SEARCH</userinput> will illustrate the current search 89 paths and their order. It shows which files are linked by 90 <command>ld</command> by compiling a dummy program and passing the 91 <parameter>--verbose</parameter> switch to the linker. For example, 92 <userinput>gcc dummy.c -Wl,--verbose 2>&1 | grep 93 succeeded</userinput> will show all the files successfully opened 94 during the linking.</para> 95 96 <para>The next package installed is GCC. An example of what can be 97 seen during its run of <command>configure</command> is:</para> 98 99 <screen><computeroutput>checking what assembler to use... 9 <?dbhtml filename="toolchaintechnotes.html"?> 10 11 <title>Toolchain Technical Notes</title> 12 13 <para>This section explains some of the rationale and technical details 14 behind the overall build method. It is not essential to immediately 15 understand everything in this section. Most of this information will be 16 clearer after performing an actual build. This section can be referred 17 back to at any time during the process.</para> 18 19 <para>The overall goal of <xref linkend="chapter-temporary-tools"/> is to 20 provide a temporary environment that can be chrooted into and from which can be 21 produced a clean, trouble-free build of the target LFS system in <xref 22 linkend="chapter-building-system"/>. Along the way, we separate the new system 23 from the host system as much as possible, and in doing so, build a 24 self-contained and self-hosted toolchain. It should be noted that the build 25 process has been designed to minimize the risks for new readers and provide 26 maximum educational value at the same time.</para> 27 28 <important> 29 <para>Before continuing, be aware of the name of the working platform, 30 often referred to as the target triplet. Many times, the target 31 triplet will probably be <emphasis>i686-pc-linux-gnu</emphasis>. A 32 simple way to determine the name of the target triplet is to run the 33 <command>config.guess</command> script that comes with the source for 34 many packages. Unpack the Binutils sources and run the script: 35 <userinput>./config.guess</userinput> and note the output.</para> 36 37 <para>Also be aware of the name of the platform's dynamic linker, often 38 referred to as the dynamic loader (not to be confused with the standard 39 linker <command>ld</command> that is part of Binutils). The dynamic linker 40 provided by Glibc finds and loads the shared libraries needed by a program, 41 prepares the program to run, and then runs it. The name of the dynamic 42 linker will usually be <filename class="libraryfile">ld-linux.so.2</filename>. 43 On platforms that are less prevalent, the name might be <filename 44 class="libraryfile">ld.so.1</filename>, and newer 64 bit platforms might 45 be named something else entirely. The name of the platform's dynamic linker 46 can be determined by looking in the <filename class="directory">/lib</filename> 47 directory on the host system. A sure-fire way to determine the name is to 48 inspect a random binary from the host system by running: 49 <userinput>readelf -l <name of binary> | grep interpreter</userinput> 50 and noting the output. The authoritative reference covering all platforms 51 is in the <filename>shlib-versions</filename> file in the root of the Glibc 52 source tree.</para> 53 </important> 54 55 <para>Some key technical points of how the <xref 56 linkend="chapter-temporary-tools"/> build method works:</para> 57 58 <itemizedlist> 59 <listitem> 60 <para>The process is similar in principle to cross-compiling, whereby 61 tools installed in the same prefix work in cooperation, and thus utilize 62 a little GNU <quote>magic</quote></para> 63 </listitem> 64 <listitem> 65 <para>Careful manipulation of the standard linker's library search path 66 ensures programs are linked only against chosen libraries</para> 67 </listitem> 68 <listitem> 69 <para>Careful manipulation of <command>gcc</command>'s 70 <filename>specs</filename> file tells the compiler which target dynamic 71 linker will be used</para> 72 </listitem> 73 </itemizedlist> 74 75 <para>Binutils is installed first because the <command>configure</command> 76 runs of both GCC and Glibc perform various feature tests on the assembler 77 and linker to determine which software features to enable or disable. This 78 is more important than one might first realize. An incorrectly configured 79 GCC or Glibc can result in a subtly broken toolchain, where the impact of 80 such breakage might not show up until near the end of the build of an 81 entire distribution. A test suite failure will usually highlight this error 82 before too much additional work is performed.</para> 83 84 <para>Binutils installs its assembler and linker in two locations, 85 <filename class="directory">/tools/bin</filename> and <filename 86 class="directory">/tools/$TARGET_TRIPLET/bin</filename>. The tools in one 87 location are hard linked to the other. An important facet of the linker is 88 its library search order. Detailed information can be obtained from 89 <command>ld</command> by passing it the <parameter>--verbose</parameter> 90 flag. For example, an <userinput>ld --verbose | grep SEARCH</userinput> 91 will illustrate the current search paths and their order. It shows which 92 files are linked by <command>ld</command> by compiling a dummy program and 93 passing the <parameter>--verbose</parameter> switch to the linker. For example, 94 <userinput>gcc dummy.c -Wl,--verbose 2>&1 | grep succeeded</userinput> 95 will show all the files successfully opened during the linking.</para> 96 97 <para>The next package installed is GCC. An example of what can be 98 seen during its run of <command>configure</command> is:</para> 99 100 <screen><computeroutput>checking what assembler to use... 100 101 /tools/i686-pc-linux-gnu/bin/as 101 102 checking what linker to use... /tools/i686-pc-linux-gnu/bin/ld</computeroutput></screen> 102 103 103 <para>This is important for the reasons mentioned above. It also 104 demonstrates that GCC's configure script does not search the PATH 105 directories to find which tools to use. However, during the actual 106 operation of <command>gcc</command> itself, the same 107 search paths are not necessarily used. To find out which standard 108 linker <command>gcc</command> will use, run: <userinput>gcc 109 -print-prog-name=ld</userinput>.</para> 110 111 <para>Detailed information can be obtained from <command>gcc</command> 112 by passing it the <parameter>-v</parameter> command line option while 113 compiling a dummy program. For example, <userinput>gcc -v 114 dummy.c</userinput> will show detailed information about the 115 preprocessor, compilation, and assembly stages, including 116 <command>gcc</command>'s included search paths and their order.</para> 117 118 <para>The next package installed is Glibc. The most important 119 considerations for building Glibc are the compiler, binary tools, and 120 kernel headers. The compiler is generally not an issue since Glibc 121 will always use the <command>gcc</command> found in a 122 <envar>PATH</envar> directory. 123 The binary tools and kernel headers can be a bit more complicated. 124 Therefore, take no risks and use the available configure switches to 125 enforce the correct selections. After the run of 126 <command>configure</command>, check the contents of the 127 <filename>config.make</filename> file in the <filename 128 class="directory">glibc-build</filename> directory for all important 129 details. Note the use of <parameter>CC="gcc -B/tools/bin/"</parameter> 130 to control which binary tools are used and the use of the 131 <parameter>-nostdinc</parameter> and <parameter>-isystem</parameter> 132 flags to control the compiler's include search path. These items 133 highlight an important aspect of the Glibc package—it is very 134 self-sufficient in terms of its build machinery and generally does not 135 rely on toolchain defaults.</para> 136 137 <para>After the Glibc installation, make some adjustments to ensure 138 that searching and linking take place only within the <filename 139 class="directory">/tools</filename> prefix. Install an adjusted 140 <command>ld</command>, which has a hard-wired search path limited to 141 <filename class="directory">/tools/lib</filename>. Then amend 142 <command>gcc</command>'s specs file to point to the new dynamic linker 143 in <filename class="directory">/tools/lib</filename>. This last step 144 is vital to the whole process. As mentioned above, a hard-wired path 145 to a dynamic linker is embedded into every Executable and Link Format 146 (ELF)-shared executable. This can be inspected by running: 147 <userinput>readelf -l <name of binary> | grep 148 interpreter</userinput>. Amending gcc's specs file 149 ensures that every program compiled from here through the end of this 150 chapter will use the new dynamic linker in <filename 151 class="directory">/tools/lib</filename>.</para> 152 153 <para>The need to use the new dynamic linker is also the reason why 154 the Specs patch is applied for the second pass of GCC. Failure to do 155 so will result in the GCC programs themselves having the name of the 156 dynamic linker from the host system's <filename 157 class="directory">/lib</filename> directory embedded into them, which 158 would defeat the goal of getting away from the host.</para> 159 160 <para>During the second pass of Binutils, we are able to utilize the 161 <parameter>--with-lib-path</parameter> configure switch to control 162 <command>ld</command>'s library search path. From this point onwards, 163 the core toolchain is self-contained and self-hosted. The remainder of 164 the <xref linkend="chapter-temporary-tools"/> packages all build 165 against the new Glibc in <filename 166 class="directory">/tools</filename>.</para> 167 168 <para>Upon entering the chroot environment in <xref 169 linkend="chapter-building-system"/>, the first major package to be 170 installed is Glibc, due to its self-sufficient nature mentioned above. 171 Once this Glibc is installed into <filename 172 class="directory">/usr</filename>, perform a quick changeover of the 173 toolchain defaults, then proceed in building the rest of the target 174 LFS system.</para> 175 176 <!-- Removed as part of the fix for bug 1061 - we no longer build pass1 177 packages statically, therefore this explanation isn't required --> 178 179 <!--<sect2> 180 <title>Notes on Static Linking</title> 181 182 <para>Besides their specific task, most programs have to perform many 183 common and sometimes trivial operations. These include allocating 184 memory, searching directories, reading and writing files, string 185 handling, pattern matching, arithmetic, and other tasks. Instead of 186 obliging each program to reinvent the wheel, the GNU system provides 187 all these basic functions in ready-made libraries. The major library 188 on any Linux system is Glibc.</para> 189 190 <para>There are two primary ways of linking the functions from a 191 library to a program that uses them—statically or dynamically. When 192 a program is linked statically, the code of the used functions is 193 included in the executable, resulting in a rather bulky program. When 194 a program is dynamically linked, it includes a reference to the 195 dynamic linker, the name of the library, and the name of the function, 196 resulting in a much smaller executable. A third option is to use the 197 programming interface of the dynamic linker (see <filename>dlopen(3)</filename> 198 for more information).</para> 199 200 <para>Dynamic linking is the default on Linux and has three major 201 advantages over static linking. First, only one copy of the executable 202 library code is needed on the hard disk, instead of having multiple 203 copies of the same code included in several programs, thus saving 204 disk space. Second, when several programs use the same library 205 function at the same time, only one copy of the function's code is 206 required in core, thus saving memory space. Third, when a library 207 function gets a bug fixed or is otherwise improved, only the one 208 library needs to be recompiled instead of recompiling all programs 209 that make use of the improved function.</para> 210 211 <para>If dynamic linking has several advantages, why then do we 212 statically link the first two packages in this chapter? The reasons 213 are threefold—historical, educational, and technical. The 214 historical reason is that earlier versions of LFS statically linked 215 every program in this chapter. Educationally, knowing the difference 216 between static and dynamic linking is useful. The technical benefit is 217 a gained element of independence from the host, meaning that those 218 programs can be used independently of the host system. However, it is 219 worth noting that an overall successful LFS build can still be 220 achieved when the first two packages are built dynamically.</para> 221 222 </sect2>--> 104 <para>This is important for the reasons mentioned above. It also demonstrates 105 that GCC's configure script does not search the PATH directories to find which 106 tools to use. However, during the actual operation of <command>gcc</command> 107 itself, the same search paths are not necessarily used. To find out which 108 standard linker <command>gcc</command> will use, run: 109 <userinput>gcc -print-prog-name=ld</userinput>.</para> 110 111 <para>Detailed information can be obtained from <command>gcc</command> by 112 passing it the <parameter>-v</parameter> command line option while compiling 113 a dummy program. For example, <userinput>gcc -v dummy.c</userinput> will show 114 detailed information about the preprocessor, compilation, and assembly stages, 115 including <command>gcc</command>'s included search paths and their order.</para> 116 117 <para>The next package installed is Glibc. The most important considerations 118 for building Glibc are the compiler, binary tools, and kernel headers. The 119 compiler is generally not an issue since Glibc will always use the 120 <command>gcc</command> found in a <envar>PATH</envar> directory. The binary 121 tools and kernel headers can be a bit more complicated. Therefore, take no 122 risks and use the available configure switches to enforce the correct 123 selections. After the run of <command>configure</command>, check the contents 124 of the <filename>config.make</filename> file in the <filename 125 class="directory">glibc-build</filename> directory for all important details. 126 Note the use of <parameter>CC="gcc -B/tools/bin/"</parameter> to control which 127 binary tools are used and the use of the <parameter>-nostdinc</parameter> 128 and <parameter>-isystem</parameter> flags to control the compiler's include 129 search path. These items highlight an important aspect of the Glibc 130 package—it is very self-sufficient in terms of its build machinery and 131 generally does not rely on toolchain defaults.</para> 132 133 <para>After the Glibc installation, make some adjustments to ensure that 134 searching and linking take place only within the <filename 135 class="directory">/tools</filename> prefix. Install an adjusted 136 <command>ld</command>, which has a hard-wired search path limited to 137 <filename class="directory">/tools/lib</filename>. Then amend 138 <command>gcc</command>'s specs file to point to the new dynamic linker in 139 <filename class="directory">/tools/lib</filename>. This last step is vital 140 to the whole process. As mentioned above, a hard-wired path to a dynamic 141 linker is embedded into every Executable and Link Format (ELF)-shared 142 executable. This can be inspected by running: 143 <userinput>readelf -l <name of binary> | grep interpreter</userinput>. 144 Amending gcc's specs file ensures that every program compiled from here 145 through the end of this chapter will use the new dynamic linker in 146 <filename class="directory">/tools/lib</filename>.</para> 147 148 <para>The need to use the new dynamic linker is also the reason why 149 the Specs patch is applied for the second pass of GCC. Failure to do 150 so will result in the GCC programs themselves having the name of the 151 dynamic linker from the host system's <filename 152 class="directory">/lib</filename> directory embedded into them, which 153 would defeat the goal of getting away from the host.</para> 154 155 <para>During the second pass of Binutils, we are able to utilize the 156 <parameter>--with-lib-path</parameter> configure switch to control 157 <command>ld</command>'s library search path. From this point onwards, 158 the core toolchain is self-contained and self-hosted. The remainder of 159 the <xref linkend="chapter-temporary-tools"/> packages all build against 160 the new Glibc in <filename class="directory">/tools</filename>.</para> 161 162 <para>Upon entering the chroot environment in <xref 163 linkend="chapter-building-system"/>, the first major package to be 164 installed is Glibc, due to its self-sufficient nature mentioned above. 165 Once this Glibc is installed into <filename 166 class="directory">/usr</filename>, perform a quick changeover of the 167 toolchain defaults, then proceed in building the rest of the target 168 LFS system.</para> 169 170 <!-- Removed as part of the fix for bug 1061 - we no longer build pass1 171 packages statically, therefore this explanation isn't required --> 172 173 <!--<sect2> 174 <title>Notes on Static Linking</title> 175 176 <para>Besides their specific task, most programs have to perform many 177 common and sometimes trivial operations. These include allocating 178 memory, searching directories, reading and writing files, string 179 handling, pattern matching, arithmetic, and other tasks. Instead of 180 obliging each program to reinvent the wheel, the GNU system provides 181 all these basic functions in ready-made libraries. The major library 182 on any Linux system is Glibc.</para> 183 184 <para>There are two primary ways of linking the functions from a 185 library to a program that uses them—statically or dynamically. When 186 a program is linked statically, the code of the used functions is 187 included in the executable, resulting in a rather bulky program. When 188 a program is dynamically linked, it includes a reference to the 189 dynamic linker, the name of the library, and the name of the function, 190 resulting in a much smaller executable. A third option is to use the 191 programming interface of the dynamic linker (see <filename>dlopen(3)</filename> 192 for more information).</para> 193 194 <para>Dynamic linking is the default on Linux and has three major 195 advantages over static linking. First, only one copy of the executable 196 library code is needed on the hard disk, instead of having multiple 197 copies of the same code included in several programs, thus saving 198 disk space. Second, when several programs use the same library 199 function at the same time, only one copy of the function's code is 200 required in core, thus saving memory space. Third, when a library 201 function gets a bug fixed or is otherwise improved, only the one 202 library needs to be recompiled instead of recompiling all programs 203 that make use of the improved function.</para> 204 205 <para>If dynamic linking has several advantages, why then do we 206 statically link the first two packages in this chapter? The reasons 207 are threefold—historical, educational, and technical. The 208 historical reason is that earlier versions of LFS statically linked 209 every program in this chapter. Educationally, knowing the difference 210 between static and dynamic linking is useful. The technical benefit is 211 a gained element of independence from the host, meaning that those 212 programs can be used independently of the host system. However, it is 213 worth noting that an overall successful LFS build can still be 214 achieved when the first two packages are built dynamically.</para> 215 216 </sect2>--> 223 217 224 218 </sect1> 225 -
chapter05/util-linux.xml
r3b45abb rb4cd3c5 1 1 <?xml version="1.0" encoding="ISO-8859-1"?> 2 <!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ 2 <!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" 3 "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ 3 4 <!ENTITY % general-entities SYSTEM "../general.ent"> 4 5 %general-entities; 5 6 ]> 7 6 8 <sect1 id="ch-tools-util-linux" role="wrap"> 7 <title>Util-linux-&util-linux-version;</title> 8 <?dbhtml filename="util-linux.html"?> 9 <?dbhtml filename="util-linux.html"?> 9 10 10 <indexterm zone="ch-tools-util-linux"> 11 <primary sortas="a-Util-linux">Util-linux</primary> 12 <secondary>tools</secondary></indexterm> 11 <title>Util-linux-&util-linux-version;</title> 13 12 14 <sect2 role="package"><title/> 15 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/util-linux.xml" xpointer="xpointer(/sect1/sect2[1]/para[1])"/> 13 <indexterm zone="ch-tools-util-linux"> 14 <primary sortas="a-Util-linux">Util-linux</primary> 15 <secondary>tools</secondary> 16 </indexterm> 16 17 17 <segmentedlist> 18 <segtitle>&buildtime;</segtitle> 19 <segtitle>&diskspace;</segtitle> 20 <seglistitem><seg>0.2 SBU</seg><seg>8.9 MB</seg></seglistitem> 21 </segmentedlist> 18 <sect2 role="package"> 19 <title/> 22 20 23 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/util-linux.xml" xpointer="xpointer(/sect1/sect2[1]/segmentedlist[2])"/> 21 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" 22 href="../chapter06/util-linux.xml" 23 xpointer="xpointer(/sect1/sect2[1]/para[1])"/> 24 24 25 </sect2> 25 <segmentedlist> 26 <segtitle>&buildtime;</segtitle> 27 <segtitle>&diskspace;</segtitle> 26 28 27 <sect2 role="installation"> 28 <title>Installation of Util-linux</title> 29 <seglistitem> 30 <seg>0.2 SBU</seg> 31 <seg>8.9 MB</seg> 32 </seglistitem> 33 </segmentedlist> 29 34 30 <para>Util-linux does not use the freshly installed headers and libraries from 31 the <filename class="directory">/tools</filename> directory by default. This is 32 fixed by altering the configure script:</para> 35 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" 36 href="../chapter06/util-linux.xml" 37 xpointer="xpointer(/sect1/sect2[1]/segmentedlist[2])"/> 38 39 </sect2> 40 41 <sect2 role="installation"> 42 <title>Installation of Util-linux</title> 43 44 <para>Util-linux does not use the freshly installed headers and libraries 45 from the <filename class="directory">/tools</filename> directory by default. 46 This is fixed by altering the configure script:</para> 33 47 34 48 <screen><userinput>sed -i 's@/usr/include@/tools/include@g' configure</userinput></screen> 35 49 36 <para>Prepare Util-linux for compilation:</para>50 <para>Prepare Util-linux for compilation:</para> 37 51 38 52 <screen><userinput>./configure</userinput></screen> 39 53 40 <para>Compile some support routines:</para>54 <para>Compile some support routines:</para> 41 55 42 56 <screen><userinput>make -C lib</userinput></screen> 43 57 44 <para>Only a few of the utilities contained in this package need to be45 built:</para>58 <para>Only a few of the utilities contained in this package need to be 59 built:</para> 46 60 47 61 <screen><userinput>make -C mount mount umount 48 62 make -C text-utils more</userinput></screen> 49 63 50 <para>This package does not come with a test suite.</para>64 <para>This package does not come with a test suite.</para> 51 65 52 <para>Copy these programs to the temporary tools directory:</para>66 <para>Copy these programs to the temporary tools directory:</para> 53 67 54 68 <screen><userinput>cp mount/{,u}mount text-utils/more /tools/bin</userinput></screen> 55 69 56 </sect2>70 </sect2> 57 71 58 <sect2 role="content"><title/> 59 <para>Details on this package are located in <xref 60 linkend="contents-utillinux" role="."/></para> 61 </sect2> 72 <sect2 role="content"> 73 <title/> 74 75 <para>Details on this package are located in 76 <xref linkend="contents-utillinux" role="."/></para> 77 78 </sect2> 79 62 80 </sect1> 63
Note:
See TracChangeset
for help on using the changeset viewer.