lfs/prologue/architecture.xml
2024-02-29 00:02:52 +08:00

41 lines
2.1 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
%general-entities;
]>
<sect1 id="pre-architecture">
<?dbhtml filename="architecture.html"?>
<title>LFS Target Architectures</title>
<para>The primary target architectures of this LFS edition are the little
endian MIPS64 release 2 to 5 CPUs (the release 6 is not backward-compatible
with earlier releases). On the other hand, the instructions
in this book are also known to work, with some modifications, for
MIPS CPUs with a different byte order, word size, or ISA version. To
build a system that utilizes one of these alternative CPUs, the main prerequisite, in
addition to those on the next page, is an existing Linux system such as an
earlier LFS installation, Ubuntu, Red Hat/Fedora, SuSE, or some other distribution
that targets that architecture.</para>
<para>There are three widely-used ABIs for 64-bit MIPS programs.
The <quote>o32</quote> ABI is compatible with the ABI of the legacy 32-bit
MIPS programs and it's used for running those legacy 32-bit programs on a
64-bit MIPS CPU. The <quote>n64</quote> ABI is designed for taking the full
advantage of 64-bit capability. The <quote>n32</quote> ABI is similar to
n64 but using 32-bit pointers, mainly used for 64-bit devices with a small
amount of RAM. The default 64-bit build that results from LFS is a
<quote>pure</quote> n64 system. That is, it supports n64 executables
only. Building a <quote>multi-lib</quote> system requires compiling many
applications multiple times, each time for an ABI to be supported.
This is not directly supported in LFS because it would interfere with the
educational objective of providing the minimal instructions needed for a
basic Linux system. Some of the LFS/BLFS editors maintain a multilib fork
of LFS, accessible at <ulink
url="https://www.linuxfromscratch.org/~thomas/multilib/index.html"/>. But
it's for x86_64, and anyway multilib is an advanced topic.</para>
</sect1>