mirror of https://github.com/tLDP/LDP
*** empty log message ***
This commit is contained in:
parent
6e6414754a
commit
9c0eb8f8f7
|
@ -0,0 +1,11 @@
|
|||
<sect2><title>Contents of Autoconf</title>
|
||||
|
||||
<!-- <para>(Last checked against version &autoconf-contversion;.)</para> -->
|
||||
|
||||
<para>Autoconf produces shell scripts which automatically configure source
|
||||
code.</para>
|
||||
|
||||
<para><emphasis>Installed programs</emphasis>: autoconf, autoheader, autom4te,
|
||||
autoreconf, autoscan, autoupdate and ifnames</para>
|
||||
|
||||
</sect2>
|
|
@ -0,0 +1,12 @@
|
|||
<sect2><title>Contents of Automake</title>
|
||||
|
||||
<!-- <para>(Last checked against version &automake-contversion;.)</para> -->
|
||||
|
||||
<para>Automake generates Makefile.in files, intended for use with Autoconf.</para>
|
||||
|
||||
<para><emphasis>Installed programs</emphasis>: acinstall, aclocal,
|
||||
aclocal-1.7, automake, automake-1.7, compile, config.guess, config.sub,
|
||||
depcomp, elisp-comp, install-sh, mdate-sh, missing, mkinstalldirs, py-compile,
|
||||
ylwrap</para>
|
||||
|
||||
</sect2>
|
|
@ -0,0 +1,15 @@
|
|||
<sect2><title>Contents of Bash</title>
|
||||
|
||||
<!-- <para>(Last checked against version &bash-contversion;.)</para> -->
|
||||
|
||||
<para>bash is the Bourne-Again SHell, which is a widely used command
|
||||
interpreter on Unix systems. The bash program reads from standard
|
||||
input (the keyboard). A user types something and the program will evaluate
|
||||
what he has typed and do something with it, like running a
|
||||
program.</para>
|
||||
|
||||
<para><emphasis>Installed programs</emphasis>: bash, sh (link to bash) and
|
||||
bashbug</para>
|
||||
|
||||
</sect2>
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
<sect2><title>Contents of Binutils</title>
|
||||
|
||||
<!-- <para>(Last checked against version &binutils-contversion;.)</para> -->
|
||||
|
||||
<para>Binutils is a collection of software development tools containing a
|
||||
linker, assembler and other tools to work with object files and
|
||||
archives.</para>
|
||||
|
||||
<para><emphasis>Installed programs</emphasis>: addr2line, ar, as, c++filt,
|
||||
gprof, ld, nm, objcopy, objdump, ranlib, readelf, size, strings and
|
||||
strip</para>
|
||||
|
||||
<para><emphasis>Installed libraries</emphasis>: libiberty.a, libbfd.[a,so] and
|
||||
libopcodes.[a,so]</para>
|
||||
|
||||
</sect2>
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
<sect2><title>Contents of Bison</title>
|
||||
|
||||
<!-- <para>(Last checked against version &bison-contversion;.)</para> -->
|
||||
|
||||
<para>Bison is a parser generator, a replacement for yacc. Bison
|
||||
generates a program that analyzes the structure of a text file.</para>
|
||||
|
||||
<para><emphasis>Installed programs</emphasis>: bison and yacc</para>
|
||||
|
||||
<para><emphasis>Installed library</emphasis>: liby.a</para>
|
||||
|
||||
</sect2>
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
<sect2><title>Contents of LFS-bootscripts</title>
|
||||
|
||||
<!-- <para>(Last checked against version &bootscripts-contversion;.)</para> -->
|
||||
|
||||
<para>The LFS-Bootscripts package contains SysV init style shell
|
||||
scripts. These scripts do various tasks such as check filesystem
|
||||
integrity during boot, load keymaps, set up networks and halt
|
||||
processes at shutdown.</para>
|
||||
|
||||
<para><emphasis>Installed scripts</emphasis>: checkfs, cleanfs, functions,
|
||||
halt, ifdown, ifup, loadkeys, localnet, mountfs, mountproc, network, rc,
|
||||
reboot, sendsignals, setclock, swap, sysklogd and template</para>
|
||||
|
||||
</sect2>
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
<sect2><title>Contents of Bzip2</title>
|
||||
|
||||
<!-- <para>(Last checked against version &bzip2-contversion;.)</para> -->
|
||||
|
||||
<para>Bzip2 is a block-sorting file compressor which generally achieves a
|
||||
better compression than the traditional <userinput>gzip</userinput>
|
||||
does.</para>
|
||||
|
||||
<para><emphasis>Installed programs</emphasis>: bunzip2 (link to bzip2), bzcat
|
||||
(link to bzip2), bzcmp, bzdiff, bzegrep, bzfgrep, bzgrep, bzip2, bzip2recover,
|
||||
bzless and bzmore</para>
|
||||
|
||||
<para><emphasis>Installed libraries</emphasis>: libbz2.a, libbz2.so (link to
|
||||
libbz2.so.1.0), libbz2.so.1.0 (link to libbz2.so.1.0.2) and
|
||||
libbz2.so.1.0.2</para>
|
||||
|
||||
</sect2>
|
|
@ -0,0 +1,12 @@
|
|||
<sect2><title> </title><para> </para></sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Coreutils Installation Dependencies</title>
|
||||
|
||||
<!-- <para>(Last checked against version &coreutils-depversion;.)</para> -->
|
||||
|
||||
<para>Coreutils depends on: Bash, Binutils, Coreutils, Diffutils, GCC,
|
||||
Gettext, Glibc, Grep, Make, Perl, Sed.</para>
|
||||
|
||||
</sect2>
|
||||
|
|
@ -0,0 +1,242 @@
|
|||
<sect2><title> </title><para> </para></sect2>
|
||||
|
||||
<sect2><title>Short descriptions</title>
|
||||
|
||||
<para><command>basename</command> strips any path and a given suffix from
|
||||
the given file name.</para>
|
||||
|
||||
<para><command>cat</command> concatenates files to standard output.</para>
|
||||
|
||||
<para><command>chgrp</command> changes the group ownership of each given
|
||||
file to the given group. The group can be either given a a name or a numeric
|
||||
ID.</para>
|
||||
|
||||
<para><command>chmod</command> changes the permissions of each given file
|
||||
to the given mode. The mode can be either a symbolic representation of the
|
||||
changes to make, or an octal number representing the new permissions.</para>
|
||||
|
||||
<para><command>chown</command> changes the user and/or group ownership of
|
||||
each given file to the given user:group pair.</para>
|
||||
|
||||
<para><command>chroot</command> runs a given command with the specified
|
||||
directory as the <filename>/</filename> directory. The given command can be an
|
||||
interactive shell. On most systems only <emphasis>root</emphasis> can do
|
||||
this.</para>
|
||||
|
||||
<para><command>cksum</command> prints the CRC checksum and the byte
|
||||
counts of each specified file.</para>
|
||||
|
||||
<para><command>comm</command> compares two sorted files, outputting in
|
||||
three columns the lines that are unique, and the lines that are common.</para>
|
||||
|
||||
<para><command>cp</command> copies files.</para>
|
||||
|
||||
<para><command>csplit</command> splits a given file into several new files,
|
||||
separating them according to given patterns or line numbers, and outputting
|
||||
the byte count of each new file.</para>
|
||||
|
||||
<para><command>cut</command> prints parts of lines, selecting the parts
|
||||
according to given fields or positions.</para>
|
||||
|
||||
<para><command>date</command> displays the current time in the given
|
||||
format, or sets the system date.</para>
|
||||
|
||||
<para><command>dd</command> copies a file using the given blocksize and
|
||||
count, while optionally performing conversions on it.</para>
|
||||
|
||||
<para><command>df</command> reports the amount of disk space available
|
||||
(and used) on all mounted filesystems, or only on the filesystems holding the
|
||||
given files.</para>
|
||||
|
||||
<para><command>dir</command> is the same as ls.</para>
|
||||
|
||||
<para><command>dircolors</command> outputs commands to set the LS_COLOR
|
||||
environment variable, to change the color scheme used by ls.</para>
|
||||
|
||||
<para><command>dirname</command> strips the non-directory suffix from
|
||||
a given file name.</para>
|
||||
|
||||
<para><command>du</command> reports the amount of disk space used by the
|
||||
current directory, or by each of the given directories including all their
|
||||
subdirectories, or by each of the given files.</para>
|
||||
|
||||
<para><command>echo</command> displays the given strings.</para>
|
||||
|
||||
<para><command>env</command> runs a command in a modified environment.</para>
|
||||
|
||||
<para><command>expand</command> converts tabs to spaces.</para>
|
||||
|
||||
<para><command>expr</command> evaluates expressions.</para>
|
||||
|
||||
<para><command>factor</command> prints the prime factors of all specified
|
||||
integer numbers.</para>
|
||||
|
||||
<para><command>false</command> does nothing, unsuccessfully. It always
|
||||
exits with a status code indicating failure.</para>
|
||||
|
||||
<para><command>fmt</command> reformats the paragraphs in the given files.</para>
|
||||
|
||||
<para><command>fold</command> wraps the lines in the given files.</para>
|
||||
|
||||
<para><command>groups</command> reports a user's group memberships.</para>
|
||||
|
||||
<para><command>head</command> prints the first ten lines (or the given
|
||||
number of lines) of each given file.</para>
|
||||
|
||||
<para><command>hostid</command> reports the numeric identifier
|
||||
(in hexadecimal) of the host.</para>
|
||||
|
||||
<para><command>hostname</command> reports or sets the name of the
|
||||
host.</para>
|
||||
|
||||
<para><command>id</command> reports the effective user ID, group ID, and
|
||||
group memberships of the current user, or of a given user.</para>
|
||||
|
||||
<para><command>install</command> copies files while setting their
|
||||
permission modes and, if possible, their owner and group.</para>
|
||||
|
||||
<para><command>join</command> joins from two files the lines that have
|
||||
identical join fields.</para>
|
||||
|
||||
<para><command>kill</command> terminates the given process.</para>
|
||||
|
||||
<para><command>link</command> creates a hard link with the given name
|
||||
to the given file.</para>
|
||||
|
||||
<para><command>ln</command> makes hard links or soft links between files.</para>
|
||||
|
||||
<para><command>logname</command> reports the current user's login name.</para>
|
||||
|
||||
<para><command>ls</command> lists the contents of each given directory.
|
||||
By default it orders the files and subdirectories alphabetically.</para>
|
||||
|
||||
<para><command>md5sum</command> reports or checks MD5 checksums.</para>
|
||||
|
||||
<para><command>mkdir</command> creates directories with the given names.</para>
|
||||
|
||||
<para><command>mkfifo</command> creates FIFOs with the given names.</para>
|
||||
|
||||
<para><command>mknod</command> creates device nodes with the given names.
|
||||
A device node is a character special file, or a block special file, or a FIFO.</para>
|
||||
|
||||
<para><command>mv</command> moves or renames files or directories.</para>
|
||||
|
||||
<para><command>nice</command> runs a program with modified scheduling priority.</para>
|
||||
|
||||
<para><command>nl</command> numbers the lines from the given files.</para>
|
||||
|
||||
<para><command>nohup</command> runs a command immune to hangups, with
|
||||
output redirected to a log file.</para>
|
||||
|
||||
<para><command>od</command> dumps files in octal and other formats.</para>
|
||||
|
||||
<para><command>paste</command> merges the given files, joining
|
||||
sequentially corresponding lines side by side, separated by TABs.</para>
|
||||
|
||||
<para><command>pathchk</command> checks whether file names are valid
|
||||
or portable.</para>
|
||||
|
||||
<para><command>pinky</command> is a lightweight finger. It reports
|
||||
some information about the given users.</para>
|
||||
|
||||
<para><command>pr</command> paginates and columnates files for printing.</para>
|
||||
|
||||
<para><command>printenv</command> prints the environment.</para>
|
||||
|
||||
<para><command>printf</command> prints the given arguments according to the
|
||||
given format -- much like the C printf function.</para>
|
||||
|
||||
<para><command>ptx</command> produces from the contents of the given files
|
||||
a permuted index, with each keyword in its context.</para>
|
||||
|
||||
<para><command>pwd</command> reports the name of the current directory.</para>
|
||||
|
||||
<para><command>readlink</command> reports the value of the given symbolic
|
||||
link.</para>
|
||||
|
||||
<para><command>rm</command> removes files or directories.</para>
|
||||
|
||||
<para><command>rmdir</command> removes directories, if they are empty.</para>
|
||||
|
||||
<para><command>seq</command> prints a sequence of numbers, within a given
|
||||
range and with a given increment.</para>
|
||||
|
||||
<para><command>sha1sum</command> prints or checks 160-bit SHA1
|
||||
checksums.</para>
|
||||
|
||||
<para><command>shred</command> overwrites the given files repeatedly with
|
||||
strange patterns, to make it real hard to recover the data.</para>
|
||||
|
||||
<para><command>sleep</command> pauses for the given amount of time.</para>
|
||||
|
||||
<para><command>sort</command> sorts the lines from the given files.</para>
|
||||
|
||||
<para><command>split</command> splits the given file into pieces, by size
|
||||
or by number of lines.</para>
|
||||
|
||||
<para><command>stty</command> sets or reports terminal line settings.</para>
|
||||
|
||||
<para><command>su</command> runs a shell with substitute user and group IDs.</para>
|
||||
|
||||
<para><command>sum</command> prints checksum and block counts for each
|
||||
given file.</para>
|
||||
|
||||
<para><command>sync</command> flushes filesystem buffers. It forces
|
||||
changed blocks to disk and updates the super block.</para>
|
||||
|
||||
<para><command>tac</command> concatenates the given files in reverse.</para>
|
||||
|
||||
<para><command>tail</command> prints the last ten lines (or the given
|
||||
number of lines) of each given file.</para>
|
||||
|
||||
<para><command>tee</command> reads from standard input while writing both
|
||||
to standard output and to the given files.</para>
|
||||
|
||||
<para><command>test</command> compares values and checks file types.</para>
|
||||
|
||||
<para><command>touch</command> changes file timestamps, setting the access
|
||||
and modification times of the given files to the current time. Files that do
|
||||
not exist are created with zero length.</para>
|
||||
|
||||
<para><command>tr</command> translates, squeezes, and deletes the given
|
||||
characters from standard input.</para>
|
||||
|
||||
<para><command>true</command> does nothing, successfully. It always exits
|
||||
with a status code indicating success.</para>
|
||||
|
||||
<para><command>tsort</command> performs a topological sort. It writes a
|
||||
totally ordered list according to the partial ordering in a given file.</para>
|
||||
|
||||
<para><command>tty</command> reports the file name of the terminal
|
||||
connected to standard input.</para>
|
||||
|
||||
<para><command>uname</command> reports system information.</para>
|
||||
|
||||
<para><command>unexpand</command> converts spaces to tabs.</para>
|
||||
|
||||
<para><command>uniq</command> discards all but one of successive
|
||||
identical lines.</para>
|
||||
|
||||
<para><command>unlink</command> removes the given file.</para>
|
||||
|
||||
<para><command>uptime</command> reports how long the system has been
|
||||
running, how many users are logged on, and the system load averages.</para>
|
||||
|
||||
<para><command>users</command> reports the names of the users currently
|
||||
logged on.</para>
|
||||
|
||||
<para><command>vdir</command> is the same as ls -l.</para>
|
||||
|
||||
<para><command>wc</command> reports the number of lines, words, and bytes
|
||||
for each given file, and a total line when more than one file is given.</para>
|
||||
|
||||
<para><command>who</command> reports who is logged on.</para>
|
||||
|
||||
<para><command>whoami</command> reports the user name associated with the
|
||||
current effective user ID.</para>
|
||||
|
||||
<para><command>yes</command> outputs 'y' or a given string repeatedly,
|
||||
until killed.</para>
|
||||
|
||||
</sect2>
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
<sect2>
|
||||
<title>Official Download Location</title>
|
||||
|
||||
<literallayout>Coreutils (&coreutils-version;):
|
||||
<ulink url="ftp://ftp.gnu.org/gnu/coreutils/"/>
|
||||
|
||||
Coreutils Hostname Patch:
|
||||
<ulink url="&patches-root;&coreutils-hostname-patch;"/>
|
||||
|
||||
Coreutils Uname Patch:
|
||||
<ulink url="&patches-root;&coreutils-uname-patch;"/></literallayout>
|
||||
</sect2>
|
|
@ -0,0 +1,18 @@
|
|||
<sect2><title>Contents of Coreutils</title>
|
||||
|
||||
<para>The Coreutils package contains a whole series of basic shell utilities.</para>
|
||||
|
||||
<!-- <para>(Last checked against version &coreutils-contversion;.)</para> -->
|
||||
|
||||
<para><emphasis>Installed programs</emphasis>: basename, cat, chgrp, chmod,
|
||||
chown, chroot, cksum, comm, cp, csplit, cut, date, dd, df, dir, dircolors,
|
||||
dirname, du, echo, env, expand, expr, factor, false, fmt, fold, groups, head,
|
||||
hostid, hostname, id, install, join, kill, link, ln, logname, ls, md5sum,
|
||||
mkdir, mkfifo, mknod, mv, nice, nl, nohup, od, paste, pathchk, pinky, pr,
|
||||
printenv, printf, ptx, pwd, readlink, rm, rmdir, seq, sha1sum, shred, sleep,
|
||||
sort, split, stat, stty, su, sum, sync, tac, tail, tee, test, touch, tr, true,
|
||||
tsort, tty, uname, unexpand, uniq, unlink, uptime, users, vdir, wc, who,
|
||||
whoami and yes</para>
|
||||
|
||||
</sect2>
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
<sect1 id="aa-coreutils" xreflabel="Coreutils">
|
||||
<title>Coreutils</title>
|
||||
<?dbhtml filename="coreutils.html" dir="appendixa"?>
|
||||
|
||||
<para>For installation instructions see <xref linkend="ch06-coreutils"/>.</para>
|
||||
|
||||
&aa-coreutils-down;
|
||||
&aa-coreutils-shortdesc;
|
||||
&aa-coreutils-desc;
|
||||
&aa-coreutils-dep;
|
||||
|
||||
</sect1>
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
<sect2><title> </title><para> </para></sect2>
|
||||
|
||||
<sect2>
|
||||
<title>DejaGnu Installation Dependencies</title>
|
||||
|
||||
<!-- <para>(Last checked against version &dejagnu-depversion;.)</para> -->
|
||||
|
||||
<para>Dejagnu depends on: Bash, Binutils, Coreutils, Diffutils,
|
||||
GCC, Glibc, Grep, Make, Sed.</para>
|
||||
|
||||
</sect2>
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
<sect2><title> </title><para> </para></sect2>
|
||||
|
||||
<sect2><title>Short description</title>
|
||||
|
||||
<para><command>runtest</command> is the wrapper script that finds the proper
|
||||
expect shell and then runs DejaGnu.</para>
|
||||
|
||||
</sect2>
|
|
@ -0,0 +1,6 @@
|
|||
<sect2>
|
||||
<title>Official Download Location</title>
|
||||
|
||||
<literallayout>DejaGnu (&dejagnu-version;):
|
||||
<ulink url="ftp://ftp.gnu.org/gnu/dejagnu/"/></literallayout>
|
||||
</sect2>
|
|
@ -0,0 +1,10 @@
|
|||
<sect2><title>Contents of DejaGnu</title>
|
||||
|
||||
<!-- <para>(Last checked against version &dejagnu-contversion;.)</para> -->
|
||||
|
||||
<para>The DejaGnu package contains a framework for testing other programs.</para>
|
||||
|
||||
<para><emphasis>Installed program</emphasis>: runtest</para>
|
||||
|
||||
</sect2>
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
<sect1 id="aa-dejagnu" xreflabel="DejaGnu">
|
||||
<title>DejaGnu</title>
|
||||
<?dbhtml filename="dejagnu.html" dir="appendixa"?>
|
||||
|
||||
<para>For installation instructions see <xref linkend="ch05-dejagnu"/>.</para>
|
||||
|
||||
&aa-dejagnu-down;
|
||||
&aa-dejagnu-shortdesc;
|
||||
&aa-dejagnu-desc;
|
||||
&aa-dejagnu-dep;
|
||||
|
||||
</sect1>
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
<sect2><title>Contents of Diffutils</title>
|
||||
|
||||
<!-- <para>(Last checked against version &diffutils-contversion;.)</para> -->
|
||||
|
||||
<para>The programs from this package show you the differences between two
|
||||
files or directories. It's most common use is to create software
|
||||
patches.</para>
|
||||
|
||||
<para><emphasis>Installed programs</emphasis>: cmp, diff, diff3 and sdiff</para>
|
||||
|
||||
</sect2>
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
<sect2><title>Contents of E2fsprogs</title>
|
||||
|
||||
<!-- <para>(Last checked against version &e2fsprogs-contversion;.)</para> -->
|
||||
|
||||
<para>E2fsprogs provides the filesystem utilities for use with the
|
||||
ext2 filesystem. It also supports the ext3 filesystem with journaling
|
||||
support.</para>
|
||||
|
||||
<para><emphasis>Installed programs</emphasis>: badblocks, blkid, chattr,
|
||||
compile_et, debugfs, dumpe2fs, e2fsck, e2image, e2label, findfs, fsck,
|
||||
fsck.ext2, fsck.ext3, logsave, lsattr, mk_cmds, mke2fs, mkfs.ext2, mkfs.ext3,
|
||||
mklost+found, resize2fs, tune2fs and uuidgen.</para>
|
||||
|
||||
<para><emphasis>Installed libraries</emphasis>: libblkid.[a,so],
|
||||
libcom_err.[a,so], libe2p.[a,so], libext2fs.[a,so], libss.[a,so] and
|
||||
libuuid.[a,so]</para>
|
||||
|
||||
</sect2>
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
<sect2><title>Contents of Ed</title>
|
||||
|
||||
<!-- <para>(Last checked against version &ed-contversion;.)</para> -->
|
||||
|
||||
<para>GNU ed is an 8-bit clean, POSIX-compliant line editor.</para>
|
||||
|
||||
<para><emphasis>Installed programs</emphasis>: ed and red (link to ed)</para>
|
||||
|
||||
</sect2>
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
<sect2><title> </title><para> </para></sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Expect Installation Dependencies</title>
|
||||
|
||||
<!-- <para>(Last checked against version &expect-depversion;.)</para> -->
|
||||
|
||||
<para>Expect depends on: Bash, Binutils, Coreutils, Diffutils,
|
||||
GCC, Glibc, Grep, Make, Sed, Tcl.</para>
|
||||
|
||||
</sect2>
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
<sect2><title> </title><para> </para></sect2>
|
||||
|
||||
<sect2><title>Short description</title>
|
||||
|
||||
<para><command>expect</command> "talks" to other interactive programs according
|
||||
to a script.</para>
|
||||
|
||||
</sect2>
|
|
@ -0,0 +1,9 @@
|
|||
<sect2>
|
||||
<title>Official Download Location</title>
|
||||
|
||||
<literallayout>Expect (&expect-version;):
|
||||
<ulink url="http://expect.nist.gov/src/"/>
|
||||
|
||||
Expect Spawn Patch:
|
||||
<ulink url="&patches-root;&expect-patch;"/></literallayout>
|
||||
</sect2>
|
|
@ -0,0 +1,13 @@
|
|||
<sect2><title>Contents of Expect</title>
|
||||
|
||||
<!-- <para>(Last checked against version &expect-contversion;.)</para> -->
|
||||
|
||||
<para>The Expect package provides a program that performs programmed dialogue
|
||||
with other interactive programs.</para>
|
||||
|
||||
<para><emphasis>Installed program</emphasis>: expect</para>
|
||||
|
||||
<para><emphasis>Installed library</emphasis>: libexpect5.39.a</para>
|
||||
|
||||
</sect2>
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
<sect1 id="aa-expect" xreflabel="expect">
|
||||
<title>Expect</title>
|
||||
<?dbhtml filename="expect.html" dir="appendixa"?>
|
||||
|
||||
<para>For installation instructions see <xref linkend="ch05-expect"/>.</para>
|
||||
|
||||
&aa-expect-down;
|
||||
&aa-expect-shortdesc;
|
||||
&aa-expect-desc;
|
||||
&aa-expect-dep;
|
||||
|
||||
</sect1>
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
<sect2><title>Contents of File</title>
|
||||
|
||||
<!-- <para>(Last checked against version &file-contversion;.)</para> -->
|
||||
|
||||
<para>File is a utility used to determine file types.</para>
|
||||
|
||||
<para><emphasis>Installed program</emphasis>: file</para>
|
||||
|
||||
<para><emphasis>Installed library</emphasis>: libmagic.[a,so]</para>
|
||||
|
||||
</sect2>
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
<sect2><title>Contents of Findutils</title>
|
||||
|
||||
<!-- <para>(Last checked against version &findutils-contversion;.)</para> -->
|
||||
|
||||
<para>The Findutils package contains programs to find files, either
|
||||
on-the-fly (by doing a live recursive search through directories and only
|
||||
showing files that match the specifications) or by searching through a
|
||||
database.</para>
|
||||
|
||||
<para><emphasis>Installed programs</emphasis>: bigram, code, find, frcode,
|
||||
locate, updatedb and xargs</para>
|
||||
|
||||
</sect2>
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
<sect2><title>Contents of Flex</title>
|
||||
|
||||
<!-- <para>(Last checked against version &flex-contversion;.)</para> -->
|
||||
|
||||
<para>The Flex package is used to generate programs which recognize
|
||||
patterns in text.</para>
|
||||
|
||||
<para><emphasis>Installed programs</emphasis>: flex, flex++ (link to flex)
|
||||
and lex</para>
|
||||
|
||||
<para><emphasis>Installed library</emphasis>: libfl.a</para>
|
||||
|
||||
</sect2>
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
<sect2><title>Contents of Gawk</title>
|
||||
|
||||
<!-- <para>(Last checked against version &gawk-contversion;.)</para> -->
|
||||
|
||||
<para>Gawk is an awk implementation that is used to manipulate text
|
||||
files.</para>
|
||||
|
||||
<para><emphasis>Installed programs</emphasis>: awk (link to gawk), gawk,
|
||||
gawk-&gawk-version;, grcat, igawk, pgawk, pgawk-&gawk-version; and pwcat</para>
|
||||
|
||||
</sect2>
|
|
@ -0,0 +1,15 @@
|
|||
<sect2><title>Contents of GCC</title>
|
||||
|
||||
<!-- <para>(Last checked against version &gcc-contversion;.)</para> -->
|
||||
|
||||
<para>The GCC package contains the GNU compiler collection, including
|
||||
the C and C++ compilers.</para>
|
||||
|
||||
<para><emphasis>Installed programs</emphasis>: c++, cc (link to gcc),
|
||||
cc1, cc1plus, collect2, cpp, g++, gcc, gccbug, and gcov</para>
|
||||
|
||||
<para><emphasis>Installed libraries</emphasis>: libgcc.a, libgcc_eh.a,
|
||||
libgcc_s.so, libstdc++.[a,so] and libsupc++.a</para>
|
||||
|
||||
</sect2>
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
<sect2><title>Contents of Gettext</title>
|
||||
|
||||
<!-- <para>(Last checked against version &gettext-contversion;.)</para> -->
|
||||
|
||||
<para>The Gettext package is used for internationalization and
|
||||
localization. Programs can be compiled with Native Language Support
|
||||
(NLS) which enable them to output messages in the user's native
|
||||
language.</para>
|
||||
|
||||
<para><emphasis>Installed programs</emphasis>: autopoint, config.charset,
|
||||
config.rpath, gettext, gettextize, hostname, msgattrib, msgcat, msgcmp,
|
||||
msgcomm, msgconv, msgen, msgexec, msgfilter, msgfmt, msggrep, msginit,
|
||||
msgmerge, msgunfmt, msguniq, ngettext, project-id, team-address, trigger,
|
||||
urlget, user-email and xgettext</para>
|
||||
|
||||
<para><emphasis>Installed libraries</emphasis>: libasprintf[a,so],
|
||||
libgettextlib[a,so], libgettextpo[a,so] and libgettextsrc[a,so]</para>
|
||||
|
||||
</sect2>
|
|
@ -0,0 +1,23 @@
|
|||
<sect2><title>Contents of Glibc</title>
|
||||
|
||||
<!-- <para>(Last checked against version &glibc-contversion;.)</para> -->
|
||||
|
||||
<para>Glibc is the C library that provides the system calls and basic
|
||||
functions such as open, malloc, printf, etc. The C library is used by all
|
||||
dynamically linked programs.</para>
|
||||
|
||||
<para><emphasis>Installed programs</emphasis>: catchsegv, gencat, getconf,
|
||||
getent, glibcbug, iconv, iconvconfig, ldconfig, ldd, lddlibc4, locale,
|
||||
localedef, mtrace, nscd, nscd_nischeck, pcprofiledump, pt_chown, rpcgen,
|
||||
rpcinfo, sln, sprof, tzselect, xtrace, zdump and zic</para>
|
||||
|
||||
<para><emphasis>Installed libraries</emphasis>: ld.so, libBrokenLocale.[a,so],
|
||||
libSegFault.so, libanl.[a,so], libbsd-compat.a, libc.[a,so], libc_nonshared.a,
|
||||
libcrypt.[a,so], libdl.[a,so], libg.a, libieee.a, libm.[a,so], libmcheck.a,
|
||||
libmemusage.so, libnsl.a, libnss_compat.so, libnss_dns.so, libnss_files.so,
|
||||
libnss_hesiod.so, libnss_nis.so, libnss_nisplus.so, libpcprofile.so,
|
||||
libpthread.[a,so], libresolv.[a,so], librpcsvc.a, librt.[a,so], libthread_db.so
|
||||
and libutil.[a,so]</para>
|
||||
|
||||
</sect2>
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
<sect2><title>Contents of Grep</title>
|
||||
|
||||
<!-- <para>(Last checked against version &grep-contversion;.)</para> -->
|
||||
|
||||
<para>Grep is a program used to print lines from a file matching a
|
||||
specified pattern.</para>
|
||||
|
||||
<para><emphasis>Installed programs</emphasis>: egrep (link to grep), fgrep
|
||||
(link to grep) and grep</para>
|
||||
|
||||
</sect2>
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
<sect2><title>Contents of Groff</title>
|
||||
|
||||
<!-- <para>(Last checked against version &groff-contversion;.)</para> -->
|
||||
|
||||
<para>The Groff package includes several text processing programs
|
||||
for text formatting. Groff translates standard text and special
|
||||
commands into formatted output, such as what you see in a manual
|
||||
page.</para>
|
||||
|
||||
<para><emphasis>Installed programs</emphasis>: addftinfo, afmtodit, eqn,
|
||||
eqn2graph, geqn (link to eqn), grn, grodvi, groff, groffer, grog, grolbp,
|
||||
grolj4, grops, grotty, gtbl (link to tbl), hpftodit, indxbib, lkbib,
|
||||
lookbib, mmroff, neqn, nroff, pfbtops, pic, pic2graph, post-grohtml,
|
||||
pre-grohtml, refer, soelim, tbl, tfmtodit, troff and zsoelim (link to
|
||||
soelim)</para>
|
||||
|
||||
</sect2>
|
|
@ -0,0 +1,12 @@
|
|||
<sect2><title> </title><para> </para></sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Grub Installation Dependencies</title>
|
||||
|
||||
<!-- <para>(Last checked against version &grub-depversion;.)</para> -->
|
||||
|
||||
<para>Grub depends on: Bash, Binutils, Coreutils, Diffutils,
|
||||
GCC, Glibc, Grep, Make, Ncurses, Sed.</para>
|
||||
|
||||
</sect2>
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
<sect2><title> </title><para> </para></sect2>
|
||||
|
||||
<sect2><title>Short descriptions</title>
|
||||
|
||||
<para><command>grub</command> is the GRand Unified Bootloader's command
|
||||
shell.</para>
|
||||
|
||||
<para><command>grub-install</command> installs GRUB on the given device.</para>
|
||||
|
||||
<para><command>grub-md5-crypt</command> encrypts a password in MD5
|
||||
format.</para>
|
||||
|
||||
<para><command>grub-terminfo</command> generates a terminfo command from a
|
||||
terminfo name. It can be used if you have an uncommon terminal.</para>
|
||||
|
||||
<para><command>mbchk</command> checks the format of a multiboot kernel.</para>
|
||||
|
||||
</sect2>
|
|
@ -0,0 +1,9 @@
|
|||
<sect2>
|
||||
<title>Official Download Location</title>
|
||||
|
||||
<literallayout>Grub (&grub-version;):
|
||||
<ulink url="ftp://alpha.gnu.org/pub/gnu/grub/"/>
|
||||
|
||||
Grub Gcc33 Patch:
|
||||
<ulink url="&patches-root;&grub-patch;"/></literallayout>
|
||||
</sect2>
|
|
@ -0,0 +1,10 @@
|
|||
<sect2><title>Contents of Grub</title>
|
||||
|
||||
<!-- <para>(Last checked against version &grub-contversion;.)</para> -->
|
||||
|
||||
<para>The Grub package contains a bootloader.</para>
|
||||
|
||||
<para><emphasis>Installed programs</emphasis>: grub, grub-install,
|
||||
grub-md5-crypt, grub-terminfo and mbchk</para>
|
||||
|
||||
</sect2>
|
|
@ -0,0 +1,13 @@
|
|||
<sect1 id="aa-grub" xreflabel="Grub">
|
||||
<title>Grub</title>
|
||||
<?dbhtml filename="grub.html" dir="appendixa"?>
|
||||
|
||||
<para>For installation instructions see <xref linkend="ch06-grub"/>.</para>
|
||||
|
||||
&aa-grub-down;
|
||||
&aa-grub-shortdesc;
|
||||
&aa-grub-desc;
|
||||
&aa-grub-dep;
|
||||
|
||||
</sect1>
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
<sect2><title>Contents of Gzip</title>
|
||||
|
||||
<!-- <para>(Last checked against version &gzip-contversion;.)</para> -->
|
||||
|
||||
<para>The Gzip package contains programs to compress and decompress files
|
||||
using the Lempel-Ziv coding (LZ77).</para>
|
||||
|
||||
<para><emphasis>Installed programs</emphasis>: gunzip (link to gzip), gzexe,
|
||||
gzip, uncompress (link to gunzip), zcat (link to gzip), zcmp, zdiff,
|
||||
zegrep, zfgrep, zforce, zgrep, zless, zmore and znew</para>
|
||||
|
||||
</sect2>
|
|
@ -0,0 +1,12 @@
|
|||
<sect2><title> </title><para> </para></sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Inetutils Installation Dependencies</title>
|
||||
|
||||
<!-- <para>(Last checked against version &inetutils-depversion;.)</para> -->
|
||||
|
||||
<para>Inetutils depends on: Bash, Binutils, Coreutils,
|
||||
Diffutils, GCC, Glibc, Grep, Make, Ncurses, Sed.</para>
|
||||
|
||||
</sect2>
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
<sect2><title> </title><para> </para></sect2>
|
||||
|
||||
<sect2><title>Short descriptions</title>
|
||||
|
||||
<para><command>ftp</command> is the ARPANET file transfer program.</para>
|
||||
|
||||
<para><command>ping</command> sends echo-request packets and reports how
|
||||
long the replies take.</para>
|
||||
|
||||
<para><command>rcp</command> does remote file copy.</para>
|
||||
|
||||
<para><command>rlogin</command> does remote login.</para>
|
||||
|
||||
<para><command>rsh</command> runs a remote shell.</para>
|
||||
|
||||
<para><command>talk</command> is used to chat up another user.</para>
|
||||
|
||||
<para><command>telnet</command> is an interface to the TELNET protocol.</para>
|
||||
|
||||
<para><command>tftp</command> is a trivial file transfer program.</para>
|
||||
|
||||
</sect2>
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
<sect2><title> </title><para> </para></sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Official Download Location</title>
|
||||
|
||||
<literallayout>Inetutils (&inetutils-version;):
|
||||
<ulink url="http://freshmeat.net/projects/inetutils/"/></literallayout>
|
||||
</sect2>
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
<sect2><title>Contents of Inetutils</title>
|
||||
|
||||
<!-- <para>(Last checked against version &inetutils-contversion;.)</para> -->
|
||||
|
||||
<para>The Inetutils package contains network clients and servers.</para>
|
||||
|
||||
<para><emphasis>Installed programs</emphasis>: ftp, ping, rcp, rlogin, rsh,
|
||||
talk, telnet and tftp</para>
|
||||
|
||||
</sect2>
|
|
@ -0,0 +1,12 @@
|
|||
<sect1 id="aa-inetutils" xreflabel="Inetutils">
|
||||
<title>Inetutils</title>
|
||||
<?dbhtml filename="inetutils.html" dir="appendixa"?>
|
||||
|
||||
<para>For installation instructions see <xref linkend="ch06-inetutils"/>.</para>
|
||||
|
||||
&aa-inetutils-down;
|
||||
&aa-inetutils-shortdesc;
|
||||
&aa-inetutils-desc;
|
||||
&aa-inetutils-dep;
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,15 @@
|
|||
<sect2><title>Contents of Kbd</title>
|
||||
|
||||
<!-- <para>(Last checked against version &kbd-contversion;.)</para> -->
|
||||
|
||||
<para>Kbd contains keytable files and keyboard utilities.</para>
|
||||
|
||||
<para><emphasis>Installed programs</emphasis>: chvt, deallocvt, dumpkeys,
|
||||
fgconsole, getkeycodes, getunimap, kbd_mode, kbdrate, loadkeys, loadunimap,
|
||||
mapscrn, openvt, psfaddtable (link to psfxtable), psfgettable (link to
|
||||
psfxtable), psfstriptable (link to psfxtable), psfxtable, resizecons,
|
||||
setfont, setkeycodes, setleds, setlogcons, setmetamode, setvesablank,
|
||||
showconsolefont, showkey, unicode_start and unicode_stop</para>
|
||||
|
||||
</sect2>
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
<sect2><title>Contents of Linux</title>
|
||||
|
||||
<!-- <para>(Last checked against version &kernel-contversion;.)</para> -->
|
||||
|
||||
<para>The Linux kernel is at the core of every Linux system. It's what makes
|
||||
Linux tick. When a computer is turned on and boots a Linux system, the
|
||||
very first piece of Linux software that gets loaded is the kernel. The
|
||||
kernel initializes the system's hardware components: serial ports, parallel
|
||||
ports, sound cards, network cards, IDE controllers, SCSI controllers and a
|
||||
lot more. In a nutshell the kernel makes the hardware available so that the
|
||||
software can run.</para>
|
||||
|
||||
<para><emphasis>Installed files</emphasis>: the kernel and the kernel
|
||||
headers</para>
|
||||
|
||||
</sect2>
|
|
@ -0,0 +1,13 @@
|
|||
<sect2><title>Contents of Less</title>
|
||||
|
||||
<!-- <para>(Last checked against version &less-contversion;.)</para> -->
|
||||
|
||||
<para>Less is a file pager, or text viewer. It displays the contents
|
||||
of a file, or stream, and has the ability to scroll. Less has a few
|
||||
features not included in the <userinput>more</userinput> pager,
|
||||
such as the ability to scroll backwards.</para>
|
||||
|
||||
<para><emphasis>Installed programs</emphasis>: less, lessecho and lesskey</para>
|
||||
|
||||
</sect2>
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
<sect2><title> </title><para> </para></sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Lfs-Utils Installation Dependencies</title>
|
||||
|
||||
<literallayout>(No dependencies checked yet.)</literallayout>
|
||||
</sect2>
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
<sect2><title> </title><para> </para></sect2>
|
||||
|
||||
<sect2><title>Short descriptions</title>
|
||||
|
||||
<para><command>mktemp</command> creates temporary files in a secure manner.
|
||||
It is used in scripts.</para>
|
||||
|
||||
<para><command>tempfile</command> creates temporary files in a less secure
|
||||
manner than <userinput>mktemp</userinput>. It is installed for
|
||||
backwards-compatibility.</para>
|
||||
|
||||
<para>The <command>http-get</command> script takes advantage of a little known
|
||||
feature of <userinput>bash</userinput> called "net redirection". It is used to
|
||||
download from websites without using any other programs.</para>
|
||||
|
||||
<para><command>iana-net</command> uses the <userinput>http-get</userinput>
|
||||
script to simplify the process of procuring IANA's services and protocols
|
||||
configuration files.</para>
|
||||
|
||||
</sect2>
|
|
@ -0,0 +1,9 @@
|
|||
<sect2><title> </title><para> </para></sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Official Download Location</title>
|
||||
|
||||
<literallayout>Lfs-utils (&lfs-utils-version;):
|
||||
<ulink url="http://www.linuxfromscratch.org/~winkie/downloads/lfs-utils/"/></literallayout>
|
||||
</sect2>
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
<sect2><title>Contents of Lfs-Utils</title>
|
||||
|
||||
<!-- <para>(Last checked against version &lfs-utils-contversion;.)</para> -->
|
||||
|
||||
<para>The Lfs-Utils package contains some miscellaneous programs used by
|
||||
various packages, but are not large enough to warrant their own
|
||||
individual package.</para>
|
||||
|
||||
<para><emphasis>Installed programs</emphasis>: mktemp, tempfile, http-get
|
||||
and iana-net</para>
|
||||
|
||||
<para><emphasis>Installed files</emphasis>: protocols, services</para>
|
||||
|
||||
</sect2>
|
|
@ -0,0 +1,13 @@
|
|||
<sect1 id="aa-lfs-utils" xreflabel="Lfs-Utils">
|
||||
<title>Lfs-Utils</title>
|
||||
<?dbhtml filename="lfs-utils.html" dir="appendixa"?>
|
||||
|
||||
<para>For installation instructions see <xref linkend="ch06-lfs-utils"/>.</para>
|
||||
|
||||
&aa-lfs-utils-down;
|
||||
&aa-lfs-utils-shortdesc;
|
||||
&aa-lfs-utils-desc;
|
||||
&aa-lfs-utils-dep;
|
||||
|
||||
</sect1>
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
<sect2><title>Contents of Libtool</title>
|
||||
|
||||
<!-- <para>(Last checked against version &libtool-contversion;.)</para> -->
|
||||
|
||||
<para>GNU libtool is a generic library support script. Libtool hides
|
||||
the complexity of using shared libraries behind a consistent,
|
||||
portable interface.</para>
|
||||
|
||||
<para><emphasis>Installed programs</emphasis>: libtool and libtoolize</para>
|
||||
|
||||
<para><emphasis>Installed libraries</emphasis>: libltdl.[a,so].</para>
|
||||
|
||||
</sect2>
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
<sect2><title>Contents of M4</title>
|
||||
|
||||
<!-- <para>(Last checked against version &m4-contversion;.)</para> -->
|
||||
|
||||
<para>M4 is a macro processor. It copies input to output, expanding
|
||||
macros as it goes. Macros are either built-in or user-defined and can
|
||||
take any number of arguments. Besides just doing macro expansion, m4
|
||||
has built-in functions for including named files, running Unix
|
||||
commands, doing integer arithmetic, manipulating text in various ways,
|
||||
recursion, etc. The m4 program can be used either as a front-end to a
|
||||
compiler or as a macro processor in its own right.</para>
|
||||
|
||||
<para><emphasis>Installed program</emphasis>: m4</para>
|
||||
|
||||
</sect2>
|
|
@ -0,0 +1,11 @@
|
|||
<sect2><title>Contents of Make</title>
|
||||
|
||||
<!-- <para>(Last checked against version &make-contversion;.)</para> -->
|
||||
|
||||
<para>Make determines, automatically, which pieces of a large program need
|
||||
to be recompiled and issues the commands to recompile them.</para>
|
||||
|
||||
<para><emphasis>Installed program</emphasis>: make</para>
|
||||
|
||||
</sect2>
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
<sect2><title>Contents of MAKEDEV</title>
|
||||
|
||||
<!-- <para>(Last checked against version &makedev-contversion;.)</para> -->
|
||||
|
||||
<para>The MAKEDEV script creates the static device nodes which
|
||||
usually reside in the <filename class="directory">/dev</filename>
|
||||
directory. Detailed information about device nodes may be found
|
||||
in the <filename>Documentation/devices.txt</filename> file under
|
||||
the Linux kernel source tree.</para>
|
||||
|
||||
<para><emphasis>Installed script</emphasis>: MAKEDEV</para>
|
||||
|
||||
</sect2>
|
|
@ -0,0 +1,11 @@
|
|||
<sect2><title>Contents of Man</title>
|
||||
|
||||
<!-- <para>(Last checked against version &man-contversion;.)</para> -->
|
||||
|
||||
<para>Man is a man pager.</para>
|
||||
|
||||
<para><emphasis>Installed programs</emphasis>: apropos, makewhatis, man,
|
||||
man2dvi, man2html and whatis</para>
|
||||
|
||||
</sect2>
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
<sect2><title>Contents of Man-pages</title>
|
||||
|
||||
<!-- <para>(Last checked against version &man-pages-contversion;.)</para> -->
|
||||
|
||||
<para>The Man-pages package contains over 1200 manual pages. This
|
||||
documentation details the C and C++ functions, describes a few
|
||||
important device files and provides documents which would otherwise
|
||||
be missing from other packages.</para>
|
||||
|
||||
<para><emphasis>Installed files</emphasis>: various manual pages</para>
|
||||
|
||||
</sect2>
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
<sect2><title>Contents of Modutils</title>
|
||||
|
||||
<!-- <para>(Last checked against version &modutils-contversion;.)</para> -->
|
||||
|
||||
<para>The Modutils package contains programs that you can use to work with
|
||||
kernel modules.</para>
|
||||
|
||||
<para><emphasis>Installed programs</emphasis>: depmod, genksyms, insmod,
|
||||
insmod_ksymoops_clean, kallsyms (link to insmod), kernelversion, ksyms
|
||||
(link to insmod), lsmod (link to insmod), modinfo, modprobe (link to insmod)
|
||||
and rmmod (link to insmod)</para>
|
||||
|
||||
</sect2>
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
<sect2><title>Contents of Ncurses</title>
|
||||
|
||||
<!-- <para>(Last checked against version &ncurses-contversion;.)</para> -->
|
||||
|
||||
<para>The Ncurses package provides character and terminal handling
|
||||
libraries, including panels and menus.</para>
|
||||
|
||||
<para><emphasis>Installed programs</emphasis>: captoinfo (link to tic), clear,
|
||||
infocmp, infotocap (link to tic), reset (link to tset), tack, tic, toe, tput
|
||||
and tset</para>
|
||||
|
||||
<para><emphasis>Installed libraries</emphasis>: libcurses.[a,so] (link to
|
||||
libncurses.[a,so]), libform.[a,so], libmenu.[a,so], libncurses++.a,
|
||||
libncurses.[a,so], libpanel.[a,so]</para>
|
||||
|
||||
</sect2>
|
|
@ -0,0 +1,14 @@
|
|||
<sect2><title>Contents of Net-tools</title>
|
||||
|
||||
<!-- <para>(Last checked against version &net-tools-contversion;.)</para> -->
|
||||
|
||||
<para>The Net-tools package contains a collection of programs
|
||||
which form the base of Linux networking.</para>
|
||||
|
||||
<para><emphasis>Installed programs</emphasis>: arp, dnsdomainname (link to
|
||||
hostname), domainname (link to hostname), hostname, ifconfig, nameif, netstat,
|
||||
nisdomainname (link to hostname), plipconfig, rarp, route, slattach and
|
||||
ypdomainname (link to hostname)</para>
|
||||
|
||||
</sect2>
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
<sect2><title>Contents of Patch</title>
|
||||
|
||||
<!-- <para>(Last checked against version &patch-contversion;.)</para> -->
|
||||
|
||||
<para>The patch program modifies a file according to a patch file. A patch
|
||||
file usually is a list, created by the diff program, that contains
|
||||
instructions on how an original file needs to be modified.</para>
|
||||
|
||||
<para><emphasis>Installed program</emphasis>: patch</para>
|
||||
|
||||
</sect2>
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
<sect2><title>Contents of Perl</title>
|
||||
|
||||
<!-- <para>(Last checked against version &perl-contversion;.)</para> -->
|
||||
|
||||
<para>The Perl package contains perl, the Practical Extraction
|
||||
and Report Language. Perl combines some of the best features of C,
|
||||
sed, awk and sh into one powerful language.</para>
|
||||
|
||||
<para><emphasis>Installed programs</emphasis>: a2p, c2ph, dprofpp, enc2xs,
|
||||
find2perl, h2ph, h2xs, libnetcfg, perl, perl&perl-version; (link to perl),
|
||||
perlbug, perlcc, perldoc, perlivp, piconv, pl2pm, pod2html, pod2latex, pod2man,
|
||||
pod2text, pod2usage, podchecker, podselect, psed (link to s2p), pstruct (link
|
||||
to c2ph), s2p, splain and xsubpp</para>
|
||||
|
||||
<para><emphasis>Installed libraries</emphasis>: (too many to name)</para>
|
||||
|
||||
</sect2>
|
|
@ -0,0 +1,13 @@
|
|||
<sect2><title>Contents of Procinfo</title>
|
||||
|
||||
<!-- <para>(Last checked against version &procinfo-contversion;.)</para> -->
|
||||
|
||||
<para>The procinfo program gathers system data, such as memory
|
||||
usage and IRQ numbers, from the <filename>/proc</filename>
|
||||
directory and formats this data in a meaningful way.</para>
|
||||
|
||||
<para><emphasis>Installed programs</emphasis>: lsdev, procinfo and
|
||||
socklist</para>
|
||||
|
||||
</sect2>
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
<sect2><title>Contents of Procps</title>
|
||||
|
||||
<!-- <para>(Last checked against version &procps-contversion;.)</para> -->
|
||||
|
||||
<para>The Procps package provides programs to monitor and
|
||||
halt system processes. Procps gathers information about
|
||||
processes via the <filename>/proc</filename> directory.</para>
|
||||
|
||||
<para><emphasis>Installed programs</emphasis>: free, kill, pgrep, pkill,
|
||||
pmap, ps, skill, snice, sysctl, tload, top, uptime, vmstat, w and watch</para>
|
||||
|
||||
<para><emphasis>Installed library</emphasis>: libproc.so</para>
|
||||
|
||||
</sect2>
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
<sect2><title>Contents of Psmisc</title>
|
||||
|
||||
<!-- <para>(Last checked against version &psmisc-contversion;.)</para> -->
|
||||
|
||||
<para>The Psmisc package contains three programs which help
|
||||
manage the <filename>/proc</filename> directory.</para>
|
||||
|
||||
<para><emphasis>Installed programs</emphasis>: fuser, killall and pstree</para>
|
||||
|
||||
</sect2>
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
<sect2><title>Contents of Sed</title>
|
||||
|
||||
<!-- <para>(Last checked against version &sed-contversion;.)</para> -->
|
||||
|
||||
<para>sed is a stream editor. A stream editor is used to perform basic text
|
||||
transformations on an input stream (a file or input from a
|
||||
pipeline).</para>
|
||||
|
||||
<para><emphasis>Installed program</emphasis>: sed</para>
|
||||
|
||||
</sect2>
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
<sect2><title>Contents of Shadow</title>
|
||||
|
||||
<!-- <para>(Last checked against version &shadow-contversion;.)</para> -->
|
||||
|
||||
<para>The Shadow package was created to strengthen the security
|
||||
of system passwords.</para>
|
||||
|
||||
<para><emphasis>Installed programs</emphasis>: chage, chfn, chpasswd, chsh,
|
||||
dpasswd, expiry, faillog, gpasswd, groupadd, groupdel, groupmod, groups, grpck,
|
||||
grpconv, grpunconv, lastlog, login, logoutd, mkpasswd, newgrp, newusers,
|
||||
passwd, pwck, pwconv, pwunconv, sg (link to newgrp), useradd, userdel, usermod,
|
||||
vigr (link to vipw) and vipw</para>
|
||||
|
||||
</sect2>
|
|
@ -0,0 +1,11 @@
|
|||
<sect2><title>Contents of Sysklogd</title>
|
||||
|
||||
<!-- <para>(Last checked against version &sysklogd-contversion;.)</para> -->
|
||||
|
||||
<para>The Sysklogd package contains programs for recording
|
||||
system log messages, such as those reported by the kernel.</para>
|
||||
|
||||
<para><emphasis>Installed programs</emphasis>: klogd and syslogd</para>
|
||||
|
||||
</sect2>
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
<sect2><title>Contents of Sysvinit</title>
|
||||
|
||||
<!-- <para>(Last checked against version &sysvinit-contversion;.)</para> -->
|
||||
|
||||
<para>The Sysvinit package contains programs to control the
|
||||
startup, running and shutdown of all other programs.</para>
|
||||
|
||||
<para><emphasis>Installed programs</emphasis>: halt, init, killall5, last,
|
||||
lastb (link to last), mesg, pidof (link to killall5), poweroff (link to halt),
|
||||
reboot (link to halt), runlevel, shutdown, sulogin, telinit (link to init),
|
||||
utmpdump and wall</para>
|
||||
|
||||
</sect2>
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
<sect2><title>Contents of Tar</title>
|
||||
|
||||
<!-- <para>(Last checked against version &tar-contversion;.)</para> -->
|
||||
|
||||
<para>Tar is an archiving program designed to store and extract
|
||||
files from an archive file known as a tar file.</para>
|
||||
|
||||
<para><emphasis>Installed programs</emphasis>: rmt and tar</para>
|
||||
|
||||
</sect2>
|
|
@ -0,0 +1,12 @@
|
|||
<sect2><title> </title><para> </para></sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Tcl Installation Dependencies</title>
|
||||
|
||||
<!-- <para>(Last checked against version &tcl-depversion;.)</para> -->
|
||||
|
||||
<para>Tcl depends on: Bash, Binutils, Coreutils, Diffutils,
|
||||
GCC, Glibc, Grep, Make, Sed.</para>
|
||||
|
||||
</sect2>
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
<sect2><title> </title><para> </para></sect2>
|
||||
|
||||
<sect2><title>Short description</title>
|
||||
|
||||
<para><command>tclsh8.4</command> is the Tcl command shell.</para>
|
||||
|
||||
<para><command>libtcl8.4.so</command> is the Tcl library.</para>
|
||||
|
||||
</sect2>
|
|
@ -0,0 +1,7 @@
|
|||
<sect2>
|
||||
<title>Official Download Location</title>
|
||||
|
||||
<literallayout>Tcl (&tcl-version;):
|
||||
<ulink url="http://download.sourceforge.net/tcl/"/>
|
||||
<ulink url="ftp://download.sourceforge.net/pub/sourceforge/tcl/"/></literallayout>
|
||||
</sect2>
|
|
@ -0,0 +1,13 @@
|
|||
<sect2><title>Contents of Tcl</title>
|
||||
|
||||
<!-- <para>(Last checked against version &tcl-contversion;.)</para> -->
|
||||
|
||||
<para>The Tcl package contains the Tool Command Language.</para>
|
||||
|
||||
<para><emphasis>Installed programs</emphasis>: tclsh (link to tclsh8.4),
|
||||
tclsh8.4</para>
|
||||
|
||||
<para><emphasis>Installed library</emphasis>: libtcl8.4.so</para>
|
||||
|
||||
</sect2>
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
<sect1 id="aa-tcl" xreflabel="Tcl">
|
||||
<title>Tcl</title>
|
||||
<?dbhtml filename="tcl.html" dir="appendixa"?>
|
||||
|
||||
<para>For installation instructions see <xref linkend="ch05-tcl"/>.</para>
|
||||
|
||||
&aa-tcl-down;
|
||||
&aa-tcl-shortdesc;
|
||||
&aa-tcl-desc;
|
||||
&aa-tcl-dep;
|
||||
|
||||
</sect1>
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
<sect2><title>Contents of Texinfo</title>
|
||||
|
||||
<!-- <para>(Last checked against version &texinfo-contversion;.)</para> -->
|
||||
|
||||
<para>The Texinfo package contains programs used for reading,
|
||||
writing and converting Info documents, which provide system
|
||||
documentation.</para>
|
||||
|
||||
<para><emphasis>Installed programs</emphasis>: info, infokey, install-info,
|
||||
makeinfo, texi2dvi and texindex</para>
|
||||
|
||||
</sect2>
|
|
@ -0,0 +1,20 @@
|
|||
<sect2><title>Contents of Util-linux</title>
|
||||
|
||||
<!-- <para>(Last checked against version &util-linux-contversion;.)</para> -->
|
||||
|
||||
<para>The Util-linux package contains a number of miscellaneous
|
||||
utility programs. Some of the more prominent utilities are used
|
||||
to mount, unmount, format, partition and manage disk drives,
|
||||
open tty ports and fetch kernel messages.</para>
|
||||
|
||||
<para><emphasis>Installed programs</emphasis>: agetty, arch, blockdev, cal,
|
||||
cfdisk, chkdupexe, col, colcrt, colrm, column, ctrlaltdel, cytune, ddate,
|
||||
dmesg, elvtune, fdformat, fdisk, fsck.cramfs, fsck.minix, getopt, hexdump,
|
||||
hwclock, ipcrm, ipcs, isosize, kill, line, logger, look, losetup, mcookie, mkfs,
|
||||
mkfs.bfs, mkfs.cramfs, mkfs.minix, mkswap, more, mount, namei, parse.bash,
|
||||
parse.tcsh, pg, pivot_root, ramsize (link to rdev), raw, rdev, readprofile,
|
||||
rename, renice, rev, rootflags (link to rdev), script, setfdprm, setsid,
|
||||
setterm, sfdisk, swapoff (link to swapon), swapon, test.bash, test.tcsh,
|
||||
tunelp, ul, umount, vidmode (link to rdev), whereis and write</para>
|
||||
|
||||
</sect2>
|
|
@ -0,0 +1,14 @@
|
|||
<sect2><title>Contents of Vim</title>
|
||||
|
||||
<!-- <para>(Last checked against version &vim-contversion;.)</para> -->
|
||||
|
||||
<para>The Vim package contains a configurable text editor built to
|
||||
enable efficient text editing.</para>
|
||||
|
||||
<para><emphasis>Installed programs</emphasis>: efm_filter.pl, efm_perl.pl, ex
|
||||
(link to vim), less.sh, mve.awk, pltags.pl, ref, rview (link to vim), rvim
|
||||
(link to vim), shtags.pl, tcltags, vi (link to vim), view (link to vim), vim,
|
||||
vim132, vim2html.pl, vimdiff (link to vim), vimm, vimspell.sh, vimtutor
|
||||
and xxd</para>
|
||||
|
||||
</sect2>
|
|
@ -0,0 +1,11 @@
|
|||
<sect2><title>Contents of Zlib</title>
|
||||
|
||||
<!-- <para>(Last checked against version &zlib-contversion;.)</para> -->
|
||||
|
||||
<para>The Zlib package contains the libz library, which is used by some
|
||||
programs for its compression and uncompression functions.</para>
|
||||
|
||||
<para><emphasis>Installed libraries</emphasis>: libz[a,so]</para>
|
||||
|
||||
</sect2>
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
&bookinfo;
|
||||
|
||||
<dedication>
|
||||
<title>Dedication</title>
|
||||
<para>This book is dedicated to my loving and supportive wife
|
||||
<emphasis>Beverly Beekmans</emphasis>.</para>
|
||||
</dedication>
|
||||
|
||||
&preface;
|
||||
|
||||
<part id="part1">
|
||||
<title>Part I - Introduction</title>
|
||||
&chapter01;
|
||||
&chapter02;
|
||||
</part>
|
||||
|
||||
<part id="part2">
|
||||
<title>Part II - Preparing for the build</title>
|
||||
&chapter03;
|
||||
&chapter04;
|
||||
&chapter05;
|
||||
</part>
|
||||
|
||||
<part id="part3">
|
||||
<title>Part III - Building the LFS system</title>
|
||||
&chapter06;
|
||||
&chapter07;
|
||||
&chapter08;
|
||||
&chapter09;
|
||||
</part>
|
||||
|
||||
<part id="part4">
|
||||
<title>Part IV - Appendices</title>
|
||||
&appendixa;
|
||||
&appendixb;
|
||||
</part>
|
|
@ -0,0 +1,60 @@
|
|||
<bookinfo>
|
||||
<title>Linux From Scratch</title>
|
||||
<subtitle>Version &version;</subtitle>
|
||||
|
||||
|
||||
<authorgroup>
|
||||
<author><firstname>Gerard</firstname><surname>Beekmans</surname></author>
|
||||
</authorgroup>
|
||||
|
||||
|
||||
<copyright id="copyright">
|
||||
<year>1999-2003</year>
|
||||
<holder>Gerard Beekmans</holder>
|
||||
</copyright>
|
||||
|
||||
|
||||
<abstract>
|
||||
<para>This book describes the process of creating a Linux system from
|
||||
scratch, using nothing but the sources of the required software.</para>
|
||||
</abstract>
|
||||
|
||||
|
||||
<legalnotice>
|
||||
<para>Copyright (c) 1999-2003, Gerard Beekmans</para>
|
||||
|
||||
<para>All rights reserved.</para>
|
||||
|
||||
<para>Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:</para>
|
||||
|
||||
<itemizedlist>
|
||||
|
||||
<listitem><para>Redistributions in any form must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.</para></listitem>
|
||||
|
||||
<listitem><para>Neither the name of "Linux From Scratch" nor the names of
|
||||
its contributors may be used to endorse or promote products derived from
|
||||
this material without specific prior written permission.</para></listitem>
|
||||
|
||||
<listitem><para>Any material derived from Linux From Scratch must contain
|
||||
a reference to the "Linux From Scratch" project.</para></listitem>
|
||||
|
||||
</itemizedlist>
|
||||
|
||||
<para>THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
|
||||
IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
||||
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
||||
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
|
||||
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</para>
|
||||
</legalnotice>
|
||||
|
||||
|
||||
</bookinfo>
|
|
@ -0,0 +1,57 @@
|
|||
<sect1 id="ch02-aboutdependencies">
|
||||
<title>About dependencies</title>
|
||||
<?dbhtml filename="aboutdependencies.html" dir="chapter02"?>
|
||||
|
||||
<!-- Leave this file in the repo until we figure out finally what to do with
|
||||
dependencies -->
|
||||
|
||||
<para>There are a few ways to compile a list of a package's installation
|
||||
dependencies. What we consider the best way is using the
|
||||
<command>strace</command> program available at <ulink
|
||||
url="http://www.wi.leidenuniv.nl/~wichert/strace/"/>.</para>
|
||||
|
||||
<para><command>strace</command> is a program that provides a trace of all
|
||||
system calls made by another program. One of the most useful system calls
|
||||
to trace when figuring out dependencies is the <emphasis>execve(2)</emphasis>
|
||||
system call, which is used to execute programs (see its man page for
|
||||
all the details). Whenever you run a program, be it from a shell or via a
|
||||
configure script or Makefile file, the execve call is made. If you trace
|
||||
these calls, you will know what programs were executed behind the
|
||||
scenes.</para>
|
||||
|
||||
<para>Here is a line of output from running a configure script:</para>
|
||||
|
||||
<screen>19580 execve("/bin/rm", ["rm", "-f", "conf19538", "conf19538.exe", "conf19538.file"], [/* 26 vars */]) = 0</screen>
|
||||
|
||||
<para>This line tells us that the <command>/bin/rm</command> program was
|
||||
run with a PID of 19580, which command line parameters it was given (rm -f
|
||||
conf195838 conf19538.exe conf19538.file) and its exit value (0).</para>
|
||||
|
||||
<para>For dependency purposes all we care about is that
|
||||
<command>/bin/rm</command> was run during the configure script, so this is
|
||||
an installation dependency. Without <command>rm</command>, the script
|
||||
wouldn't be able to run properly.</para>
|
||||
|
||||
<para>Unfortunately, this method is not foolproof. Configure scripts check
|
||||
for the presense of many programs, but not all of them are considered real
|
||||
dependencies. For instance, configure scripts may check for the presence of
|
||||
the <command>autoconf</command> program. It will be listed in the strace
|
||||
output, but it's not a real installation dependency. A package will in most
|
||||
if not all cases install just fine without that program. There are other
|
||||
such false positives.</para>
|
||||
|
||||
<para>This means automatic dependency gathering is never accurate. You will
|
||||
always need to validate the list and figure out the false positives. In
|
||||
some (rare) cases autoconf might be a real dependency, so you
|
||||
can't simply ignore all autoconf entries. A manual validation really is a
|
||||
requirement for an accurate list.</para>
|
||||
|
||||
<para>This book is not so verbose as to list exactly which program from which
|
||||
package is required for a successful installation (we used to, but it had
|
||||
become too much work to maintain it). The book will contain simply the
|
||||
names of packages you need to have installed. If you need the verbosity
|
||||
in the form of "package a needs file b and c from package d", have a look
|
||||
at <enter URL when it's available>.</para>
|
||||
|
||||
</sect1>
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
<sect1 id="ch02-abouttestsuites">
|
||||
<title>About the test suites</title>
|
||||
<?dbhtml filename="abouttestsuites.html" dir="chapter02"?>
|
||||
|
||||
<para>Most packages provide a test suite. Running the test suite for a newly
|
||||
built package is generally a good idea as it can provide a nice sanity check
|
||||
that everything compiled correctly. A test suite that passes its set of
|
||||
checks usually proves that the package is functioning mostly as the developer
|
||||
intended. It does not, however, guarantee that the package is totally bug
|
||||
free.</para>
|
||||
|
||||
<para>Some test suites are more important than others. For example, the test
|
||||
suites for the core toolchain packages -- GCC, Binutils, and Glibc (the C
|
||||
library) -- are of the utmost importance due to their central role in a
|
||||
properly functioning system. But be warned, the test suites for GCC and Glibc
|
||||
can take a very long period of time to complete, especially on slower
|
||||
hardware.</para>
|
||||
|
||||
<para>As you progress through the book and encounter the build commands to
|
||||
run the various test suites, we'll guide you on the relative importance of
|
||||
the test suite in question so that you can decide for yourself whether to
|
||||
run it or not.</para>
|
||||
|
||||
<note><para>A common problem when running the test suites for Binutils and GCC
|
||||
is running out of pseudo terminals (PTYs for short). The symptom is an unusually
|
||||
high number of failing tests. This can happen for any number of reasons. Most
|
||||
likely is that the host system doesn't have the <emphasis>devpts</emphasis> file
|
||||
system set up correctly. We'll discuss this in more detail later on in Chapter
|
||||
5.</para></note>
|
||||
|
||||
</sect1>
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
<sect1 id="ch03-creatingfs">
|
||||
<title>Creating a file system on the new partition</title>
|
||||
<?dbhtml filename="creatingfs.html" dir="chapter03"?>
|
||||
|
||||
<para>Now that we have a blank partition, we can create a file system on it.
|
||||
Most widely used in the Linux world is the second extended file system (ext2),
|
||||
but with the high-capacity hard disks of today the so-called journaling file
|
||||
systems are becoming increasingly popular. Here we will create an ext2 file
|
||||
system, but build instructions for other file systems can be found at <ulink
|
||||
url="&blfs-root;view/stable/postlfs/filesystems.html"/>.</para>
|
||||
|
||||
<para>To create an ext2 file system on the LFS partition run the following:</para>
|
||||
|
||||
<screen><userinput>mke2fs /dev/xxx</userinput></screen>
|
||||
|
||||
<para>Replace <filename>xxx</filename> with the name of the LFS partition
|
||||
(something like <filename>hda5</filename>).</para>
|
||||
|
||||
<para>If you created a (new) swap partition you need to initialize it as a
|
||||
swap partition too (also known as formatting, like you did above with
|
||||
<userinput>mke2fs</userinput>) by running:</para>
|
||||
|
||||
<screen><userinput>mkswap /dev/yyy</userinput></screen>
|
||||
|
||||
<para>Replace <filename>yyy</filename> with the name of the swap
|
||||
partition.</para>
|
||||
|
||||
</sect1>
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
<sect1 id="ch03-creatingpart">
|
||||
<title>Creating a new partition</title>
|
||||
<?dbhtml filename="creatingpart.html" dir="chapter03"?>
|
||||
|
||||
<para>In order to build our new Linux system, we will need some space:
|
||||
an empty disk partition. If you don't have a free partition, and no room
|
||||
on any of your hard disks to make one, then you could build LFS on the
|
||||
same partition as the one on which your current distribution is installed.
|
||||
This procedure is not recommended for your first LFS install, but if you
|
||||
are short on disk space, and you feel brave, take a look at the hint at
|
||||
<ulink url="&hints-root;lfs_next_to_existing_systems.txt"/>.</para>
|
||||
|
||||
<para>For a minimal system you will need a partition of around 1.2 GB.
|
||||
This is enough to store all the source tarballs and compile all the packages.
|
||||
But if you intend to use the LFS system as your primary Linux system, you
|
||||
will probably want to install additional software, and will need more space
|
||||
than this, probably around 2 or 3 GB.</para>
|
||||
|
||||
<para>As we almost never have enough RAM in our box, it is a good idea to
|
||||
use a small disk partition as swap space -- this space is used by the kernel
|
||||
to store seldom-used data to make room in memory for more urgent stuff.
|
||||
The swap partition for your LFS system can be the same one as for your host
|
||||
system, so you won't have to create another if your host system already uses
|
||||
a swap partition.</para>
|
||||
|
||||
<para>Start a disk partitioning program such as <userinput>cfdisk</userinput>
|
||||
or <userinput>fdisk</userinput> with an argument naming the hard disk upon
|
||||
which the new partition must be created -- for example
|
||||
<filename>/dev/hda</filename> for the primary IDE disk. Create a Linux native
|
||||
partition and a swap partition, if needed. Please refer to the man pages of
|
||||
<userinput>cfdisk</userinput> or <userinput>fdisk</userinput> if you don't yet
|
||||
know how to use the programs.</para>
|
||||
|
||||
<para>Remember the designation of your new partition -- something like
|
||||
<filename>hda5</filename>. This book will refer to it as the LFS partition.
|
||||
If you (now) also have a swap partition, remember its designation too. These
|
||||
names will later be needed for the <filename>/etc/fstab</filename> file.</para>
|
||||
|
||||
</sect1>
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
<sect1 id="ch03-mounting">
|
||||
<title>Mounting the new partition</title>
|
||||
<?dbhtml filename="mounting.html" dir="chapter03"?>
|
||||
|
||||
<para>Now that we've created a file system, we want to be able to access
|
||||
the partition. For that, we need to mount it, and have to choose a mount
|
||||
point. In this book we assume that the file system is mounted under
|
||||
<filename>/mnt/lfs</filename>, but it doesn't matter what directory
|
||||
you choose.</para>
|
||||
|
||||
<para>Choose a mount point and assign it to the LFS environment variable
|
||||
by running:</para>
|
||||
|
||||
<screen><userinput>export LFS=/mnt/lfs</userinput></screen>
|
||||
|
||||
<para>Now create the mount point and mount the LFS file system by running:</para>
|
||||
|
||||
<screen><userinput>mkdir -p $LFS
|
||||
mount /dev/xxx $LFS</userinput></screen>
|
||||
|
||||
<para>Replace <filename>xxx</filename> with the designation of the LFS
|
||||
partition.</para>
|
||||
|
||||
<para>If you have decided to use multiple partitions for LFS (say one for
|
||||
<filename>/</filename> and another for <filename>/usr</filename>), mount
|
||||
them like this:</para>
|
||||
|
||||
<screen><userinput>mkdir -p $LFS
|
||||
mount /dev/xxx $LFS
|
||||
mkdir $LFS/usr
|
||||
mount /dev/yyy $LFS/usr</userinput></screen>
|
||||
|
||||
<para>Of course, replace <filename>xxx</filename> and <filename>yyy</filename>
|
||||
with the appropriate partition names.</para>
|
||||
|
||||
<para>You should also ensure that this new partition is not mounted with
|
||||
permissions that are too restrictive (such as the nosuid, nodev or noatime
|
||||
options). You can run the <userinput>mount</userinput> command without any
|
||||
parameters to see with what options the LFS partition is mounted. If
|
||||
you see nosuid, nodev or noatime, you will need to remount it.</para>
|
||||
|
||||
<para>Now that we've made ourselves a place to work in, we're ready to download
|
||||
the packages.</para>
|
||||
|
||||
</sect1>
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
<sect1 id="ch05-addinguser">
|
||||
<title>Adding the user lfs</title>
|
||||
<?dbhtml filename="addinguser.html" dir="chapter05"?>
|
||||
|
||||
<para>When logged in as <emphasis>root</emphasis>, making a single mistake
|
||||
can damage or even wreck your system. Therefore we recommend that you
|
||||
build the packages in this chapter as an unprivileged user. You could
|
||||
of course use your own user name, but to make it easier to set up a clean
|
||||
work environment we'll create a new user <emphasis>lfs</emphasis> and
|
||||
use this one during the installation process. As <emphasis>root</emphasis>,
|
||||
issue the following commands to add the new user:</para>
|
||||
|
||||
<screen><userinput>useradd -s /bin/bash -m lfs
|
||||
passwd lfs</userinput></screen>
|
||||
|
||||
<para>Now grant this new user <emphasis>lfs</emphasis> full access to
|
||||
<filename class="directory">$LFS/tools</filename> by giving it ownership
|
||||
of the directory:</para>
|
||||
|
||||
<screen><userinput>chown lfs $LFS/tools</userinput></screen>
|
||||
|
||||
<para>If you made a separate working directory as suggested, give user
|
||||
<emphasis>lfs</emphasis> ownership of this directory too:</para>
|
||||
|
||||
<screen><userinput>chown lfs $LFS/sources</userinput></screen>
|
||||
|
||||
<para>Next, login as user <emphasis>lfs</emphasis>. This can be done via a
|
||||
virtual console, through a display manager, or with the following substitute
|
||||
user command:</para>
|
||||
|
||||
<screen><userinput>su - lfs</userinput></screen>
|
||||
|
||||
<para>The "<userinput>-</userinput>" instructs <userinput>su</userinput> to
|
||||
start a new, clean shell.</para>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,118 @@
|
|||
<sect1 id="ch05-binutils-pass1">
|
||||
<title>Installing Binutils-&binutils-version; - Pass 1</title>
|
||||
<?dbhtml filename="binutils-pass1.html" dir="chapter05"?>
|
||||
|
||||
<screen>Estimated build time: &binutils-time-tools-pass1;
|
||||
Estimated required disk space: &binutils-compsize-tools-pass1;</screen>
|
||||
|
||||
&aa-binutils-shortdesc;
|
||||
&aa-binutils-dep;
|
||||
|
||||
<sect2><title> </title><para> </para></sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Installation of Binutils</title>
|
||||
|
||||
<para>It is important that Binutils be the first package to get compiled,
|
||||
because both Glibc and GCC perform various tests on the available linker and
|
||||
assembler to determine which of their own features to enable.</para>
|
||||
|
||||
<note><para>Even though Binutils is an important toolchain package, we are not
|
||||
going to run the test suite at this early stage. First, the test suite framework
|
||||
is not yet in place and second, the programs from this first pass will soon be
|
||||
overwritten by those installed in the second pass.</para></note>
|
||||
|
||||
<para>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 CFLAGS and CXXFLAGS, we recommend unsetting or
|
||||
modifying them when building Binutils.</para>
|
||||
|
||||
<para>The Binutils documentation recommends building Binutils outside of the
|
||||
source directory in a dedicated build directory:</para>
|
||||
|
||||
<screen><userinput>mkdir ../binutils-build
|
||||
cd ../binutils-build</userinput></screen>
|
||||
|
||||
<note><para>If you want the SBU values listed in the rest of the book to be of
|
||||
any use, you will have to measure the time it takes to build this package. To
|
||||
achieve this easily, you could do something like:
|
||||
<userinput>time { ./configure ... && ... && ... && make install; }</userinput>.</para></note>
|
||||
|
||||
<para>Now prepare Binutils for compilation:</para>
|
||||
|
||||
<screen><userinput>../binutils-&binutils-version;/configure \
|
||||
--prefix=/tools --disable-nls</userinput></screen>
|
||||
|
||||
<para>The meaning of the configure options:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem><para><userinput>--prefix=/tools</userinput>: This tells the
|
||||
configure script to prepare to install the Binutils programs in the
|
||||
<filename>/tools</filename> directory.</para></listitem>
|
||||
|
||||
<listitem><para><userinput>--disable-nls</userinput>: This disables
|
||||
internationalization (a word often shortened to i18n). We don't need this
|
||||
for our static programs and <emphasis>nls</emphasis> often causes problems
|
||||
when linking statically.</para></listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Continue with compiling the package:</para>
|
||||
|
||||
<screen><userinput>make configure-host
|
||||
make LDFLAGS="-all-static"</userinput></screen>
|
||||
|
||||
<para>The meaning of the make parameters:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem><para><userinput>configure-host</userinput>: This forces all the
|
||||
subdirectories to be configured immediately. A statically linked build will
|
||||
fail without it. We therefore use this option to work around the
|
||||
problem.</para></listitem>
|
||||
|
||||
<listitem><para><userinput>LDFLAGS="-all-static"</userinput>: This tells the
|
||||
linker that all the Binutils programs should be linked statically. However,
|
||||
strictly speaking, <userinput>"-all-static"</userinput> is first passed to the
|
||||
<emphasis>libtool</emphasis> program which then passes
|
||||
<userinput>"-static"</userinput> on to the linker.</para></listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>And install the package:</para>
|
||||
|
||||
<screen><userinput>make install</userinput></screen>
|
||||
|
||||
<para>Now prepare the linker for the "locking in" of Glibc later on:</para>
|
||||
|
||||
<screen><userinput>make -C ld clean
|
||||
make -C ld LDFLAGS="-all-static" LIB_PATH=/tools/lib</userinput></screen>
|
||||
|
||||
<para>The meaning of the make parameters:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem><para><userinput>-C ld clean</userinput>: This tells the make program
|
||||
to remove all the compiled files, but only in the <filename>ld</filename>
|
||||
subdirectory.</para></listitem>
|
||||
|
||||
<listitem><para><userinput>-C ld LDFLAGS="-all-static" LIB_PATH=/tools/lib</userinput>:
|
||||
This option rebuilds everything in the <filename>ld</filename> subdirectory.
|
||||
Specifying the LIB_PATH makefile variable on the command line allows us to
|
||||
override the default value and have it point to our temporary tools location.
|
||||
The value of this variable specifies the linker's default library search path.
|
||||
You'll see how this preparation is used later on in the
|
||||
chapter.</para></listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<!-- HACK - Force some whitespace to appease tidy -->
|
||||
<literallayout></literallayout>
|
||||
|
||||
<warning><para>Do not yet remove the Binutils build and source directories. You
|
||||
will need them again in their current state a bit further on in this
|
||||
chapter.</para></warning>
|
||||
|
||||
<!-- HACK - Force some whitespace to appease tidy -->
|
||||
<literallayout></literallayout>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
|
@ -0,0 +1,78 @@
|
|||
<sect1 id="ch05-binutils-pass2">
|
||||
<title>Installing Binutils-&binutils-version; - Pass 2</title>
|
||||
<?dbhtml filename="binutils-pass2.html" dir="chapter05"?>
|
||||
|
||||
<screen>Estimated build time: &binutils-time-tools-pass2;
|
||||
Estimated required disk space: &binutils-compsize-tools-pass2;</screen>
|
||||
|
||||
|
||||
<sect2><title> </title><para> </para></sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Re-installation of Binutils</title>
|
||||
|
||||
<para>Create a separate build directory again:</para>
|
||||
|
||||
<screen><userinput>mkdir ../binutils-build
|
||||
cd ../binutils-build</userinput></screen>
|
||||
|
||||
<para>Now prepare Binutils for compilation:</para>
|
||||
|
||||
<screen><userinput>../binutils-&binutils-version;/configure --prefix=/tools \
|
||||
--enable-shared --with-lib-path=/tools/lib</userinput></screen>
|
||||
|
||||
<para>The meaning of the new configure option:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem><para><userinput>--with-lib-path=/tools/lib</userinput>: This tells
|
||||
the configure script to specify the default library search path. We don't want
|
||||
the library search path to contain library directories from the host
|
||||
system.</para></listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Before starting to build Binutils, remember to unset any environment
|
||||
variables that override the default optimization flags.</para>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput>make </userinput></screen>
|
||||
|
||||
<note><para>It's worth pointing out that running the Binutils test suite here
|
||||
is considered not as important as running it in
|
||||
<xref linkend="chapter06"/>.</para></note>
|
||||
|
||||
<para>Test the results (there should be no unexpected failures here, expected
|
||||
failures are fine):</para>
|
||||
|
||||
<screen><userinput>make check</userinput></screen>
|
||||
|
||||
<para>Unfortunately, there is no easy way to view the test results summary like
|
||||
there was for the previous GCC package. However, if a failure occurs here, it
|
||||
should be easy to spot. The output shown will contain something like:</para>
|
||||
|
||||
<blockquote><screen>make[1]: *** [check-binutils] Error 2</screen></blockquote>
|
||||
|
||||
<para>And install the package:</para>
|
||||
|
||||
<screen><userinput>make install</userinput></screen>
|
||||
|
||||
<para>Now prepare Binutils for the re-adjusting of the toolchain in the next
|
||||
chapter:</para>
|
||||
|
||||
<screen><userinput>make -C ld clean
|
||||
make -C ld LIB_PATH=/usr/lib:/lib</userinput></screen>
|
||||
|
||||
<!-- HACK - Force some whitespace to appease tidy -->
|
||||
<literallayout></literallayout>
|
||||
|
||||
<warning><para>Do not yet remove the Binutils source and build directories.
|
||||
We'll need these directories again in the next chapter in the state they are in
|
||||
now.</para></warning>
|
||||
|
||||
<!-- HACK - Force some whitespace to appease tidy -->
|
||||
<literallayout></literallayout>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
<sect1 id="ch05-coreutils">
|
||||
<title>Installing Coreutils-&coreutils-version;</title>
|
||||
<?dbhtml filename="coreutils.html" dir="chapter05"?>
|
||||
|
||||
<screen>Estimated build time: &coreutils-time-tools;
|
||||
Estimated required disk space: &coreutils-compsize-tools;</screen>
|
||||
|
||||
&aa-coreutils-shortdesc;
|
||||
&aa-coreutils-dep;
|
||||
|
||||
<sect2><title> </title><para> </para></sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Installation of Coreutils</title>
|
||||
|
||||
<para>Prepare Coreutils for compilation:</para>
|
||||
|
||||
<screen><userinput>./configure --prefix=/tools</userinput></screen>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput>make</userinput></screen>
|
||||
|
||||
<para>This package has a test suite available which can perform a number of
|
||||
checks to ensure it built correctly. Should you choose to run it, the
|
||||
following command will do so:</para>
|
||||
|
||||
<screen><userinput>make RUN_EXPENSIVE_TESTS=yes check</userinput></screen>
|
||||
|
||||
<para>The meaning of the make parameter:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem><para><userinput>RUN_EXPENSIVE_TESTS=yes</userinput>: This tells the
|
||||
test suite to run several additional tests that are considered relatively
|
||||
expensive on some platforms. However, they are generally not a problem on
|
||||
Linux.</para></listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>And install the package:</para>
|
||||
|
||||
<screen><userinput>make install</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
<sect1 id="ch05-creatingtoolsdir">
|
||||
<title>Creating the $LFS/tools directory</title>
|
||||
<?dbhtml filename="creatingtoolsdir.html" dir="chapter05"?>
|
||||
|
||||
<para>All programs compiled in this chapter will be installed under <filename
|
||||
class="directory">$LFS/tools</filename> to keep them separate from the
|
||||
programs compiled in the next chapter. The programs compiled here are only
|
||||
temporary tools and won't be a part of the final LFS system and by keeping them
|
||||
in a separate directory, we can later easily throw them away.</para>
|
||||
|
||||
<para>If later you wish to search through the binaries of your system to see
|
||||
what files they make use of or link against, then to make this searching easier
|
||||
you may want to choose a unique name. Instead of the simple "tools" you could
|
||||
use something like "tools-for-lfs".</para>
|
||||
|
||||
<para>Create the required directory by running the following:</para>
|
||||
|
||||
<screen><userinput>mkdir $LFS/tools</userinput></screen>
|
||||
|
||||
<para>The next step is to create a <filename>/tools</filename> symlink on
|
||||
your host system. It will point to the directory we just created on the LFS
|
||||
partition:</para>
|
||||
|
||||
<screen><userinput>ln -s $LFS/tools /</userinput></screen>
|
||||
|
||||
<para>This symlink enables us to compile our toolchain so that it always
|
||||
refers to <filename>/tools</filename>, meaning that the compiler, assembler
|
||||
and linker will work both in this chapter (when we are still using some tools
|
||||
from the host) <emphasis>and</emphasis> in the next (when we are chrooted to
|
||||
the LFS partition).</para>
|
||||
|
||||
<note><para>Study the above command closely. It can be confusing at first
|
||||
glance. The <userinput>ln</userinput> command has several syntax variations,
|
||||
so be sure to check the ln man page before reporting what you may think is an
|
||||
error.</para></note>
|
||||
|
||||
</sect1>
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
<sect1 id="ch05-dejagnu">
|
||||
<title>Installing DejaGnu-&dejagnu-version;</title>
|
||||
<?dbhtml filename="dejagnu.html" dir="chapter05"?>
|
||||
|
||||
<screen>Estimated build time: &dejagnu-time-tools;
|
||||
Estimated required disk space: &dejagnu-compsize-tools;</screen>
|
||||
|
||||
&aa-dejagnu-shortdesc;
|
||||
&aa-dejagnu-dep;
|
||||
|
||||
<sect2><title> </title><para> </para></sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Installation of DejaGnu</title>
|
||||
|
||||
<para>Prepare DejaGnu for compilation:</para>
|
||||
|
||||
<screen><userinput>./configure --prefix=/tools</userinput></screen>
|
||||
|
||||
<para>Build and install the package:</para>
|
||||
|
||||
<screen><userinput>make install</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
|
@ -0,0 +1,69 @@
|
|||
<sect1 id="ch05-expect">
|
||||
<title>Installing Expect-&expect-version;</title>
|
||||
<?dbhtml filename="expect.html" dir="chapter05"?>
|
||||
|
||||
<screen>Estimated build time: &expect-time-tools;
|
||||
Estimated required disk space: &expect-compsize-tools;</screen>
|
||||
|
||||
&aa-expect-shortdesc;
|
||||
&aa-expect-dep;
|
||||
|
||||
<sect2><title> </title><para> </para></sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Installation of Expect</title>
|
||||
|
||||
<para>First apply a patch:</para>
|
||||
|
||||
<screen><userinput>patch -Np1 -i ../&expect-patch;</userinput></screen>
|
||||
|
||||
<para>This fixes a bug in Expect that can result in bogus failures during the
|
||||
GCC test suite run.</para>
|
||||
|
||||
<para>Now prepare Expect for compilation:</para>
|
||||
|
||||
<screen><userinput>./configure --prefix=/tools --with-tcl=/tools/lib --with-x=no</userinput></screen>
|
||||
|
||||
<para>The meaning of the configure options:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem><para><userinput>--with-tcl=/tools/lib</userinput>: This ensures that
|
||||
the configure script finds the Tcl installation in our temporary tools location.
|
||||
We don't want it to find an existing one that may possibly reside on the host
|
||||
system.</para></listitem>
|
||||
|
||||
<listitem><para><userinput>--with-x=no</userinput>: This tells the configure
|
||||
script not to search for Tk (the Tcl GUI component) or the X Window System
|
||||
libraries, both of which may possibly reside on the host system.</para></listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Build the package:</para>
|
||||
|
||||
<screen><userinput>make</userinput></screen>
|
||||
|
||||
<para>This package has a test suite available which can perform a number of
|
||||
checks to ensure it built correctly. However, the Expect test suite here in
|
||||
Chapter 5 is known to experience failures under certain host conditions that
|
||||
are not fully understood. Therefore, test suite failures here are not
|
||||
surprising, but are not considered critical. Should you choose to run the test
|
||||
suite, the following command will do so:</para>
|
||||
|
||||
<screen><userinput>make test</userinput></screen>
|
||||
|
||||
<para>And install:</para>
|
||||
|
||||
<screen><userinput>make SCRIPTS="" install</userinput></screen>
|
||||
|
||||
<para>The meaning of the make parameter:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem><para><userinput>SCRIPTS=""</userinput>: This prevents installation of
|
||||
the supplementary expect scripts which are not needed.</para></listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>You can now remove the source directories of both Tcl and Expect.</para>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
|
@ -0,0 +1,101 @@
|
|||
<sect1 id="ch05-gcc-pass1">
|
||||
<title>Installing GCC-&gcc-version; - Pass 1</title>
|
||||
<?dbhtml filename="gcc-pass1.html" dir="chapter05"?>
|
||||
|
||||
<screen>Estimated build time: &gcc-time-tools-pass1;
|
||||
Estimated required disk space: &gcc-compsize-tools-pass1;</screen>
|
||||
|
||||
&aa-gcc-shortdesc;
|
||||
&aa-gcc-dep;
|
||||
|
||||
<sect2><title> </title><para> </para></sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Installation of GCC</title>
|
||||
|
||||
<para>Unpack only the GCC-core tarball, as we won't be needing a C++ compiler
|
||||
for the moment.</para>
|
||||
|
||||
<note><para>Even though GCC is an important toolchain package, we are not
|
||||
going to run the test suite at this early stage. First, the test suite framework
|
||||
is not yet in place and second, the programs from this first pass will soon be
|
||||
overwritten by those installed in the second pass.</para></note>
|
||||
|
||||
<para>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 CFLAGS and CXXFLAGS, we recommend unsetting
|
||||
or modifying them when building GCC.</para>
|
||||
|
||||
<para>The GCC documentation recommends building GCC outside of the source
|
||||
directory in a dedicated build directory:</para>
|
||||
|
||||
<screen><userinput>mkdir ../gcc-build
|
||||
cd ../gcc-build</userinput></screen>
|
||||
|
||||
<para>Prepare GCC for compilation:</para>
|
||||
|
||||
<screen><userinput>../gcc-&gcc-version;/configure --prefix=/tools \
|
||||
--with-local-prefix=/tools \
|
||||
--disable-nls --enable-shared \
|
||||
--enable-languages=c</userinput></screen>
|
||||
|
||||
<para>The meaning of the configure options:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem><para><userinput>--with-local-prefix=/tools</userinput>: The
|
||||
purpose of this switch is to remove <filename>/usr/local/include</filename>
|
||||
from <userinput>gcc</userinput>'s include search path. This is not absolutely
|
||||
essential; however, we want to try to minimize the influence of the host
|
||||
system, thus making this a sensible thing to do.</para></listitem>
|
||||
|
||||
<listitem><para><userinput>--enable-shared</userinput>: This switch may
|
||||
seem counter-intuitive at first. But using it allows the building of
|
||||
<filename>libgcc_s.so.1</filename> and <filename>libgcc_eh.a</filename>, and
|
||||
having <filename>libgcc_eh.a</filename> available ensures that the configure
|
||||
script for Glibc (the next package we compile) produces the proper results.
|
||||
Note that the <userinput>gcc</userinput> binaries will still be linked
|
||||
statically, as this is controlled by the <userinput>-static</userinput>
|
||||
value of BOOT_LDFLAGS further on.</para></listitem>
|
||||
|
||||
<listitem><para><userinput>--enable-languages=c</userinput>: This option
|
||||
ensures that only the C compiler is built. The option is only needed when you
|
||||
have downloaded and unpacked the full GCC tarball.</para></listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Continue with compiling the package:</para>
|
||||
|
||||
<screen><userinput>make BOOT_LDFLAGS="-static" bootstrap</userinput></screen>
|
||||
|
||||
<para>The meaning of the make parameters:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem><para><userinput>BOOT_LDFLAGS="-static"</userinput>: This tells
|
||||
GCC to link its programs statically.</para></listitem>
|
||||
|
||||
<listitem><para><userinput>bootstrap</userinput>: This target doesn't just
|
||||
compile GCC, but compiles it several times. It uses the programs compiled in
|
||||
a first round to compile itself a second time, and then again a third time.
|
||||
It then compares these second and third compiles to make sure it can
|
||||
reproduce itself flawlessly, which most probably means that it was
|
||||
compiled correctly.</para></listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>And install the package:</para>
|
||||
|
||||
<screen><userinput>make install</userinput></screen>
|
||||
|
||||
<para>As a finishing touch we'll create the <filename
|
||||
class="symlink">/tools/bin/cc</filename> symlink. Many programs and
|
||||
scripts run <userinput>cc</userinput> instead of <userinput>gcc</userinput>,
|
||||
a thing meant to keep programs generic and therefore usable on all kinds of
|
||||
Unix systems. Not everybody has the GNU C compiler installed. Simply running
|
||||
<userinput>cc</userinput> leaves the system administrator free to decide what
|
||||
C compiler to install, as long as there's a symlink pointing to it:</para>
|
||||
|
||||
<screen><userinput>ln -sf gcc /tools/bin/cc</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
|
@ -0,0 +1,174 @@
|
|||
<sect1 id="ch05-gcc-pass2">
|
||||
<title>Installing GCC-&gcc-version; - Pass 2</title>
|
||||
<?dbhtml filename="gcc-pass2.html" dir="chapter05"?>
|
||||
|
||||
<screen>Estimated build time: &gcc-time-tools-pass2;
|
||||
Estimated required disk space: &gcc-compsize-tools-pass2;</screen>
|
||||
|
||||
|
||||
<sect2><title> </title><para> </para></sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Re-installation of GCC</title>
|
||||
|
||||
<para>The tools required to test GCC and Binutils are installed now (Tcl, Expect
|
||||
and DejaGnu). We can continue on rebuilding GCC and Binutils, link them against
|
||||
the new Glibc, and test them properly. One thing to note, however, is that these
|
||||
test suites are highly dependent on properly functioning pseudo terminals (PTYs)
|
||||
which are provided by your host distribution. These days, PTYs are most commonly
|
||||
implemented via the <emphasis>devpts</emphasis> file system. You can quickly
|
||||
check if your host system is set up correctly in this regard by performing a
|
||||
simple test:</para>
|
||||
|
||||
<screen><userinput>expect -c "spawn ls"</userinput></screen>
|
||||
|
||||
<para>If you receive the message:</para>
|
||||
|
||||
<blockquote><screen>The system has no more ptys. Ask your system administrator to create more.</screen></blockquote>
|
||||
|
||||
<para>Your host distribution is not set up for proper PTY operation. In this
|
||||
case there is no point in running the test suites for GCC and Binutils until you
|
||||
are able to resolve the issue. You can consult the LFS Wiki at
|
||||
<ulink url="http://wiki.linuxfromscratch.org/"/> for more information on how to
|
||||
get PTYs working.</para>
|
||||
|
||||
<para>Unpack all three GCC tarballs (-core, -g++, and -testsuite) in one and the
|
||||
same working directory. They will all unfold into a single
|
||||
<filename>gcc-&gcc-version;/</filename> subdirectory.</para>
|
||||
|
||||
<para>First correct one problem and make an essential adjustment:</para>
|
||||
|
||||
<screen><userinput>patch -Np1 -i ../&gcc-nofixincludes-patch;
|
||||
patch -Np1 -i ../&gcc-specs-patch;</userinput></screen>
|
||||
|
||||
<para>The first patch disables the GCC "fixincludes" script. We mentioned this
|
||||
briefly earlier, but a slightly more in-depth explanation of the fixincludes
|
||||
process is warranted here. Under normal circumstances, the GCC fixincludes
|
||||
script scans your system for header files that need to be fixed. It might find
|
||||
that some Glibc header files on your host system need to be fixed, fix them and
|
||||
put them in the GCC private include directory. Then, later on in
|
||||
<xref linkend="chapter06"/>, after we've installed the newer Glibc, this
|
||||
private include directory would be searched before the system include
|
||||
directory, resulting in GCC finding the fixed headers from the host system,
|
||||
which would most likely not match the Glibc version actually used for the LFS
|
||||
system.</para>
|
||||
|
||||
<para>The last patch changes GCC's default location of the dynamic linker
|
||||
(typically <filename>ld-linux.so.2</filename>). It also removes
|
||||
<filename class="directory">/usr/include</filename> from GCC's include search
|
||||
path. Patching now rather than adjusting the specs file after installation
|
||||
ensures that our new dynamic linker gets used during the actual build of GCC.
|
||||
That is, all the final (and temporary) binaries created during the build will
|
||||
link against the new Glibc.</para>
|
||||
|
||||
<important><para>These patches are <emphasis>critical</emphasis> in ensuring a
|
||||
successful overall build. Do not forget to apply them.</para></important>
|
||||
|
||||
<para>Create a separate build directory again:</para>
|
||||
|
||||
<screen><userinput>mkdir ../gcc-build
|
||||
cd ../gcc-build</userinput></screen>
|
||||
|
||||
<para>Before starting to build GCC, remember to unset any environment
|
||||
variables that override the default optimization flags.</para>
|
||||
|
||||
<para>Now prepare GCC for compilation:</para>
|
||||
|
||||
<screen><userinput>../gcc-&gcc-version;/configure --prefix=/tools \
|
||||
--with-local-prefix=/tools \
|
||||
--enable-clocale=gnu --enable-shared \
|
||||
--enable-threads=posix --enable-__cxa_atexit \
|
||||
--enable-languages=c,c++</userinput></screen>
|
||||
|
||||
<para>The meaning of the new configure options:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem><para><userinput>--enable-threads=posix</userinput>: This enables
|
||||
C++ exception handling for multi-threaded code.</para></listitem>
|
||||
|
||||
<listitem><para><userinput>--enable-__cxa_atexit</userinput>: This option
|
||||
allows use of __cxa_atexit, rather than atexit, to register C++ destructors for
|
||||
local statics and global objects and is essential for fully standards-compliant
|
||||
handling of destructors. It also affects the C++ ABI and therefore results in
|
||||
C++ shared libraries and C++ programs that are interoperable with other Linux
|
||||
distributions.</para></listitem>
|
||||
|
||||
<listitem><para><userinput>--enable-clocale=gnu</userinput>: This option ensures
|
||||
the correct locale model is selected for the C++ libraries under all
|
||||
circumstances. If the configure script finds the <emphasis>de_DE</emphasis>
|
||||
locale installed, it will select the correct model of <emphasis>gnu</emphasis>.
|
||||
However, people who don't install the <emphasis>de_DE</emphasis> locale, run the
|
||||
risk of building ABI incompatible C++ libraries due to the wrong locale model of
|
||||
<emphasis>generic</emphasis> being selected.</para></listitem>
|
||||
|
||||
<listitem><para><userinput>--enable-languages=c,c++</userinput>: This option is
|
||||
needed to ensure that both C and C++ compilers are built.</para></listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput>make</userinput></screen>
|
||||
|
||||
<para>There is no need to use the <userinput>bootstrap</userinput> target now,
|
||||
as the compiler we're using to compile this GCC was built from the exact same
|
||||
version of the GCC sources we used earlier.</para>
|
||||
|
||||
<note><para>It's worth pointing out that running the GCC test suite here
|
||||
is considered not as important as running it in
|
||||
<xref linkend="chapter06"/>.</para></note>
|
||||
|
||||
<para>Test the results:</para>
|
||||
|
||||
<screen><userinput>make -k check</userinput></screen>
|
||||
|
||||
<para>The <userinput>-k</userinput> flag is used to make the test suite run
|
||||
through to completion and not stop at the first failure. The GCC test suite is
|
||||
very comprehensive and is almost guaranteed to generate a few failures. To get
|
||||
a summary of the test suite results, run this:</para>
|
||||
|
||||
<screen><userinput>../gcc-&gcc-version;/contrib/test_summary | more</userinput></screen>
|
||||
|
||||
<para>You can compare your results to those posted to the gcc-testresults
|
||||
mailing list for similar configurations to your own. For an example of how
|
||||
current GCC-&gcc-version; should look on i686-pc-linux-gnu, see
|
||||
<ulink url="http://gcc.gnu.org/ml/gcc-testresults/2003-08/msg01612.html"/>.</para>
|
||||
|
||||
<para>Note that the results contain:</para>
|
||||
|
||||
<screen>* 1 XPASS (unexpected pass) for g++
|
||||
* 1 FAIL (unexpected failure) for g++
|
||||
* 2 FAIL for gcc
|
||||
* 26 XPASS's for libstdc++</screen>
|
||||
|
||||
<para>The unexpected pass for g++ is due to the use of
|
||||
<userinput>--enable-__cxa_atexit</userinput>. Apparently not all platforms
|
||||
supported by GCC have support for "__cxa_atexit" in their C libraries, so this
|
||||
test is not always expected to pass.</para>
|
||||
|
||||
<para>The 26 unexpected passes for libstdc++ are due to the use of
|
||||
<userinput>--enable-clocale=gnu</userinput>, which is the correct choice on
|
||||
Glibc-based systems of versions 2.2.5 and above. The underlying locale support
|
||||
in the GNU C library is superior to that of the otherwise selected "generic"
|
||||
model (which may be applicable if for instance you were using Newlibc, Sun-libc
|
||||
or whatever libc). The libstdc++ test suite is apparently expecting the
|
||||
"generic" model, hence those tests are not always expected to pass.</para>
|
||||
|
||||
<para>Unexpected failures often cannot be avoided. The GCC developers are
|
||||
usually aware of them but haven't yet gotten around to fixing them. In short,
|
||||
unless your results are vastly different from those at the above URL, it is safe
|
||||
to continue on.</para>
|
||||
|
||||
<para>And finally install the package:</para>
|
||||
|
||||
<screen><userinput>make install</userinput></screen>
|
||||
|
||||
<note><para>At this point it is strongly recommended to repeat the sanity check
|
||||
we performed earlier in the chapter. Refer back to
|
||||
<xref linkend="ch05-locking-glibc"/> and repeat the check. If the results are
|
||||
wrong, then most likely you forgot to apply the above mentioned GCC Specs
|
||||
patch.</para></note>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
<sect1 id="ch05-gettext">
|
||||
<title>Installing Gettext-&gettext-version;</title>
|
||||
<?dbhtml filename="gettext.html" dir="chapter05"?>
|
||||
|
||||
<screen>Estimated build time: &gettext-time-tools;
|
||||
Estimated required disk space: &gettext-compsize-tools;</screen>
|
||||
|
||||
&aa-gettext-shortdesc;
|
||||
&aa-gettext-dep;
|
||||
|
||||
<sect2><title> </title><para> </para></sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Installation of Gettext</title>
|
||||
|
||||
<para>Prepare Gettext for compilation:</para>
|
||||
|
||||
<screen><userinput>./configure --prefix=/tools</userinput></screen>
|
||||
|
||||
<para>Compile the programs:</para>
|
||||
|
||||
<screen><userinput>make</userinput></screen>
|
||||
|
||||
<para>This package has a test suite available which can perform a number of
|
||||
checks to ensure it built correctly. However, the Gettext test suite here in
|
||||
Chapter 5 is known to experience failures under certain host conditions -- for
|
||||
example, if it finds a Java compiler on the host. The Gettext test suite takes
|
||||
a very long time to run and is not considered critical. Therefore, we don't
|
||||
recommend running it here. Should you choose to run it, the following command
|
||||
will do so:</para>
|
||||
|
||||
<screen><userinput>make check</userinput></screen>
|
||||
|
||||
<para>And install the package:</para>
|
||||
|
||||
<screen><userinput>make install</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
|
@ -0,0 +1,181 @@
|
|||
<sect1 id="ch05-glibc">
|
||||
<title>Installing Glibc-&glibc-version;</title>
|
||||
<?dbhtml filename="glibc.html" dir="chapter05"?>
|
||||
|
||||
<screen>Estimated build time: &glibc-time-tools;
|
||||
Estimated required disk space: &glibc-compsize-tools;</screen>
|
||||
|
||||
&aa-glibc-shortdesc;
|
||||
&aa-glibc-dep;
|
||||
|
||||
<sect2><title> </title><para> </para></sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Glibc installation</title>
|
||||
|
||||
<para>Before starting to install Glibc, you must <userinput>cd</userinput>
|
||||
into the <filename>glibc-&glibc-version;</filename> directory and unpack
|
||||
Glibc-linuxthreads in that directory, not in the directory where you usually
|
||||
unpack all the sources.</para>
|
||||
|
||||
<note><para>We are going to run the test suite for Glibc in this chapter.
|
||||
However, it's worth pointing out that running the Glibc test suite here
|
||||
is considered not as important as running it in
|
||||
<xref linkend="chapter06"/>.</para></note>
|
||||
|
||||
<para>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 CFLAGS and CXXFLAGS, we recommend unsetting
|
||||
them when building Glibc.</para>
|
||||
|
||||
<para>Basically, compiling Glibc in any other way than the book suggests
|
||||
is putting the stability of your system at risk.</para>
|
||||
|
||||
<para>Though it is a harmless message, the install stage of Glibc will
|
||||
complain about the absence of <filename>/tools/etc/ld.so.conf</filename>.
|
||||
Fix this annoying little warning with:</para>
|
||||
|
||||
<screen><userinput>mkdir /tools/etc
|
||||
touch /tools/etc/ld.so.conf</userinput></screen>
|
||||
|
||||
<para>Also, Glibc has a subtle problem when compiled with GCC &gcc-version;.
|
||||
Apply the following patch to fix this:</para>
|
||||
|
||||
<screen><userinput>patch -Np1 -i ../&glibc-sscanf-patch;</userinput></screen>
|
||||
|
||||
<para>The Glibc documentation recommends building Glibc outside of the source
|
||||
directory in a dedicated build directory:</para>
|
||||
|
||||
<screen><userinput>mkdir ../glibc-build
|
||||
cd ../glibc-build</userinput></screen>
|
||||
|
||||
<para>Next, prepare Glibc for compilation:</para>
|
||||
|
||||
<screen><userinput>../glibc-&glibc-version;/configure --prefix=/tools \
|
||||
--disable-profile --enable-add-ons \
|
||||
--with-headers=/tools/include \
|
||||
--with-binutils=/tools/bin \
|
||||
--without-gd</userinput></screen>
|
||||
|
||||
<para>The meaning of the configure options:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem><para><userinput>--disable-profile</userinput>: This disables the
|
||||
building of the libraries with profiling information. Omit this option if you
|
||||
plan to do profiling.</para></listitem>
|
||||
|
||||
<listitem><para><userinput>--enable-add-ons</userinput>: This enables any
|
||||
add-ons that were installed with Glibc, in our case Linuxthreads.</para></listitem>
|
||||
|
||||
<listitem><para><userinput>--with-binutils=/tools/bin</userinput> and
|
||||
<userinput>--with-headers=/tools/include</userinput>: Strictly speaking
|
||||
these switches are not required. But they ensure nothing can go wrong with
|
||||
regard to what kernel headers and Binutils programs get used during the
|
||||
Glibc build.</para></listitem>
|
||||
|
||||
<listitem><para><userinput> --without-gd</userinput>: This switch ensures
|
||||
that we don't build the <userinput>memusagestat</userinput> program, which
|
||||
strangely enough insists on linking against the host's libraries (libgd,
|
||||
libpng, libz, and so forth).</para></listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>During this stage you might see the following warning:</para>
|
||||
|
||||
<blockquote><screen>configure: WARNING:
|
||||
*** These auxiliary programs are missing or incompatible versions: msgfmt
|
||||
*** some features will be disabled.
|
||||
*** Check the INSTALL file for required versions.</screen></blockquote>
|
||||
|
||||
<para>The missing or incompatible <filename>msgfmt</filename> program is
|
||||
generally harmless, but it's believed it can sometimes cause problems when
|
||||
running the test suite.</para>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput>make</userinput></screen>
|
||||
|
||||
<para>Run the test suite:</para>
|
||||
|
||||
<screen><userinput>make check</userinput></screen>
|
||||
|
||||
<para>The Glibc test suite is highly dependent on certain functions of your host
|
||||
system, in particular the kernel. Additionally, here in this chapter some tests
|
||||
can be adversely affected by existing tools or environmental issues on the host
|
||||
system. Of course, these won't be a problem when we run the Glibc test suite
|
||||
inside the chroot environment of <xref linkend="chapter06"/>. In general, the
|
||||
Glibc test suite is always expected to pass. However, as mentioned above, some
|
||||
failures are unavoidable in certain circumstances. Here is a list of the most
|
||||
common issues we are aware of:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem><para>The <emphasis>math</emphasis> tests sometimes fail when running
|
||||
on systems where the CPU is not a relatively new genuine Intel or authentic AMD.
|
||||
Certain optimization settings are also known to be a factor here.</para></listitem>
|
||||
|
||||
<listitem><para>The <emphasis>gettext</emphasis> test sometimes fails due to
|
||||
host system issues. The exact reasons are not yet clear.</para></listitem>
|
||||
|
||||
<listitem><para>The <emphasis>atime</emphasis> test sometimes fails when the
|
||||
LFS partition is mounted with the <emphasis>noatime</emphasis> option, or due
|
||||
to other file system quirks.</para></listitem>
|
||||
|
||||
<listitem><para>The <emphasis>shm</emphasis> test might fail when the host
|
||||
system is running the devfs file system but doesn't have the tmpfs file system
|
||||
mounted at <filename>/dev/shm</filename> due to lack of support for tmpfs in
|
||||
the kernel.</para></listitem>
|
||||
|
||||
<listitem><para>When running on older and slower hardware, some tests might
|
||||
fail due to test timeouts being exceeded.</para></listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>In summary, don't worry too much if you see Glibc test suite failures
|
||||
here in this chapter. The Glibc in <xref linkend="chapter06"/> is the one we'll
|
||||
ultimately end up using so that is the one we would really like to see pass.
|
||||
But please keep in mind, even in <xref linkend="chapter06"/> some failures
|
||||
could still occur -- the <emphasis>math</emphasis>
|
||||
tests for example. When experiencing a failure, make a note of it, then
|
||||
continue by reissuing the <userinput>make check</userinput>. The test suite
|
||||
should pick up where it left off and continue on. You can circumvent this
|
||||
stop-start sequence by issuing a <userinput>make -k check</userinput>. But if
|
||||
you do that, be sure to log the output so that you can later peruse the log
|
||||
file and examine the total number of failures.</para>
|
||||
|
||||
<para>Now install the package:</para>
|
||||
|
||||
<screen><userinput>make install</userinput></screen>
|
||||
|
||||
<para>Different countries and cultures have varying conventions for how to
|
||||
communicate. These conventions range from very simple ones, such as the format
|
||||
for representing dates and times, to very complex ones, such as the language
|
||||
spoken. The "internationalization" of GNU programs works by means of
|
||||
<emphasis>locales</emphasis>. We'll install the Glibc locales now:</para>
|
||||
|
||||
<screen><userinput>make localedata/install-locales</userinput></screen>
|
||||
|
||||
<para>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
|
||||
<userinput>localedef</userinput> command. Information on this can be
|
||||
found in the <filename>INSTALL</filename> file in the
|
||||
<filename>glibc-&glibc-version;</filename> source. However, there are a number
|
||||
of locales that are essential for the tests of future packages to pass, in
|
||||
particular, the <emphasis>libstdc++</emphasis> tests from GCC. The following
|
||||
instructions, instead of the install-locales target above, will install
|
||||
the minimum set of locales necessary for the tests to run successfully:</para>
|
||||
|
||||
<screen><userinput>mkdir -p /tools/lib/locale
|
||||
localedef -i de_DE -f ISO-8859-1 de_DE
|
||||
localedef -i de_DE@euro -f ISO-8859-15 de_DE@euro
|
||||
localedef -i en_HK -f ISO-8859-1 en_HK
|
||||
localedef -i en_PH -f ISO-8859-1 en_PH
|
||||
localedef -i en_US -f ISO-8859-1 en_US
|
||||
localedef -i es_MX -f ISO-8859-1 es_MX
|
||||
localedef -i fr_FR -f ISO-8859-1 fr_FR
|
||||
localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro
|
||||
localedef -i it_IT -f ISO-8859-1 it_IT
|
||||
localedef -i ja_JP -f EUC-JP ja_JP</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
|
@ -0,0 +1,58 @@
|
|||
<sect1 id="ch05-kernel-headers">
|
||||
<title>Installing Linux-&kernel-version; headers</title>
|
||||
<?dbhtml filename="kernel-headers.html" dir="chapter05"?>
|
||||
|
||||
<screen>Estimated build time: &kernel-time-headers;
|
||||
Estimated required disk space: &kernel-compsize-headers;</screen>
|
||||
|
||||
&aa-kernel-shortdesc;
|
||||
&aa-kernel-dep;
|
||||
|
||||
<sect2><title> </title><para> </para></sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Installation of the kernel headers</title>
|
||||
|
||||
<para>As some packages need to refer to the kernel header files, we're going
|
||||
to unpack the kernel archive now, set it up, and copy the required files to a
|
||||
place where <userinput>gcc</userinput> can later find them.</para>
|
||||
|
||||
<para>Prepare for the header installation with:</para>
|
||||
|
||||
<screen><userinput>make mrproper</userinput></screen>
|
||||
|
||||
<para>This ensures that the kernel tree is absolutely clean. The kernel team
|
||||
recommends that this command be issued prior to <emphasis>each</emphasis> kernel
|
||||
compilation. You shouldn't rely on the source tree being clean after
|
||||
untarring.</para>
|
||||
|
||||
<para>Create the <filename>include/linux/version.h</filename> file:</para>
|
||||
|
||||
<screen><userinput>make include/linux/version.h</userinput></screen>
|
||||
|
||||
<para>Create the platform-specific <filename>include/asm</filename>
|
||||
symlink:</para>
|
||||
|
||||
<screen><userinput>make symlinks</userinput></screen>
|
||||
|
||||
<para>Install the platform-specific header files:</para>
|
||||
|
||||
<screen><userinput>mkdir /tools/include/asm
|
||||
cp include/asm/* /tools/include/asm
|
||||
cp -R include/asm-generic /tools/include</userinput></screen>
|
||||
|
||||
<para>Install the cross-platform kernel header files:</para>
|
||||
|
||||
<screen><userinput>cp -R include/linux /tools/include</userinput></screen>
|
||||
|
||||
<para>There are a few kernel header files which make use of the
|
||||
<filename>autoconf.h</filename> header file. Since we do not yet configure the
|
||||
kernel, we need to create this file ourselves in order to avoid compilation
|
||||
failures. Create an empty <filename>autoconf.h</filename> file:</para>
|
||||
|
||||
<screen><userinput>touch /tools/include/linux/autoconf.h</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue