Changeset 460f575


Ignore:
Timestamp:
02/25/2022 08:47:36 PM (2 years ago)
Author:
William Harrington <kb0iic@…>
Branches:
arm
Children:
9c0b35a
Parents:
b0a6b0c
Message:

Initial LFS-ARM book.

Files:
2 added
32 edited

Legend:

Unmodified
Added
Removed
  • appendices/acknowledgments.xml

    rb0a6b0c r460f575  
    5151
    5252    <listitem>
     53      <para><ulink url="mailto:kb0iic@linuxfromscratch.org">William Harrington</ulink>
     54      &lt;kb0iic@gmail.com&gt; &ndash; LFS ARM Editor</para>
     55    </listitem>
     56
     57    <listitem>
    5358      <para>Countless other people on the various LFS and BLFS mailing lists
    5459      who helped make this book possible by giving their suggestions, testing
  • appendices/dependencies.xml

    rb0a6b0c r460f575  
    919919        <seglistitem>
    920920          <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>
    923923        </seglistitem>
    924924      </segmentedlist>
     
    950950          <seg>
    951951             <ulink url="http://gcc.gnu.org/wiki/GNAT">GNAT</ulink>
    952              and
    953              <ulink url="https://repo.or.cz/isl.git">ISL</ulink>
    954952          </seg>
    955953        </seglistitem>
     
    14731471        </seglistitem>
    14741472      </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>
    14751512
    14761513<!-- Begin Jinja2 dependency info -->
  • chapter01/whatsnew.xml

    rb0a6b0c r460f575  
    139139      <para>IPRoute2-&iproute2-version;</para>
    140140    </listitem>
     141    <!--<listitem>
     142      <para>ISL-&isl-version;</para>
     143    </listitem>-->
    141144    <listitem revision="systemd">
    142145      <para>Jinja2-&jinja2-version;</para>
  • chapter03/packages.xml

    rb0a6b0c r460f575  
    359359    </varlistentry>
    360360
     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
    361371    <varlistentry revision="systemd">
    362372      <term>Jinja2 (&jinja2-version;) - <token>&jinja2-size;</token>:</term>
  • chapter04/addinguser.xml

    rb0a6b0c r460f575  
    8383<screen><userinput>chown -v lfs $LFS/{usr{,/*},lib,var,etc,bin,sbin,tools}
    8484case $(uname -m) in
    85   x86_64) chown -v lfs $LFS/lib64 ;;
     85  aarch64) chown -v lfs $LFS/lib64 ;;
    8686esac</userinput></screen>
    8787
  • chapter04/creatingminlayout.xml

    rb0a6b0c r460f575  
    2828
    2929case $(uname -m) in
    30   x86_64) mkdir -pv $LFS/lib64 ;;
     30  aarch64) mkdir -pv $LFS/lib64 ;;
    3131esac</userinput></screen>
    3232
  • chapter05/gcc-pass1.xml

    rb0a6b0c r460f575  
    4444    <title>Installation of Cross GCC</title>
    4545
    46     <para>GCC requires the GMP, MPFR and MPC packages. As these packages may
    47     not be included in your host distribution, they will be built with
     46    <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
    4848    GCC.  Unpack each package into the GCC source directory and rename the
    4949    resulting directories so the GCC build procedures will automatically
     
    6161mv -v gmp-&gmp-version; gmp
    6262tar -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
     63mv -v mpc-&mpc-version; mpc
     64tar -xf ../isl-&isl-version;.tar.xz
     65mv -v isl-&isl-version; isl</userinput></screen>
     66
     67    <para>On aarch64 hosts, set the default directory name for
    6668    64-bit libraries to <quote>lib</quote>:</para>
    6769
    6870<screen><userinput remap="pre">case $(uname -m) in
    69   x86_64)
    70     sed -e '/m64=/s/lib64/lib/' \
    71         -i.orig gcc/config/i386/t-linux64
     71  aarch64)
     72    sed -e '/mabi.lp64=/s/lib64/lib/' \
     73        -i.orig gcc/config/aarch64/t-aarch64-linux
    7274 ;;
    7375esac</userinput></screen>
     
    155157        <term><parameter>--disable-multilib</parameter></term>
    156158        <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>
    159161        </listitem>
    160162      </varlistentry>
  • chapter05/glibc.xml

    rb0a6b0c r460f575  
    4545
    4646    <para>First, create a symbolic link for LSB compliance. Additionally,
    47     for x86_64, create a compatibility symbolic link required for proper
     47    for aarch64, create a compatibility symbolic link required for proper
    4848    operation of the dynamic library loader:</para>
    4949
    5050<screen><userinput remap="pre">case $(uname -m) in
    51     i?86)   ln -sfv ld-linux.so.2 $LFS/lib/ld-lsb.so.3
    52     ;;
    53     x86_64) ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64
    54             ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64/ld-lsb-x86-64.so.3
    55     ;;
     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             ;;
    5656esac</userinput></screen>
    5757
     
    203203      and the output of the last command will be of the form:</para>
    204204
    205 <screen><computeroutput>[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]</computeroutput></screen>
     205<screen><computeroutput>[Requesting program interpreter: /lib/ld-linux-aarch64.so.1]</computeroutput></screen>
    206206
    207207      <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>
    209209
    210210      <para>If the output is not shown as above or there was no output at all,
  • chapter06/gcc-pass2.xml

    rb0a6b0c r460f575  
    4444    <title>Installation of GCC</title>
    4545
    46     <para>As in the first build of GCC, the GMP, MPFR, and MPC packages are
     46    <para>As in the first build of GCC, the GMP, ISL, MPFR, and MPC packages are
    4747    required. Unpack the tarballs and move them into the required directory
    4848    names:</para>
     
    5353mv -v gmp-&gmp-version; gmp
    5454tar -xf ../mpc-&mpc-version;.tar.gz
    55 mv -v mpc-&mpc-version; mpc</userinput></screen>
     55mv -v mpc-&mpc-version; mpc
     56tar -xf ../isl-&isl-version;.tar.xz
     57mv -v isl-&isl-version; isl</userinput></screen>
    5658
    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
    5861    libraries to <quote>lib</quote>:</para>
    5962
    6063<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
    6367  ;;
    6468esac</userinput></screen>
    65 <!--
    66     <para>Fix an issue with GCC-10.1 when building with a cross
    67     compiler:</para>
    6869
    69 <screen><userinput remap="pre">patch -Np1 -i ../&gcc-cross-patch;</userinput></screen>
    70 -->
    7170    <para>Create a separate build directory again:</para>
    7271
     
    123122        <listitem>
    124123          <para>This option is automatically enabled when building a native
    125           compiler with a native compiler on x86. But here, we build with
     124          compiler with a native compiler on ARM. But here, we build with
    126125          a cross compiler, so we need to explicitly set this option.</para>
    127126        </listitem>
  • chapter07/changingowner.xml

    rb0a6b0c r460f575  
    3636<screen><userinput>chown -R root:root $LFS/{usr,lib,var,etc,bin,sbin,tools}
    3737case $(uname -m) in
    38   x86_64) chown -R root:root $LFS/lib64 ;;
     38  aarch64) chown -R root:root $LFS/lib64 ;;
    3939esac</userinput></screen>
    4040
  • chapter08/adjusting.xml

    rb0a6b0c r460f575  
    5353  platform-specific differences in the dynamic linker name):</para>
    5454
    55 <screen os="c"><computeroutput>[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]</computeroutput></screen>
     55<screen os="c"><computeroutput>[Requesting program interpreter: /lib/ld-linux-aarch64.so.1]</computeroutput></screen>
    5656
    5757  <para>Note that on 64-bit systems <filename class="directory">/lib</filename> is
     
    6060
    6161  <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>
    6363
    6464  <para os="d">Now make sure that we're setup to use the correct start files:</para>
     
    8080
    8181<screen><computeroutput>#include &lt;...&gt; search starts here:
    82  /tools/lib/gcc/x86_64-pc-linux-gnu/&gcc-version;/include
     82 /tools/lib/gcc/aarch64-pc-linux-gnu/&gcc-version;/include
    8383 /tools/include
    84  /tools/lib/gcc/x86_64-pc-linux-gnu/&gcc-version;/include-fixed
     84 /tools/lib/gcc/aarch64-pc-linux-gnu/&gcc-version;/include-fixed
    8585 /usr/include</computeroutput></screen>
    8686
    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>
    8888
    8989  <para os="i">Next, verify that the new linker is being used with the correct search paths:</para>
     
    112112  platform-specific differences in dynamic linker name):</para>
    113113
    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>
    115115
    116116  <para os="t">If the output does not appear as shown above or is not received
  • chapter08/binutils.xml

    rb0a6b0c r460f575  
    7272find -name \*.1 -delete</userinput></screen>
    7373-->
    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-->
    8280    <para>The Binutils documentation recommends building Binutils
    8381    in a dedicated build directory:</para>
     
    153151          ultimately be located) is set to <filename
    154152          class="directory">$(exec_prefix)/$(target_alias)</filename>. For
    155           example, x86_64 machines would expand that to <filename
    156           class="directory">/usr/x86_64-pc-linux-gnu</filename>. Because this is
    157           a custom system, this target-specific directory in <filename
     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
    158156          class="directory">/usr</filename> is not required. <filename
    159157          class="directory">$(exec_prefix)/$(target_alias)</filename> would be
  • chapter08/chapter08.xml

    rb0a6b0c r460f575  
    3535  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="mpfr.xml"/>
    3636  <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"/>
    3738  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="attr.xml"/>
    3839  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="acl.xml"/>
  • chapter08/expect.xml

    rb0a6b0c r460f575  
    5151    <para>Prepare Expect for compilation:</para>
    5252
    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>
    5859
    5960    <variablelist>
     
    7475          <para>This explicitly tells Expect where to find Tcl's internal
    7576          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>
    7685        </listitem>
    7786      </varlistentry>
  • chapter08/findutils.xml

    rb0a6b0c r460f575  
    4747
    4848<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 ;;
    5151esac</userinput></screen>
    52 
    5352    <variablelist>
    5453      <title>The meaning of the configure options:</title>
  • chapter08/gcc.xml

    rb0a6b0c r460f575  
    5050    -i libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp</userinput></screen>
    5151
    52     <para>If building on x86_64, change the default directory name for 64-bit
     52    <para>If building on aarch64, change the default directory name for 64-bit
    5353    libraries to <quote>lib</quote>:</para>
    5454
    5555<screen><userinput remap="pre">case $(uname -m) in
    56   x86_64)
    57     sed -e '/m64=/s/lib64/lib/' \
    58         -i.orig gcc/config/i386/t-linux64
     56  aarch64)
     57    sed -e '/mabi.lp64=/s/lib64/lib/' \
     58        -i.orig gcc/config/aarch64/t-aarch64-linux
    5959  ;;
    6060esac</userinput></screen>
     
    222222    xpointer="xpointer(//*[@os='f'])"/>
    223223
    224 <screen><computeroutput>/usr/lib/gcc/x86_64-pc-linux-gnu/&gcc-version;/../../../../lib/crt1.o succeeded
    225 /usr/lib/gcc/x86_64-pc-linux-gnu/&gcc-version;/../../../../lib/crti.o succeeded
    226 /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>
    227227
    228228  <para>Depending on your machine architecture, the above may differ slightly.
     
    244244
    245245<screen><computeroutput>#include &lt;...&gt; search starts here:
    246  /usr/lib/gcc/x86_64-pc-linux-gnu/&gcc-version;/include
     246 /usr/lib/gcc/aarch-64-unknown-linux-gnu/&gcc-version;/include
    247247 /usr/local/include
    248  /usr/lib/gcc/x86_64-pc-linux-gnu/&gcc-version;/include-fixed
     248 /usr/lib/gcc/aarch64-unknown-linux-gnu/&gcc-version;/include-fixed
    249249 /usr/include</computeroutput></screen>
    250250
     
    264264    xpointer="xpointer(//*[@os='k'])"/>
    265265
    266 <screen><computeroutput>SEARCH_DIR("/usr/x86_64-pc-linux-gnu/lib64")
     266<screen><computeroutput>SEARCH_DIR("/usr/aarch64-unknown-linux-gnu/lib64")
    267267SEARCH_DIR("/usr/local/lib64")
    268268SEARCH_DIR("/lib64")
    269269SEARCH_DIR("/usr/lib64")
    270 SEARCH_DIR("/usr/x86_64-pc-linux-gnu/lib")
     270SEARCH_DIR("/usr/aarch64-unknown-linux-gnu/lib")
    271271SEARCH_DIR("/usr/local/lib")
    272272SEARCH_DIR("/lib")
     
    274274
    275275   <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")
    283279SEARCH_DIR("/usr/local/lib")
    284280SEARCH_DIR("/lib")
     
    352348        libgcc_s.so, libgcov.a, libgomp.{a,so}, libitm.{a,so},
    353349        liblsan.{a,so}, liblto_plugin.so,
    354         libquadmath.{a,so}, libssp.{a,so}, libssp_nonshared.a,
     350        libssp.{a,so}, libssp_nonshared.a,
    355351        libstdc++.{a,so}, libstdc++fs.a, libsupc++.a, libtsan.{a,so},
    356352        and libubsan.{a,so}</seg>
  • chapter08/glibc.xml

    rb0a6b0c r460f575  
    5050    -i sysdeps/unix/sysv/linux/mq_notify.c</userinput></screen>
    5151-->
     52
    5253    <para>Some of the Glibc programs use the non-FHS compliant
    5354    <filename class="directory">/var/db</filename> directory to store
     
    140141<!-- Use remap="make" here to work around a jhalfs issue. -->
    141142<!--<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 ;;
    144145esac</userinput></screen>
    145146
     
    434435
    435436    <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
    437439    <filename class="directory">/lib</filename> and <filename
    438440    class="directory">/usr/lib</filename> for dynamic libraries that are
     
    483485        <seg>gencat, getconf, getent, iconv, iconvconfig, ldconfig,
    484486        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,
    487488        pcprofiledump, pldd, sln, sotruss, sprof, tzselect, xtrace,
    488489        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,
    490491        libBrokenLocale.{a,so}, libanl.{a,so},
    491492        libc.{a,so}, libc_nonshared.a, libc_malloc_debug.so,
  • chapter08/gmp.xml

    rb0a6b0c r460f575  
    4343
    4444    <note>
    45       <para>If you are building for 32-bit x86, but you have a CPU which is
     45      <para>If you are building for 32-bit arm, but you have a CPU which is
    4646      capable of running 64-bit code <emphasis>and</emphasis> you have specified
    4747      <envar>CFLAGS</envar> in the environment, the configure script will
     
    107107    applications using the gmp libraries with the message "Illegal
    108108    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>
    110110
    111111    <para>Ensure that all 197 tests in the test suite passed.
  • chapter08/grub.xml

    rb0a6b0c r460f575  
    5151    </note>
    5252
     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
    5363    <para>Prepare GRUB for compilation:</para>
    5464
  • chapter08/libcap.xml

    rb0a6b0c r460f575  
    6060          <para>This parameter sets the library directory to
    6161          <filename>/usr/lib</filename> rather than
    62           <filename>/usr/lib64</filename> on x86_64. It has no effect on
    63           x86.</para>
     62          <filename>/usr/lib64</filename> on aarch64. It has no effect on
     63          arm.</para>
    6464        </listitem>
    6565      </varlistentry>
  • chapter08/libffi.xml

    rb0a6b0c r460f575  
    7070          system, use the less capable system as a parameter. For details
    7171          about alternative system types, see <ulink
    72           url='https://gcc.gnu.org/onlinedocs/gcc-&gcc-version;/gcc/x86-Options.html'>
    73           the x86 options 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>
    7474        </listitem>
    7575      </varlistentry>
  • chapter08/readline.xml

    rb0a6b0c r460f575  
    5252    <para>Prepare Readline for compilation:</para>
    5353
    54 <screen><userinput remap="configure">./configure --prefix=/usr    \
     54    <screen><userinput remap="configure">./configure --prefix=/usr    \
     55            --disable-bracketed-paste-default \
    5556            --disable-static \
    5657            --with-curses    \
     
    6768               termcap library. It allows generating a correct
    6869               <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>
    6979        </listitem>
    7080      </varlistentry>
  • chapter08/stripping.xml

    rb0a6b0c r460f575  
    4141  rationale to use the <command>install</command> command here.</para>
    4242
    43   <note><para>The ELF loader's name is ld-linux-x86-64.so.2 on 64-bit systems
    44   and ld-linux.so.2 on 32-bit systems.  The contruct below selects the
     43  <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
    4545  correct name for the current architecture.</para></note>
    4646
     
    5151             libc.so.6
    5252             libthread_db.so.1
    53              libquadmath.so.&libquadmath-version;
    5453             libstdc++.so.&libstdcpp-version;
    5554             libitm.so.&libitm-version;
  • chapter08/tcl.xml

    rb0a6b0c r460f575  
    6565./configure --prefix=/usr           \
    6666            --mandir=/usr/share/man \
    67             $([ "$(uname -m)" = x86_64 ] &amp;&amp; echo --enable-64bit)</userinput></screen>
     67            $([ "$(uname -m)" = aarch64 ] &amp;&amp; echo --enable-64bit)</userinput></screen>
    6868
    6969    <variablelist>
     
    7171
    7272      <varlistentry>
    73         <term><parameter>$([ "$(uname -m)" = x86_64 ] &amp;&amp; echo --enable-64bit)</parameter></term>
     73        <term><parameter>$([ "$(uname -m)" = aarch64 ] &amp;&amp; echo --enable-64bit)</parameter></term>
    7474        <listitem>
    7575          <para>The construct <parameter>$(&lt;shell command&gt;)</parameter>
  • chapter08/util-linux.xml

    rb0a6b0c r460f575  
    512512      </varlistentry>
    513513
    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 
    524514      <varlistentry id="ionice">
    525515        <term><command>ionice</command></term>
     
    12601250      </varlistentry>
    12611251
    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 
    12721252      <varlistentry id="zramctl">
    12731253        <term><command>zramctl</command></term>
  • chapter10/kernel.xml

    rb0a6b0c r460f575  
    247247    the filename should be <emphasis>vmlinuz</emphasis> to be compatible with
    248248    the automatic setup of the boot process described in the next section.  The
    249     following command assumes an x86 architecture:</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>
    252252
    253253    <para><filename>System.map</filename> is a symbol file for the kernel.
  • general.ent

    rb0a6b0c r460f575  
    8585<!ENTITY test-results    "&lfs-root;lfs/build-logs/&generic-version;/">
    8686<!ENTITY secadv          "&lfs-root;lfs/advisories/">
    87 <!ENTITY min-kernel      "3.2">
     87<!ENTITY min-kernel      "5.4">
    8888<!--
    8989<!ENTITY patches-rootd   "&lfs-root;patches/lfs/&generic-versiond;/">
  • packages.ent

    rb0a6b0c r460f575  
    230230<!ENTITY gcc-fin-du "4.3 GB ">
    231231<!ENTITY gcc-fin-sbu "153 SBU (with tests)">
    232 <!ENTITY libquadmath-version "0.0.0">
     232<!--!ENTITY libquadmath-version "0.0.0"-->
    233233<!ENTITY libstdcpp-version   "6.0.29">
    234234<!ENTITY libitm-version      "1.0.0">
     
    353353<!ENTITY iproute2-fin-du "15 MB">
    354354<!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">
    355364
    356365<!ENTITY jinja2-version "3.0.3">
  • part3intro/toolchaintechnotes.xml

    rb0a6b0c r460f575  
    157157      script that comes with the source for many packages. Unpack the binutils
    158158      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>
    162163
    163164      <para>Also be aware of the name of the platform's dynamic linker, often
  • prologue/architecture.xml

    rb0a6b0c r460f575  
    1111  <title>LFS Target Architectures</title>
    1212
    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.
     14For other ARCHs refer to the main LFS book or CLFS as a historical reference.
     15To build a system that utilizes one of these CPUs, the main prerequisite, in
    1716addition to those on the next page, is an existing Linux system such as an
    1817earlier LFS installation, Ubuntu, Red Hat/Fedora, SuSE, or other distribution
    1918that 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>
     19distribution can be installed and used as a host system on a 64-bit ARM
     20unoptimized computer.</para>
    4921
    5022</sect1>
  • prologue/bookinfo.xml

    rb0a6b0c r460f575  
    3030      <surname>Lucas</surname>
    3131    </author>
     32
     33    <author>
     34      <firstname>Editor: William</firstname>
     35      <surname>Harrington</surname>
     36    </author>
     37
    3238  </authorgroup>
     39
    3340
    3441  <copyright id="copyright">
     
    3845
    3946  <legalnotice>
    40 
    41     <para>Copyright &copy; &copyrightdate;, Gerard Beekmans</para>
    4247
    4348    <para>All rights reserved.</para>
  • prologue/why.xml

    rb0a6b0c r460f575  
    292292        <para>This package contains programs for basic and advanced IPv4 and
    293293        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>
    295304      </listitem>
    296305
Note: See TracChangeset for help on using the changeset viewer.