LFS-BOOK-10.1.Pdf
Total Page:16
File Type:pdf, Size:1020Kb
Linux From Scratch Version 10.1 Published March 1st, 2021 Created by Gerard Beekmans Managing Editor: Bruce Dubbs Linux From Scratch: Version 10.1 : Published March 1st, 2021 by Created by Gerard Beekmans and Managing Editor: Bruce Dubbs Copyright © 1999-2021 Gerard Beekmans Copyright © 1999-2021, Gerard Beekmans All rights reserved. This book is licensed under a Creative Commons License. Computer instructions may be extracted from the book under the MIT License. Linux® is a registered trademark of Linus Torvalds. Linux From Scratch - Version 10.1 Table of Contents Preface ......................................................................................................................................................................... viii i. Foreword ............................................................................................................................................................ viii ii. Audience ........................................................................................................................................................... viii iii. LFS Target Architectures .................................................................................................................................. ix iv. Prerequisites ........................................................................................................................................................ x v. LFS and Standards .............................................................................................................................................. x vi. Rationale for Packages in the Book ................................................................................................................. xi vii. Typography .................................................................................................................................................... xvii viii. Structure ...................................................................................................................................................... xviii ix. Errata ............................................................................................................................................................. xviii I. Introduction ................................................................................................................................................................. 1 1. Introduction .......................................................................................................................................................... 2 1.1. How to Build an LFS System .................................................................................................................... 2 1.2. What's new since the last release ............................................................................................................... 2 1.3. Changelog ................................................................................................................................................... 4 1.4. Resources .................................................................................................................................................... 8 1.5. Help ............................................................................................................................................................. 9 II. Preparing for the Build ........................................................................................................................................... 11 2. Preparing the Host System ................................................................................................................................ 12 2.1. Introduction ............................................................................................................................................... 12 2.2. Host System Requirements ....................................................................................................................... 12 2.3. Building LFS in Stages ............................................................................................................................ 14 2.4. Creating a New Partition .......................................................................................................................... 15 2.5. Creating a File System on the Partition ................................................................................................... 17 2.6. Setting The $LFS Variable ....................................................................................................................... 17 2.7. Mounting the New Partition ..................................................................................................................... 18 3. Packages and Patches ........................................................................................................................................ 20 3.1. Introduction ............................................................................................................................................... 20 3.2. All Packages ............................................................................................................................................. 20 3.3. Needed Patches ......................................................................................................................................... 28 4. Final Preparations .............................................................................................................................................. 30 4.1. Introduction ............................................................................................................................................... 30 4.2. Creating a limited directory layout in LFS filesystem ............................................................................. 30 4.3. Adding the LFS User ............................................................................................................................... 30 4.4. Setting Up the Environment ..................................................................................................................... 31 4.5. About SBUs .............................................................................................................................................. 33 4.6. About the Test Suites ............................................................................................................................... 34 III. Building the LFS Cross Toolchain and Temporary Tools .................................................................................... 35 Important Preliminary Material ........................................................................................................................ xxxvi i. Introduction .............................................................................................................................................. xxxvi ii. Toolchain Technical Notes .................................................................................................................... xxxvi iii. General Compilation Instructions ............................................................................................................... xl 5. Compiling a Cross-Toolchain ............................................................................................................................ 42 5.1. Introduction ............................................................................................................................................... 42 5.2. Binutils-2.36.1 - Pass 1 ............................................................................................................................ 43 iii Linux From Scratch - Version 10.1 5.3. GCC-10.2.0 - Pass 1 ................................................................................................................................. 45 5.4. Linux-5.10.17 API Headers ...................................................................................................................... 48 5.5. Glibc-2.33 ................................................................................................................................................. 49 5.6. Libstdc++ from GCC-10.2.0, Pass 1 ........................................................................................................ 52 6. Cross Compiling Temporary Tools ................................................................................................................... 53 6.1. Introduction ............................................................................................................................................... 53 6.2. M4-1.4.18 .................................................................................................................................................. 54 6.3. Ncurses-6.2 ................................................................................................................................................ 55 6.4. Bash-5.1 .................................................................................................................................................... 57 6.5. Coreutils-8.32 ............................................................................................................................................ 58 6.6. Diffutils-3.7 ..............................................................................................................................................