mirror of
https://git.linuxfromscratch.org/lfs.git
synced 2025-03-05 22:04:48 +00:00
last text additions in chapter 5, added a section on stripping
git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@2672 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
This commit is contained in:
parent
2cff2cc411
commit
69a52c1270
@ -3,37 +3,31 @@
|
||||
<sect2>
|
||||
<title>Installation of Bash</title>
|
||||
|
||||
<para>Bash has a number of bugs in it that cause it to not behave the
|
||||
way it is expected at times. Fix this behaviour with the following
|
||||
<para>Bash contains several known bugs. Fix these with the following
|
||||
patch:</para>
|
||||
|
||||
<para><screen><userinput>patch -Np1 -i ../bash-&bash-patch-version;.patch</userinput></screen></para>
|
||||
|
||||
<para><screen><userinput>./configure --prefix=/stage1 \
|
||||
--with-curses
|
||||
make
|
||||
make tests
|
||||
make install
|
||||
ln -s bash /stage1/bin/sh</userinput></screen></para>
|
||||
<para>Now prepare Bash for compilation:</para>
|
||||
|
||||
<para><screen><userinput>./configure --prefix=/stage1 --with-curses</userinput></screen></para>
|
||||
|
||||
<blockquote><screen>install-info: unknown option `--dir-file=/mnt/lfs/usr/info/dir'
|
||||
usage: install-info [--version] [--help] [--debug] [--maxwidth=nnn]
|
||||
[--section regexp title] [--infodir=xxx] [--align=nnn]
|
||||
[--calign=nnn] [--quiet] [--menuentry=xxx]
|
||||
[--info-dir=xxx]
|
||||
[--keep-old] [--description=xxx] [--test]
|
||||
[--remove] [--] filename
|
||||
make[1]: *** [install] Error 1
|
||||
make[1]: Leaving directory `/mnt/lfs/usr/src/bash-&bash-version;/doc'
|
||||
make: [install] Error 2 (ignored)</screen></blockquote>
|
||||
<para>Compile the program:</para>
|
||||
|
||||
<para>then that means that you are probably using Debian-2.2 (potato), and
|
||||
that you have an old version of the texinfo package and the info pages
|
||||
can't be installed at this time. This error is not a problem as the info
|
||||
pages will be installed when we recompile bash dynamically in Chapter 6, so
|
||||
you can ignore it. It is reported that the current release of Debian
|
||||
(3.0; also known as Woody) doesn't have this problem.</para>
|
||||
<para><screen><userinput>make</userinput></screen></para>
|
||||
|
||||
<para>Check that it works correctly:</para>
|
||||
|
||||
<para><screen><userinput>make tests</userinput></screen></para>
|
||||
|
||||
<para>Then install it and its documentation:</para>
|
||||
|
||||
<para><screen><userinput>make install</userinput></screen></para>
|
||||
|
||||
<para>And make a link for the programs that use <userinput>sh</userinput>
|
||||
for a shell:</para>
|
||||
|
||||
<para><screen><userinput>ln -s bash /stage1/bin/sh</userinput></screen></para>
|
||||
|
||||
</sect2>
|
||||
|
||||
|
@ -35,5 +35,36 @@
|
||||
&c5-utillinux;
|
||||
&c5-perl;
|
||||
|
||||
<sect1 id="ch05-stripping">
|
||||
<title>Stripping</title>
|
||||
<?dbhtml filename="stripping.html" dir="chapter05"?>
|
||||
|
||||
<para>If your LFS partition is rather small, you will be glad to learn that you
|
||||
can throw away some unnecessary things. The executables and libraries you have
|
||||
built so far contain about 130 MB of unneeded debugging symbols. Remove those
|
||||
symbols like this:</para>
|
||||
|
||||
<para><screen><userinput>strip --strip-unneeded /stage1/{,s}bin/*
|
||||
strip --strip-debug /stage1/lib/*</userinput></screen></para>
|
||||
|
||||
<para>The first of the above commands will skip some twenty files, reporting
|
||||
that it doesn't recognize their file format. Most of them are scripts instead
|
||||
of binaries.</para>
|
||||
|
||||
<para>Take care <emphasis>not</emphasis> to use
|
||||
<userinput>--strip-unneeded</userinput> on the libraries -- they would be
|
||||
destroyed and you would have to build Glibc all over again.</para>
|
||||
|
||||
<para>To save another couple of megabytes, you can throw away the documentation
|
||||
and some of the bigger unneeded programs:</para>
|
||||
|
||||
<para><screen><userinput>rm -r /stage1/share/{doc,info,man}
|
||||
rm /stage1/bin/{addr2line,gprof,nm,size,strings,strip}</userinput></screen></para>
|
||||
|
||||
<para>You will now need to have at least 700 MB of free space on your LFS
|
||||
filesystem to be able to build and install Glibc in the next phase.</para>
|
||||
|
||||
</sect1>
|
||||
|
||||
</chapter>
|
||||
|
||||
|
@ -2,14 +2,26 @@
|
||||
<sect2>
|
||||
<title>Installation of Perl</title>
|
||||
|
||||
<para><screen><userinput>patch -Np1 -i ../perl-&perl-version;-libc.patch
|
||||
chmod u+w hints/linux.sh
|
||||
echo 'static_ext="IO re Fcntl"' >> hints/linux.sh
|
||||
./configure.gnu --prefix=/stage1
|
||||
make perl
|
||||
make utilities
|
||||
cp perl /stage1/bin/perl
|
||||
cp pod/pod2man /stage1/bin
|
||||
<para>First adapt some hard-wired paths to the C library:</para>
|
||||
|
||||
<para><screen><userinput>patch -Np1 -i ../perl-&perl-version;-libc.patch</userinput></screen></para>
|
||||
|
||||
<para>And make sure some static extensions get built:</para>
|
||||
|
||||
<para><screen><userinput>chmod u+w hints/linux.sh
|
||||
echo 'static_ext="IO re Fcntl"' >> hints/linux.sh</userinput></screen></para>
|
||||
|
||||
<para>Now prepare Perl for compilation:</para>
|
||||
|
||||
<para><screen><userinput>./configure.gnu --prefix=/stage1</userinput></screen></para>
|
||||
|
||||
<para>Compile only the required tools:</para>
|
||||
|
||||
<para><screen><userinput>make perl utilities</userinput></screen></para>
|
||||
|
||||
<para>Then copy these tools and their libraries:</para>
|
||||
|
||||
<para><screen><userinput>cp perl pod/pod2man /stage1/bin
|
||||
mkdir -p /stage1/lib/perl5/5.8.0
|
||||
cp -R lib/* /stage1/lib/perl5/5.8.0</userinput></screen></para>
|
||||
|
||||
|
@ -3,12 +3,23 @@
|
||||
<sect2>
|
||||
<title>Installation of Util-linux</title>
|
||||
|
||||
<para><screen><userinput>./configure
|
||||
make -C lib
|
||||
make -C mount mount umount
|
||||
make -C text-utils more
|
||||
cp mount/{mount,umount} /stage1/bin
|
||||
cp text-utils/more /stage1/bin</userinput></screen></para>
|
||||
<para>Prepare Util-linux for compilation:</para>
|
||||
|
||||
<para><screen><userinput>./configure</userinput></screen></para>
|
||||
|
||||
<para>Compile some support routines:</para>
|
||||
|
||||
<para><screen><userinput>make -C lib</userinput></screen></para>
|
||||
|
||||
<para>And, since you'll need only a couple of the utilities contained in this
|
||||
package, build just those:</para>
|
||||
|
||||
<para><screen><userinput>make -C mount mount umount
|
||||
make -C text-utils more</userinput></screen></para>
|
||||
|
||||
<para>Now copy these programs to the temporary tools directory:</para>
|
||||
|
||||
<para><screen><userinput>cp mount/{,u}mount text-utils/more /stage1/bin</userinput></screen></para>
|
||||
|
||||
</sect2>
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user