blob: 756e6966cc1b358beae6471e9144acde14a30850 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
%general-entities;
]>
<sect1 id="ch-tools-creatingtoolsdir">
<title>Creating the $LFS/tools directory</title>
<?dbhtml filename="creatingtoolsdir.html"?>
<para>All programs compiled in <xref linkend="chapter-temporary-tools"/> will be installed under <filename
class="directory">$LFS/tools</filename> to keep them separate from the
programs compiled in <xref linkend="chapter-building-system"/>. 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. This also
helps prevent them from ending up in your host's production directories
(easy to do in <xref linkend="chapter-temporary-tools"/>, which could be a very bad thing.</para>
<para>Later on you might wish to search through the binaries of your system to
see what files they make use of or link against. To make this searching easier
you may want to choose a unique name for the directory in which the temporary
tools are stored. Instead of the simple <quote>tools</quote> you could use
something like <quote>tools-for-lfs</quote>. However, you'll need to be careful
to adjust all references to <quote>tools</quote> throughout the book --
including those in any patches, notably the GCC Specs Patch.</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 <emphasis>host</emphasis> system. It will point to the directory we just created on the LFS
partition:</para>
<screen><userinput>ln -s $LFS/tools /</userinput></screen>
<note><para>The above command is correct. The <command>ln</command> command
has a few syntactic variations, so be sure to check the info page before
reporting what you may think is an error.</para></note>
<para>The created 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 <quote>chrooted</quote> to
the LFS partition).</para>
</sect1>
|