From e43d96fa2fba387bfa1a4c3934950002e56412b5 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Wed, 3 Jan 2024 13:39:21 +0800 Subject: [PATCH] mips64el: start the branch --- git-version.sh | 4 ++-- prologue/architecture.xml | 42 +++++++++++++++------------------------ 2 files changed, 18 insertions(+), 28 deletions(-) diff --git a/git-version.sh b/git-version.sh index 09a8fadd7..7bba44fce 100755 --- a/git-version.sh +++ b/git-version.sh @@ -53,8 +53,8 @@ full_date="$month $day$suffix, $year" sha="$(git describe --abbrev=1)" rev=$(echo "$sha" | sed 's/-g[^-]*$//') -version="$rev" -versiond="$rev-systemd" +version="mips64el-$rev" +versiond="mips64el-$rev-systemd" if [ "$(git diff HEAD | wc -l)" != "0" ]; then version="$version-wip" diff --git a/prologue/architecture.xml b/prologue/architecture.xml index 189857760..c65b3be9e 100644 --- a/prologue/architecture.xml +++ b/prologue/architecture.xml @@ -10,41 +10,31 @@ LFS Target Architectures -The primary target architectures of LFS are the AMD/Intel x86 (32-bit) -and x86_64 (64-bit) CPUs. On the other hand, the instructions in this book are -also known to work, with some modifications, with the Power PC and ARM CPUs. To +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. (Note that a 32-bit -distribution can be installed and used as a host system on a 64-bit AMD/Intel -computer.) +that targets that architecture. -The gain from building on a 64-bit system, as -compared to a 32-bit system, is minimal. -For example, in a test build of LFS-9.1 on a Core i7-4790 CPU based system, -using 4 cores, the following statistics were measured: - -Architecture Build Time Build Size -32-bit 239.9 minutes 3.6 GB -64-bit 233.2 minutes 4.4 GB - -As you can see, on the same hardware, the 64-bit build is only 3% faster -(and 22% larger) than the 32-bit build. If you plan to use LFS as a LAMP -server, or a firewall, a 32-bit CPU may be good enough. On the other -hand, several packages in BLFS now need more than 4 GB of RAM to be built -and/or to run; if you plan to use LFS as a desktop, the LFS authors -recommend building a 64-bit system. - -The default 64-bit build that results from LFS is a -pure 64-bit system. That is, it supports 64-bit executables +There are three widely-used ABIs for 64-bit MIPS programs. +The o32 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 n64 ABI is designed for taking the full +advantage of 64-bit capability. The n32 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 +pure n64 system. That is, it supports n64 executables only. Building a multi-lib system requires compiling many -applications twice, once for a 32-bit system and once for a 64-bit system. +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 . But -that's an advanced topic. +it's for x86_64, and anyway multilib is an advanced topic.