Ignore:
Timestamp:
Feb 21, 2006, 2:04:25 AM (19 years ago)
Author:
Jim Gifford <clfs@…>
Branches:
clfs-1.2, clfs-2.1, clfs-3.0.0-systemd, clfs-3.0.0-sysvinit, master, systemd, sysvinit
Children:
f8f27bf9
Parents:
9860952
Message:

r1023@server (orig r1021): chris | 2006-01-08 00:36:31 -0800
Rewrote description of build process and test suite info, and added mention of test suites to some packages.

Location:
BOOK/introduction/common
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • BOOK/introduction/common/changelog.xml

    r9860952 r5da8aa0  
    3838
    3939    <listitem>
     40      <para>January 8, 2006</para>
     41      <itemizedlist>
     42        <listitem>
     43          <para>[Chris] - Rewrote much of the description of the build
     44process and test suite information.</para>
     45        </listitem>
     46      </itemizedlist>
     47    </listitem>
     48
     49
     50    <listitem>
    4051      <para>January 3, 2006</para>
    4152      <itemizedlist>
  • BOOK/introduction/common/how.xml

    r9860952 r5da8aa0  
    4343  beyond.</para>
    4444
    45   <para><xref linkend="chapter-temp-system"/> explains the
    46   installation of a number of packages that will form the basic
    47   development suite (or toolchain) which is used to build the actual
    48   system in <xref linkend="chapter-building-system"/>. Some of these
    49   packages are needed to resolve circular dependencies&mdash;for example,
    50   to compile a compiler, you need a compiler.</para>
     45  <para><xref linkend="chapter-cross-tools"/> explains the installation of
     46  cross-compile tools which will be built on the host but be able to compile
     47  programs that run on the target machine. These cross-compile tools will
     48  be used to create a temporary, minimal system that will be the basis for
     49  building the final LFS system. Some of these packages are needed to resolve
     50  circular dependencies&mdash;for example, to compile a compiler, you need a
     51  compiler.</para>
    5152
    52   <para><xref linkend="chapter-temp-system"/> also shows the user
    53   how to build a first pass of the toolchain, including Binutils and GCC
    54   (first pass basically means these two core packages will be re-installed
    55   a second time). The next step is to build Glibc, the C library. Glibc
    56   will be compiled by the toolchain programs built in the first pass. Then,
    57   a second pass of the toolchain will be built. This time, the toolchain
    58   will be dynamically linked against the newly built Glibc. The remaining
    59   <xref linkend="chapter-temp-system"/> packages are built using this
    60   second pass toolchain. When this is done, the LFS installation process
    61   will no longer depend on the host distribution, with the exception of the
    62   running kernel. </para>
     53  <para>The process of building cross-compile tools first involves installing
     54  binutils into /cross-tools, so that the linker can be used with the building
     55  of everything else in the temp-system. GCC is then compiled statically and
     56  installed into /cross-tools, and this cross-compiler is used to build glibc
     57  into /tools for the temp-system. The GCC cross-compiler is then rebuilt
     58  dynamically - this final cross-compiler is what will be used to build the
     59  rest of the temporary system. When this is done, the CLFS installation
     60  process will no longer depend on the host distribution, with the exception
     61  of the running kernel.
     62  <!-- still needs some work - needs to provide a better technical
     63explanation, especially the reasoning for compiling gcc statically then dynamically... --></para>
     64
     65  <para>The packages in <xref linkend="chapter-temp-system"/> are then built
     66  using the cross-compiled tools in /cross-tools, and linked against the
     67  C library that was installed during the building of the cross-tools.</para>
    6368
    6469  <para>This effort to isolate the new system from the host distribution
     
    6772
    6873  <para>In <xref linkend="chapter-building-system"/>, the full LFS system is
    69   built. The <command>chroot</command> (change root) program is used to enter
     74  built. Depending on the system you are cross-compiling for, either you will
     75  boot the minimal temp-system on the target machine, or chroot into it.</para>
     76
     77  <para>The <command>chroot</command> (change root) program is used to enter
    7078  a virtual environment and start a new shell whose root directory will be set
    7179  to the LFS partition. This is very similar to rebooting and instructing the
    72   kernel to mount the LFS partition as the root partition. The system does not
    73   actually reboot, but instead <command>chroot</command>'s because creating a
    74   bootable system requires additional work which is not necessary just yet.
     80  kernel to mount the LFS partition as the root partition.
    7581  The major advantage is that <quote>chrooting</quote> allows the builder to
    7682  continue using the host while LFS is being built. While waiting for package
    7783  compilation to complete, a user can switch to a different virtual console
    7884  (VC) or X desktop and continue using the computer as normal.</para>
     85
     86  <para>Some systems cannot be built by chrooting so they must be booted instead. Generally, if you building for a different arch than the host system, you must reboot because the kernel will likely not support the target machine. Booting involves installing a few additional packages that are needed for bootup, installing bootscripts, and building a miminal kernel.</para>
    7987
    8088  <para>To finish the installation, the LFS-Bootscripts are set up in <xref
Note: See TracChangeset for help on using the changeset viewer.