Changeset 460f575
- Timestamp:
- 02/25/2022 08:47:36 PM (22 months ago)
- Branches:
- arm
- Children:
- 9c0b35a
- Parents:
- b0a6b0c
- Files:
-
- 2 added
- 32 edited
Legend:
- Unmodified
- Added
- Removed
-
appendices/acknowledgments.xml
rb0a6b0c r460f575 51 51 52 52 <listitem> 53 <para><ulink url="mailto:kb0iic@linuxfromscratch.org">William Harrington</ulink> 54 <kb0iic@gmail.com> – LFS ARM Editor</para> 55 </listitem> 56 57 <listitem> 53 58 <para>Countless other people on the various LFS and BLFS mailing lists 54 59 who helped make this book possible by giving their suggestions, testing -
appendices/dependencies.xml
rb0a6b0c r460f575 919 919 <seglistitem> 920 920 <seg>Bash, Binutils, Coreutils, Diffutils, Findutils, Gawk, GCC, 921 Gettext, Glibc, GMP, Grep, M4, Make, MPC, MPFR, Patch, Perl, Sed,922 Tar, Texinfo, and Zstd</seg>921 Gettext, Glibc, GMP, Grep, ISL, M4, Make, MPC, MPFR, Patch, Perl, 922 Sed, Tar, Texinfo, and Zstd</seg> 923 923 </seglistitem> 924 924 </segmentedlist> … … 950 950 <seg> 951 951 <ulink url="http://gcc.gnu.org/wiki/GNAT">GNAT</ulink> 952 and953 <ulink url="https://repo.or.cz/isl.git">ISL</ulink>954 952 </seg> 955 953 </seglistitem> … … 1473 1471 </seglistitem> 1474 1472 </segmentedlist> 1473 1474 <!-- Begin ISL dependency info --> 1475 <bridgehead renderas="sect2" id="isl-dep">ISL</bridgehead> 1476 1477 <segmentedlist id="isl-depends"> 1478 <segtitle>&dependencies;</segtitle> 1479 <seglistitem> 1480 <seg>Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, Glibc, Grep, 1481 GMP, Make, Sed, and Texinfo</seg> 1482 </seglistitem> 1483 </segmentedlist> 1484 1485 <segmentedlist id="isl-rundeps"> 1486 <segtitle>&runtime;</segtitle> 1487 <seglistitem> 1488 <seg>Glibc, GMP</seg> 1489 </seglistitem> 1490 </segmentedlist> 1491 1492 <segmentedlist id="isl-testdeps"> 1493 <segtitle>&testsuites;</segtitle> 1494 <seglistitem> 1495 <seg>None</seg> 1496 </seglistitem> 1497 </segmentedlist> 1498 1499 <segmentedlist id="isl-before"> 1500 <segtitle>&before;</segtitle> 1501 <seglistitem> 1502 <seg>GCC</seg> 1503 </seglistitem> 1504 </segmentedlist> 1505 1506 <segmentedlist id="isl-optdeps"> 1507 <segtitle>&external;</segtitle> 1508 <seglistitem> 1509 <seg>None</seg> 1510 </seglistitem> 1511 </segmentedlist> 1475 1512 1476 1513 <!-- Begin Jinja2 dependency info --> -
chapter01/whatsnew.xml
rb0a6b0c r460f575 139 139 <para>IPRoute2-&iproute2-version;</para> 140 140 </listitem> 141 <!--<listitem> 142 <para>ISL-&isl-version;</para> 143 </listitem>--> 141 144 <listitem revision="systemd"> 142 145 <para>Jinja2-&jinja2-version;</para> -
chapter03/packages.xml
rb0a6b0c r460f575 359 359 </varlistentry> 360 360 361 <varlistentry> 362 <term>ISL (&isl-version;) - <token>&isl-size;</token>:</term> 363 <listitem> 364 <para>Home page: <ulink url="&isl-home;"/></para> 365 <para>Download: <ulink url="&isl-url;"/></para> 366 <para>MD5 sum: <literal>&isl-md5;</literal></para> 367 <para>SHA256 sum: <literal>&isl-sha256;</literal></para> 368 </listitem> 369 </varlistentry> 370 361 371 <varlistentry revision="systemd"> 362 372 <term>Jinja2 (&jinja2-version;) - <token>&jinja2-size;</token>:</term> -
chapter04/addinguser.xml
rb0a6b0c r460f575 83 83 <screen><userinput>chown -v lfs $LFS/{usr{,/*},lib,var,etc,bin,sbin,tools} 84 84 case $(uname -m) in 85 x86_64) chown -v lfs $LFS/lib64 ;;85 aarch64) chown -v lfs $LFS/lib64 ;; 86 86 esac</userinput></screen> 87 87 -
chapter04/creatingminlayout.xml
rb0a6b0c r460f575 28 28 29 29 case $(uname -m) in 30 x86_64) mkdir -pv $LFS/lib64 ;;30 aarch64) mkdir -pv $LFS/lib64 ;; 31 31 esac</userinput></screen> 32 32 -
chapter05/gcc-pass1.xml
rb0a6b0c r460f575 44 44 <title>Installation of Cross GCC</title> 45 45 46 <para>GCC requires the GMP, MPFR and MPC packages. As these packages may47 not be included in your host distribution, they will be built with46 <para>GCC requires the GMP, ISL, MPFR and MPC packages. As these packages 47 may not be included in your host distribution, they will be built with 48 48 GCC. Unpack each package into the GCC source directory and rename the 49 49 resulting directories so the GCC build procedures will automatically … … 61 61 mv -v gmp-&gmp-version; gmp 62 62 tar -xf ../mpc-&mpc-version;.tar.gz 63 mv -v mpc-&mpc-version; mpc</userinput></screen> 64 65 <para>On x86_64 hosts, set the default directory name for 63 mv -v mpc-&mpc-version; mpc 64 tar -xf ../isl-&isl-version;.tar.xz 65 mv -v isl-&isl-version; isl</userinput></screen> 66 67 <para>On aarch64 hosts, set the default directory name for 66 68 64-bit libraries to <quote>lib</quote>:</para> 67 69 68 70 <screen><userinput remap="pre">case $(uname -m) in 69 x86_64)70 sed -e '/m 64=/s/lib64/lib/' \71 -i.orig gcc/config/ i386/t-linux6471 aarch64) 72 sed -e '/mabi.lp64=/s/lib64/lib/' \ 73 -i.orig gcc/config/aarch64/t-aarch64-linux 72 74 ;; 73 75 esac</userinput></screen> … … 155 157 <term><parameter>--disable-multilib</parameter></term> 156 158 <listitem> 157 <para>On x86_64, LFS does not support a multilib configuration.158 This switch is harmless for x86.</para>159 <para>On aarch64, LFS does not support a multilib configuration. 160 This switch is harmless for arm.</para> 159 161 </listitem> 160 162 </varlistentry> -
chapter05/glibc.xml
rb0a6b0c r460f575 45 45 46 46 <para>First, create a symbolic link for LSB compliance. Additionally, 47 for x86_64, create a compatibility symbolic link required for proper47 for aarch64, create a compatibility symbolic link required for proper 48 48 operation of the dynamic library loader:</para> 49 49 50 50 <screen><userinput remap="pre">case $(uname -m) in 51 i?86) ln -sfv ld-linux.so.2$LFS/lib/ld-lsb.so.352 ;;53 x86_64) ln -sfv ../lib/ld-linux-x86-64.so.2$LFS/lib6454 ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64/ld-lsb-x86-64.so.355 ;;51 arm) ln -sfv ld-linux-armhf.so.3 $LFS/lib/ld-lsb.so.3 52 ;; 53 aarch64) ln -sfv ../lib/ld-linux-aarch64.so.1 $LFS/lib64 54 ln -sfv ../lib/ld-linux-aarch64.so.1 $LFS/lib64/ld-lsb-aarch64.so.3 55 ;; 56 56 esac</userinput></screen> 57 57 … … 203 203 and the output of the last command will be of the form:</para> 204 204 205 <screen><computeroutput>[Requesting program interpreter: /lib 64/ld-linux-x86-64.so.2]</computeroutput></screen>205 <screen><computeroutput>[Requesting program interpreter: /lib/ld-linux-aarch64.so.1]</computeroutput></screen> 206 206 207 207 <para>Note that for 32-bit machines, the interpreter name will be 208 <filename>/lib/ld-linux .so.2</filename>.</para>208 <filename>/lib/ld-linux-armhf.so.3</filename>.</para> 209 209 210 210 <para>If the output is not shown as above or there was no output at all, -
chapter06/gcc-pass2.xml
rb0a6b0c r460f575 44 44 <title>Installation of GCC</title> 45 45 46 <para>As in the first build of GCC, the GMP, MPFR, and MPC packages are46 <para>As in the first build of GCC, the GMP, ISL, MPFR, and MPC packages are 47 47 required. Unpack the tarballs and move them into the required directory 48 48 names:</para> … … 53 53 mv -v gmp-&gmp-version; gmp 54 54 tar -xf ../mpc-&mpc-version;.tar.gz 55 mv -v mpc-&mpc-version; mpc</userinput></screen> 55 mv -v mpc-&mpc-version; mpc 56 tar -xf ../isl-&isl-version;.tar.xz 57 mv -v isl-&isl-version; isl</userinput></screen> 56 58 57 <para>If building on x86_64, change the default directory name for 64-bit 59 60 <para>If building on aarch64, change the default directory name for 64-bit 58 61 libraries to <quote>lib</quote>:</para> 59 62 60 63 <screen><userinput remap="pre">case $(uname -m) in 61 x86_64) 62 sed -e '/m64=/s/lib64/lib/' -i.orig gcc/config/i386/t-linux64 64 aarch64) 65 sed -e '/mabi.lp64=/s/lib64/lib/' \ 66 -i.orig gcc/config/aarch64/t-aarch64-linux 63 67 ;; 64 68 esac</userinput></screen> 65 <!--66 <para>Fix an issue with GCC-10.1 when building with a cross67 compiler:</para>68 69 69 <screen><userinput remap="pre">patch -Np1 -i ../&gcc-cross-patch;</userinput></screen>70 -->71 70 <para>Create a separate build directory again:</para> 72 71 … … 123 122 <listitem> 124 123 <para>This option is automatically enabled when building a native 125 compiler with a native compiler on x86. But here, we build with124 compiler with a native compiler on ARM. But here, we build with 126 125 a cross compiler, so we need to explicitly set this option.</para> 127 126 </listitem> -
chapter07/changingowner.xml
rb0a6b0c r460f575 36 36 <screen><userinput>chown -R root:root $LFS/{usr,lib,var,etc,bin,sbin,tools} 37 37 case $(uname -m) in 38 x86_64) chown -R root:root $LFS/lib64 ;;38 aarch64) chown -R root:root $LFS/lib64 ;; 39 39 esac</userinput></screen> 40 40 -
chapter08/adjusting.xml
rb0a6b0c r460f575 53 53 platform-specific differences in the dynamic linker name):</para> 54 54 55 <screen os="c"><computeroutput>[Requesting program interpreter: /lib 64/ld-linux-x86-64.so.2]</computeroutput></screen>55 <screen os="c"><computeroutput>[Requesting program interpreter: /lib/ld-linux-aarch64.so.1]</computeroutput></screen> 56 56 57 57 <para>Note that on 64-bit systems <filename class="directory">/lib</filename> is … … 60 60 61 61 <note><para>On 32-bit systems the interpreter should be 62 /lib/ld-linux .so.2.</para></note>62 /lib/ld-linux-armhf.so.3.</para></note> 63 63 64 64 <para os="d">Now make sure that we're setup to use the correct start files:</para> … … 80 80 81 81 <screen><computeroutput>#include <...> search starts here: 82 /tools/lib/gcc/ x86_64-pc-linux-gnu/&gcc-version;/include82 /tools/lib/gcc/aarch64-pc-linux-gnu/&gcc-version;/include 83 83 /tools/include 84 /tools/lib/gcc/ x86_64-pc-linux-gnu/&gcc-version;/include-fixed84 /tools/lib/gcc/aarch64-pc-linux-gnu/&gcc-version;/include-fixed 85 85 /usr/include</computeroutput></screen> 86 86 87 <note><para>On a 32 bit system, x86_64 is replaced with i686.</para></note>87 <note><para>On a 32 bit system, aarch64 is replaced with an ARM 32bit variant.</para></note> 88 88 89 89 <para os="i">Next, verify that the new linker is being used with the correct search paths:</para> … … 112 112 platform-specific differences in dynamic linker name):</para> 113 113 114 <screen os="s"><computeroutput>found ld-linux- x86-64.so.2 at /usr/lib/ld-linux-x86-64.so.2</computeroutput></screen>114 <screen os="s"><computeroutput>found ld-linux-aarch64.so.1 at /usr/lib/ld-linux-aarch64.so.1</computeroutput></screen> 115 115 116 116 <para os="t">If the output does not appear as shown above or is not received -
chapter08/binutils.xml
rb0a6b0c r460f575 72 72 find -name \*.1 -delete</userinput></screen> 73 73 --> 74 75 <para> 76 Now make a fix identified upstream that affects building some packages: 77 </para> 78 79 <screen><userinput remap="pre">sed -e '/R_386_TLS_LE /i \ || (TYPE) == R_386_TLS_IE \\' \ 80 -i ./bfd/elfxx-x86.h</userinput></screen> 81 74 <!-- 75 <para>Now remove one test that prevents the tests from running 76 to completion:</para> 77 78 <screen><userinput remap="pre">sed -i '/@\tincremental_copy/d' gold/testsuite/Makefile.in</userinput></screen> 79 --> 82 80 <para>The Binutils documentation recommends building Binutils 83 81 in a dedicated build directory:</para> … … 153 151 ultimately be located) is set to <filename 154 152 class="directory">$(exec_prefix)/$(target_alias)</filename>. For 155 example, x86_64 machines would expand that to <filename156 class="directory">/usr/x86_64-pc-linux-gnu</filename>. Because this is 157 153 example, aarch64 machines would expand that to <filename 154 class="directory">/usr/aarch64-unknown-linux-gnu</filename>. Because 155 this is a custom system, this target-specific directory in <filename 158 156 class="directory">/usr</filename> is not required. <filename 159 157 class="directory">$(exec_prefix)/$(target_alias)</filename> would be -
chapter08/chapter08.xml
rb0a6b0c r460f575 35 35 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="mpfr.xml"/> 36 36 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="mpc.xml"/> 37 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="isl.xml"/> 37 38 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="attr.xml"/> 38 39 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="acl.xml"/> -
chapter08/expect.xml
rb0a6b0c r460f575 51 51 <para>Prepare Expect for compilation:</para> 52 52 53 <screen><userinput remap="configure">./configure --prefix=/usr \ 54 --with-tcl=/usr/lib \ 55 --enable-shared \ 56 --mandir=/usr/share/man \ 57 --with-tclinclude=/usr/include</userinput></screen> 53 <screen><userinput remap="configure">./configure --prefix=/usr \ 54 --with-tcl=/usr/lib \ 55 --enable-shared \ 56 --mandir=/usr/share/man \ 57 --with-tclinclude=/usr/include \ 58 --build=$(uname -m)-unknown-linux-gnu</userinput></screen> 58 59 59 60 <variablelist> … … 74 75 <para>This explicitly tells Expect where to find Tcl's internal 75 76 headers.</para> 77 </listitem> 78 </varlistentry> 79 80 <varlistentry> 81 <term><parameter>--build=$(uname -m)-uknown-linux-gnu</parameter></term> 82 <listitem> 83 <para>This tells Expect what the architecture build of the machine 84 is for ARM.</para> 76 85 </listitem> 77 86 </varlistentry> -
chapter08/findutils.xml
rb0a6b0c r460f575 47 47 48 48 <screen><userinput remap="configure">case $(uname -m) in 49 i?86)TIME_T_32_BIT_OK=yes ./configure --prefix=/usr --localstatedir=/var/lib/locate ;;50 x86_64) ./configure --prefix=/usr --localstatedir=/var/lib/locate ;;49 arm) TIME_T_32_BIT_OK=yes ./configure --prefix=/usr --localstatedir=/var/lib/locate ;; 50 aarch64) ./configure --prefix=/usr --localstatedir=/var/lib/locate ;; 51 51 esac</userinput></screen> 52 53 52 <variablelist> 54 53 <title>The meaning of the configure options:</title> -
chapter08/gcc.xml
rb0a6b0c r460f575 50 50 -i libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp</userinput></screen> 51 51 52 <para>If building on x86_64, change the default directory name for 64-bit52 <para>If building on aarch64, change the default directory name for 64-bit 53 53 libraries to <quote>lib</quote>:</para> 54 54 55 55 <screen><userinput remap="pre">case $(uname -m) in 56 x86_64)57 sed -e '/m 64=/s/lib64/lib/' \58 -i.orig gcc/config/ i386/t-linux6456 aarch64) 57 sed -e '/mabi.lp64=/s/lib64/lib/' \ 58 -i.orig gcc/config/aarch64/t-aarch64-linux 59 59 ;; 60 60 esac</userinput></screen> … … 222 222 xpointer="xpointer(//*[@os='f'])"/> 223 223 224 <screen><computeroutput>/usr/lib/gcc/ x86_64-pc-linux-gnu/&gcc-version;/../../../../lib/crt1.o succeeded225 /usr/lib/gcc/ x86_64-pc-linux-gnu/&gcc-version;/../../../../lib/crti.o succeeded226 /usr/lib/gcc/ x86_64-pc-linux-gnu/&gcc-version;/../../../../lib/crtn.o succeeded</computeroutput></screen>224 <screen><computeroutput>/usr/lib/gcc/aarch64-unknown-linux-gnu/&gcc-version;/../../../../lib/crt1.o succeeded 225 /usr/lib/gcc/aarch64-unknown-linux-gnu/&gcc-version;/../../../../lib/crti.o succeeded 226 /usr/lib/gcc/aarch64-unknown-linux-gnu/&gcc-version;/../../../../lib/crtn.o succeeded</computeroutput></screen> 227 227 228 228 <para>Depending on your machine architecture, the above may differ slightly. … … 244 244 245 245 <screen><computeroutput>#include <...> search starts here: 246 /usr/lib/gcc/ x86_64-pc-linux-gnu/&gcc-version;/include246 /usr/lib/gcc/aarch-64-unknown-linux-gnu/&gcc-version;/include 247 247 /usr/local/include 248 /usr/lib/gcc/ x86_64-pc-linux-gnu/&gcc-version;/include-fixed248 /usr/lib/gcc/aarch64-unknown-linux-gnu/&gcc-version;/include-fixed 249 249 /usr/include</computeroutput></screen> 250 250 … … 264 264 xpointer="xpointer(//*[@os='k'])"/> 265 265 266 <screen><computeroutput>SEARCH_DIR("/usr/ x86_64-pc-linux-gnu/lib64")266 <screen><computeroutput>SEARCH_DIR("/usr/aarch64-unknown-linux-gnu/lib64") 267 267 SEARCH_DIR("/usr/local/lib64") 268 268 SEARCH_DIR("/lib64") 269 269 SEARCH_DIR("/usr/lib64") 270 SEARCH_DIR("/usr/ x86_64-pc-linux-gnu/lib")270 SEARCH_DIR("/usr/aarch64-unknown-linux-gnu/lib") 271 271 SEARCH_DIR("/usr/local/lib") 272 272 SEARCH_DIR("/lib") … … 274 274 275 275 <para>A 32-bit system may see a few different directories. For example, here 276 is the output from an i686 machine:</para> 277 278 <screen><computeroutput>SEARCH_DIR("/usr/i686-pc-linux-gnu/lib32") 279 SEARCH_DIR("/usr/local/lib32") 280 SEARCH_DIR("/lib32") 281 SEARCH_DIR("/usr/lib32") 282 SEARCH_DIR("/usr/i686-pc-linux-gnu/lib") 276 is the output from a 32bit ARM machine:</para> 277 278 <screen><computeroutput>SEARCH_DIR("/usr/armv6l-unknown-linux-gnueabihf/lib") 283 279 SEARCH_DIR("/usr/local/lib") 284 280 SEARCH_DIR("/lib") … … 352 348 libgcc_s.so, libgcov.a, libgomp.{a,so}, libitm.{a,so}, 353 349 liblsan.{a,so}, liblto_plugin.so, 354 lib quadmath.{a,so}, libssp.{a,so}, libssp_nonshared.a,350 libssp.{a,so}, libssp_nonshared.a, 355 351 libstdc++.{a,so}, libstdc++fs.a, libsupc++.a, libtsan.{a,so}, 356 352 and libubsan.{a,so}</seg> -
chapter08/glibc.xml
rb0a6b0c r460f575 50 50 -i sysdeps/unix/sysv/linux/mq_notify.c</userinput></screen> 51 51 --> 52 52 53 <para>Some of the Glibc programs use the non-FHS compliant 53 54 <filename class="directory">/var/db</filename> directory to store … … 140 141 <!-- Use remap="make" here to work around a jhalfs issue. --> 141 142 <!--<screen><userinput remap="make">case $(uname -m) in 142 i?86) ln -sfnv $PWD/elf/ld-linux.so.2/lib ;;143 x86_64) ln -sfnv $PWD/elf/ld-linux-x86-64.so.2/lib ;;143 arm*) ln -sfnv $PWD/elf/ld-linux-armhf.so.3 /lib ;; 144 aarch64) ln -sfnv $PWD/elf/ld-linux-aarch64.so.1 /lib ;; 144 145 esac</userinput></screen> 145 146 … … 434 435 435 436 <para>By default, the dynamic loader (<filename 436 class="libraryfile">/lib/ld-linux.so.2</filename>) searches through 437 class="libraryfile">/lib/ld-linux-armhf.so.3 438 /lib/ld-linux-aarch64.so.1</filename>) searches through 437 439 <filename class="directory">/lib</filename> and <filename 438 440 class="directory">/usr/lib</filename> for dynamic libraries that are … … 483 485 <seg>gencat, getconf, getent, iconv, iconvconfig, ldconfig, 484 486 ldd, lddlibc4, 485 ld.so (symlink to ld-linux-x86-64.so.2 or ld-linux.so.2), 486 locale, localedef, makedb, mtrace, nscd, 487 locale, localedef, makedb, mtrace, ncsd, 487 488 pcprofiledump, pldd, sln, sotruss, sprof, tzselect, xtrace, 488 489 zdump, and zic</seg> 489 <seg>ld-linux- x86-64.so.2, ld-linux.so.2,490 <seg>ld-linux-aarch64.so.1 or ld-linux{,-armhf}.so.3, 490 491 libBrokenLocale.{a,so}, libanl.{a,so}, 491 492 libc.{a,so}, libc_nonshared.a, libc_malloc_debug.so, -
chapter08/gmp.xml
rb0a6b0c r460f575 43 43 44 44 <note> 45 <para>If you are building for 32-bit x86, but you have a CPU which is45 <para>If you are building for 32-bit arm, but you have a CPU which is 46 46 capable of running 64-bit code <emphasis>and</emphasis> you have specified 47 47 <envar>CFLAGS</envar> in the environment, the configure script will … … 107 107 applications using the gmp libraries with the message "Illegal 108 108 instruction". In this case, gmp should be reconfigured with the option 109 --build= x86_64-pc-linux-gnu and rebuilt.</para></caution>109 --build=aarch64-unknown-linux-gnu and rebuilt.</para></caution> 110 110 111 111 <para>Ensure that all 197 tests in the test suite passed. -
chapter08/grub.xml
rb0a6b0c r460f575 51 51 </note> 52 52 53 <note> 54 <para> 55 GRUB2 with EFI support can be used with some devices, like the 56 Odroid-C2, and maybe others. Two stage loading is done where the 57 first grub.cfg can be found by U-boot, and act as a pointer to 58 the real grub.cfg with the menu. More info may be found at 59 <ulink url="http://rglinuxtech.com/?p=2595">this page</ulink>. 60 </para> 61 </note> 62 53 63 <para>Prepare GRUB for compilation:</para> 54 64 -
chapter08/libcap.xml
rb0a6b0c r460f575 60 60 <para>This parameter sets the library directory to 61 61 <filename>/usr/lib</filename> rather than 62 <filename>/usr/lib64</filename> on x86_64. It has no effect on63 x86.</para>62 <filename>/usr/lib64</filename> on aarch64. It has no effect on 63 arm.</para> 64 64 </listitem> 65 65 </varlistentry> -
chapter08/libffi.xml
rb0a6b0c r460f575 70 70 system, use the less capable system as a parameter. For details 71 71 about alternative system types, see <ulink 72 url='https://gcc.gnu.org/onlinedocs/gcc-&gcc-version;/gcc/ x86-Options.html'>73 the x86options in the GCC manual</ulink>.</para>72 url='https://gcc.gnu.org/onlinedocs/gcc-&gcc-version;/gcc/ARM-Options.html'> 73 the ARM options in the GCC manual</ulink>.</para> 74 74 </listitem> 75 75 </varlistentry> -
chapter08/readline.xml
rb0a6b0c r460f575 52 52 <para>Prepare Readline for compilation:</para> 53 53 54 <screen><userinput remap="configure">./configure --prefix=/usr \ 54 <screen><userinput remap="configure">./configure --prefix=/usr \ 55 --disable-bracketed-paste-default \ 55 56 --disable-static \ 56 57 --with-curses \ … … 67 68 termcap library. It allows generating a correct 68 69 <filename>readline.pc</filename> file.</para> 70 </listitem> 71 </varlistentry> 72 73 <varlistentry> 74 <term><parameter>--disable-bracketed-paste-default</parameter></term> 75 <listitem> 76 <para>Bracketed paste mode is enabled by default. Set this default 77 to off. Omit this configure option if bracketed paste is 78 desired.</para> 69 79 </listitem> 70 80 </varlistentry> -
chapter08/stripping.xml
rb0a6b0c r460f575 41 41 rationale to use the <command>install</command> command here.</para> 42 42 43 <note><para>The ELF loader's name is ld-linux- x86-64.so.2on 64-bit systems44 and ld-linux .so.2on 32-bit systems. The contruct below selects the43 <note><para>The ELF loader's name is ld-linux-aarch64.so.1 on 64-bit systems 44 and ld-linux-armhf.so.3 on 32-bit systems. The contruct below selects the 45 45 correct name for the current architecture.</para></note> 46 46 … … 51 51 libc.so.6 52 52 libthread_db.so.1 53 libquadmath.so.&libquadmath-version;54 53 libstdc++.so.&libstdcpp-version; 55 54 libitm.so.&libitm-version; -
chapter08/tcl.xml
rb0a6b0c r460f575 65 65 ./configure --prefix=/usr \ 66 66 --mandir=/usr/share/man \ 67 $([ "$(uname -m)" = x86_64 ] && echo --enable-64bit)</userinput></screen>67 $([ "$(uname -m)" = aarch64 ] && echo --enable-64bit)</userinput></screen> 68 68 69 69 <variablelist> … … 71 71 72 72 <varlistentry> 73 <term><parameter>$([ "$(uname -m)" = x86_64 ] && echo --enable-64bit)</parameter></term>73 <term><parameter>$([ "$(uname -m)" = aarch64 ] && echo --enable-64bit)</parameter></term> 74 74 <listitem> 75 75 <para>The construct <parameter>$(<shell command>)</parameter> -
chapter08/util-linux.xml
rb0a6b0c r460f575 512 512 </varlistentry> 513 513 514 <varlistentry id="i386">515 <term><command>i386</command></term>516 <listitem>517 <para>A symbolic link to setarch</para>518 <indexterm zone="ch-system-util-linux i386">519 <primary sortas="b-i386">i386</primary>520 </indexterm>521 </listitem>522 </varlistentry>523 524 514 <varlistentry id="ionice"> 525 515 <term><command>ionice</command></term> … … 1260 1250 </varlistentry> 1261 1251 1262 <varlistentry id="x86_64">1263 <term><command>x86_64</command></term>1264 <listitem>1265 <para>A symbolic link to setarch</para>1266 <indexterm zone="ch-system-util-linux x86_64">1267 <primary sortas="b-x86_64">x86_64</primary>1268 </indexterm>1269 </listitem>1270 </varlistentry>1271 1272 1252 <varlistentry id="zramctl"> 1273 1253 <term><command>zramctl</command></term> -
chapter10/kernel.xml
rb0a6b0c r460f575 247 247 the filename should be <emphasis>vmlinuz</emphasis> to be compatible with 248 248 the automatic setup of the boot process described in the next section. The 249 following command assumes an x86architecture:</para>250 251 <screen><userinput remap="install">cp -iv arch/ x86/boot/bzImage /boot/vmlinuz-&linux-version;-lfs-&version;</userinput></screen>249 following command assumes an ARM64 architecture:</para> 250 251 <screen><userinput remap="install">cp -iv arch/arm64/boot/bzImage /boot/vmlinuz-&linux-version;-lfs-&version;</userinput></screen> 252 252 253 253 <para><filename>System.map</filename> is a symbol file for the kernel. -
general.ent
rb0a6b0c r460f575 85 85 <!ENTITY test-results "&lfs-root;lfs/build-logs/&generic-version;/"> 86 86 <!ENTITY secadv "&lfs-root;lfs/advisories/"> 87 <!ENTITY min-kernel " 3.2">87 <!ENTITY min-kernel "5.4"> 88 88 <!-- 89 89 <!ENTITY patches-rootd "&lfs-root;patches/lfs/&generic-versiond;/"> -
packages.ent
rb0a6b0c r460f575 230 230 <!ENTITY gcc-fin-du "4.3 GB "> 231 231 <!ENTITY gcc-fin-sbu "153 SBU (with tests)"> 232 <! ENTITY libquadmath-version "0.0.0">232 <!--!ENTITY libquadmath-version "0.0.0"--> 233 233 <!ENTITY libstdcpp-version "6.0.29"> 234 234 <!ENTITY libitm-version "1.0.0"> … … 353 353 <!ENTITY iproute2-fin-du "15 MB"> 354 354 <!ENTITY iproute2-fin-sbu "0.2 SBU"> 355 356 <!ENTITY isl-version "0.24"> 357 <!ENTITY isl-size "1,886 KB"> 358 <!ENTITY isl-url "https://libisl.sourceforge.io/isl-&isl-version;.tar.xz"> 359 <!ENTITY isl-md5 "fae030f604a9537adc2502990a8ab4d1"> 360 <!ENTITY isl-sha256 "043105cc544f416b48736fff8caf077fb0663a717d06b1113f16e391ac99ebad"> 361 <!ENTITY isl-home "https://libisl.sourceforge.io"> 362 <!ENTITY isl-fin-du "5.6 MB"> 363 <!ENTITY isl-fin-sbu "0.4 SBU"> 355 364 356 365 <!ENTITY jinja2-version "3.0.3"> -
part3intro/toolchaintechnotes.xml
rb0a6b0c r460f575 157 157 script that comes with the source for many packages. Unpack the binutils 158 158 sources and run the script: <userinput>./config.guess</userinput> and note 159 the output. For example, for a 32-bit Intel processor the 160 output will be <emphasis>i686-pc-linux-gnu</emphasis>. On a 64-bit 161 system it will be <emphasis>x86_64-pc-linux-gnu</emphasis>.</para> 159 the output. For example, for a 32-bit ARM processor the 160 output may be <emphasis>armv6l-unknown-linux-gnueabi</emphasis>. On a 161 64-bit system it may 162 be <emphasis>aarch64-unknown-linux-gnu</emphasis>.</para> 162 163 163 164 <para>Also be aware of the name of the platform's dynamic linker, often -
prologue/architecture.xml
rb0a6b0c r460f575 11 11 <title>LFS Target Architectures</title> 12 12 13 <para>The primary target architectures of LFS are the AMD/Intel x86 (32-bit) 14 and x86_64 (64-bit) CPUs. On the other hand, the instructions in this book are 15 also known to work, with some modifications, with the Power PC and ARM CPUs. To 16 build a system that utilizes one of these CPUs, the main prerequisite, in 13 <para>The primary target architectures of LFS-ARM are the ARM and ARM64 CPUs. 14 For other ARCHs refer to the main LFS book or CLFS as a historical reference. 15 To build a system that utilizes one of these CPUs, the main prerequisite, in 17 16 addition to those on the next page, is an existing Linux system such as an 18 17 earlier LFS installation, Ubuntu, Red Hat/Fedora, SuSE, or other distribution 19 18 that targets the architecture that you have. Also note that a 32-bit 20 distribution can be installed and used as a host system on a 64-bit AMD/Intel 21 computer.</para> 22 23 <para>For building LFS, the gain of building on a 64-bit system 24 compared to a 32-bit system is minimal. 25 For example, in a test build of LFS-9.1 on a Core i7-4790 CPU based system, 26 using 4 cores, the following statistics were measured:</para> 27 28 <screen><computeroutput>Architecture Build Time Build Size 29 32-bit 239.9 minutes 3.6 GB 30 64-bit 233.2 minutes 4.4 GB</computeroutput></screen> 31 32 <para>As you can see, on the same hardware, the 64-bit build is only 3% faster 33 and is 22% larger than the 32-bit build. If you plan to use LFS as a LAMP 34 server, or a firewall, a 32-bit CPU may be largely sufficient. On the other 35 hand, several packages in BLFS now need more than 4GB of RAM to be built 36 and/or to run, so that if you plan to use LFS as a desktop, the LFS authors 37 recommend building on a 64-bit system.</para> 38 39 <para>The default 64-bit build that results from LFS is considered a 40 <quote>pure</quote> 64-bit system. That is, it supports 64-bit executables 41 only. Building a <quote>multi-lib</quote> system requires compiling many 42 applications twice, once for a 32-bit system and once for a 64-bit system. 43 This is not directly supported in LFS because it would interfere with the 44 educational objective of providing the instructions needed for a 45 straightforward base Linux system. Some LFS/BLFS editors maintain a fork 46 of LFS for multilib, which is accessible at <ulink 47 url="https://www.linuxfromscratch.org/~thomas/multilib/index.html"/>. But it 48 is an advanced topic.</para> 19 distribution can be installed and used as a host system on a 64-bit ARM 20 unoptimized computer.</para> 49 21 50 22 </sect1> -
prologue/bookinfo.xml
rb0a6b0c r460f575 30 30 <surname>Lucas</surname> 31 31 </author> 32 33 <author> 34 <firstname>Editor: William</firstname> 35 <surname>Harrington</surname> 36 </author> 37 32 38 </authorgroup> 39 33 40 34 41 <copyright id="copyright"> … … 38 45 39 46 <legalnotice> 40 41 <para>Copyright © ©rightdate;, Gerard Beekmans</para>42 47 43 48 <para>All rights reserved.</para> -
prologue/why.xml
rb0a6b0c r460f575 292 292 <para>This package contains programs for basic and advanced IPv4 and 293 293 IPv6 networking. It was chosen over the other common network 294 tools package (net-tools) for its IPv6 capabilities. </para> 294 tools package (net-tools) for its IPv6 capabilities.</para> 295 </listitem> 296 297 <listitem> 298 <para>ISL</para> 299 300 <para>This package provides a thread-safe C library for manipulating 301 sets and relations of integer points bounded by affine constraints. 302 It is used as backend polyhedral library in the GCC Graphite framework 303 and in the LLVM Polly framework for loop optimizations.</para> 295 304 </listitem> 296 305
Note:
See TracChangeset
for help on using the changeset viewer.