[lfs] branch multilib updated: Removed x32-bit support for ML.

"Git Owner" ([email protected] via lfs-book Mailing List) <[email protected]>
Newsgroups gmane.linux.lfs.book
Message-ID <177396038438.28936.14642381961877497703@rivendell.linuxfromscratch.org>
This is an automated email from the git hooks/post-receive script.

git pushed a commit to branch multilib
in repository lfs.

The following commit(s) were added to refs/heads/multilib by this push:
     new ab6e014a2 Removed x32-bit support for ML.
ab6e014a2 is described below

commit ab6e014a2d72aeeacae699c40612170a7fe21a43
Author: Zeckmathederg <[email protected]>
AuthorDate: Thu Mar 19 16:46:02 2026 -0600

    Removed x32-bit support for ML.
    
    In most cases, there is no need for x32-bit support unless the main
    architecture being used is x32-bit support, not 64-bit. Please read the
    x32-bit removal announcement for more information if curious.
---
 Makefile                           |  20 -----
 chapter01/askforhelp.xml           |   2 +-
 chapter01/changelog.xml            |  18 ++++-
 chapter02/hostreqs.xml             |  31 +-------
 chapter04/addinguser.xml           |   8 +-
 chapter04/creatingminlayout.xml    |  18 +----
 chapter04/settingenviron.xml       |  27 ++-----
 chapter05/gcc-pass1.xml            | 154 +++++++++++++------------------------
 chapter05/glibc.xml                |  98 ++---------------------
 chapter05/libstdc++.xml            |  12 +--
 chapter05/libxcrypt.xml            |  41 +---------
 chapter06/gcc-pass2.xml            |  76 ++++++------------
 chapter06/ncurses.xml              |  46 +----------
 chapter07/changingowner.xml        |  10 +--
 chapter07/cleanup.xml              |   5 +-
 chapter07/creatingdirs.xml         |   3 -
 chapter07/util-linux.xml           |  49 +-----------
 chapter08/acl.xml                  |  40 +---------
 chapter08/attr.xml                 |  40 +---------
 chapter08/bzip2.xml                |  34 +-------
 chapter08/cleanup.xml              |   6 +-
 chapter08/dbus.xml                 |  41 +---------
 chapter08/expat.xml                |  41 +---------
 chapter08/file.xml                 |  38 +--------
 chapter08/gcc.xml                  |  65 ++++------------
 chapter08/gdbm.xml                 |  40 +---------
 chapter08/glibc.xml                |  92 ++--------------------
 chapter08/gmp.xml                  |  90 +++-------------------
 chapter08/kmod.xml                 |  39 +---------
 chapter08/libcap.xml               |  33 +-------
 chapter08/libelf.xml               |  43 +----------
 chapter08/libffi.xml               |  44 +----------
 chapter08/libtool.xml              |  38 +--------
 chapter08/libxcrypt.xml            |  40 +---------
 chapter08/lz4.xml                  |  32 +-------
 chapter08/meson.xml                |  48 ++----------
 chapter08/ncurses.xml              |  51 +-----------
 chapter08/openssl.xml              |  40 +---------
 chapter08/pcre.xml                 |  46 +----------
 chapter08/pkgconf.xml              |  29 ++-----
 chapter08/readline.xml             |  40 +---------
 chapter08/sqlite.xml               |  44 +----------
 chapter08/stripping.xml            |  53 ++-----------
 chapter08/systemd.xml              |  56 ++------------
 chapter08/udev.xml                 |  43 +----------
 chapter08/util-linux.xml           |  79 +------------------
 chapter08/xz.xml                   |  39 +---------
 chapter08/zlib.xml                 |  34 +-------
 chapter08/zstd.xml                 |  32 +-------
 chapter10/kernel.xml               |  34 ++------
 chapter10/kernel/multilib-32.toml  |   1 -
 chapter10/kernel/multilib-32.xml   |   2 +-
 chapter10/kernel/multilib-x32.toml |   2 -
 chapter10/kernel/multilib-x32.xml  |   7 --
 prologue/audience.xml              |   6 +-
 prologue/bookinfo.xml              |   2 +-
 prologue/multilib.xml              |  74 ++++++++----------
 57 files changed, 271 insertions(+), 1905 deletions(-)

diff --git a/Makefile b/Makefile
index e16ccda36..a952348a5 100644
--- a/Makefile
+++ b/Makefile
@@ -33,24 +33,6 @@ ifeq ($(REV), sysv)
   DUMPDIR         ?= $(HOME)/mlfs-sysv-commands
 endif
 
-ifndef ARCH
-  ARCH = ml_all
-endif
-ifneq ($(ARCH), none)
-  ifneq ($(ARCH), ml_32)
-    ifneq ($(ARCH), ml_x32)
-      ifneq ($(ARCH), ml_all)
-        $(error ARCH must be either 'ml_all' (ml_all if unset), 'ml_32', 'ml_x32', or 'none')
-      endif
-    endif
-  endif
-endif
-ifeq ($(ARCH), none)
-  R_ARCH = default
-else
-  R_ARCH = $(ARCH)
-endif
-
 book: validate profile-html
 	@echo "Generating chunked XHTML files at $(BASEDIR)..."
 	$(Q)xsltproc --nonet                          \
@@ -143,7 +125,6 @@ validate: tmpdir version
 	$(Q)xsltproc --nonet                               \
                 --xinclude                            \
                 --stringparam profile.revision $(REV) \
-                --stringparam profile.arch $(R_ARCH)  \
                 --output $(RENDERTMP)/lfs-html2.xml   \
                 stylesheets/lfs-xsl/profile.xsl       \
                 index.xml
@@ -201,7 +182,6 @@ $(BASEDIR)/md5sums: stylesheets/wget-list.xsl $(DOWNLOADS_DEP)
 	$(Q)xsltproc --nonet                               \
                 --xinclude                            \
                 --stringparam profile.revision $(REV) \
-                --stringparam profile.arch $(R_ARCH)  \
                 --output $(RENDERTMP)/md5sum.xml      \
                 stylesheets/lfs-xsl/profile.xsl       \
                 chapter03/chapter03.xml
diff --git a/chapter01/askforhelp.xml b/chapter01/askforhelp.xml
index e01751b93..eda607dce 100644
--- a/chapter01/askforhelp.xml
+++ b/chapter01/askforhelp.xml
@@ -60,7 +60,7 @@
 
     <itemizedlist>
       <listitem>
-        <para>The version of the book being used (in this case &version;<phrase arch="ml_32,ml_x32,ml_all">-multilib</phrase>)</para>
+        <para>The version of the book being used (in this case &version;)</para>
       </listitem>
       <listitem>
         <para>The host distribution and version being used to create LFS</para>
diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml
index e333cc07f..f8d1c49ea 100644
--- a/chapter01/changelog.xml
+++ b/chapter01/changelog.xml
@@ -10,10 +10,11 @@
 
   <title>Changelog</title>
 
-  <para>This is version &version;<phrase arch="ml_32,ml_x32,ml_all">-multilib</phrase> of the Linux From Scratch book, dated
-  &releasedate;. If this book is more than six months old, a newer and better
-  version is probably already available. To find out, please check one of the
-  mirrors via <ulink url="&lfs-root;mirrors.html"/>.</para>
+  <para>This is version &version; of the Multilib Linux From Scratch book,
+  dated &releasedate;. If the first change in this changelog is more than six
+  months old, a newer and better version of this book is probably available.
+  To find out, please look through <ulink url="/mlfs/view/"/> or see <ulink
+  url="/mlfs/news.html"/>.</para>
 
   <para>Below is a list of changes made since the previous release of the
   book.</para>
@@ -40,6 +41,15 @@
     appropriate for the entry or if needed the entire day's listitem.
     -->
 
+    <listitem>
+      <para>2026-03-19</para>
+      <itemizedlist>
+        <listitem>
+          <para>[zeckma] - Removed x32-bit support.</para>
+        </listitem>
+      </itemizedlist>
+    </listitem>
+
     <listitem>
       <para>2026-03-15</para>
       <itemizedlist>
diff --git a/chapter02/hostreqs.xml b/chapter02/hostreqs.xml
index 944647a85..42989c2cf 100644
--- a/chapter02/hostreqs.xml
+++ b/chapter02/hostreqs.xml
@@ -275,36 +275,11 @@ EOF
 
 bash version-check.sh</userinput></screen>
 
-    <para arch="ml_32,ml_all">
-      Building the m32 multilib support requires the kernel of the host
-      system to have the 32-bit emulation support included:
+    <para>
+      You should also run the commands shown in <xref linkend="pre-multilib"/>
+      to ensure the toolchain can target 32-bit.
     </para>
 
-    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-      href="../chapter10/kernel/multilib-32.xml"/>
-
-    <para arch="ml_x32,ml_all">
-      Building the mx32 multilib support requires the kernel of the host
-      system to have the x32 ABI support included:
-    </para>
-
-    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-      href="../chapter10/kernel/multilib-x32.xml"/>
-
-    <para arch="ml_all">
-      In case your kernel does not have the x32 ABI support enabled but
-      only the 32-bit emulation support, you can continue to build your
-      system but you have to leave out any sections showing instructions
-      for building x32 objects, vice versa.
-    </para>
-
-    <para arch="ml_32,ml_x32,ml_all">
-      If the kernel feature required for a multilib architecture is not
-      enabled, building the multilib architecture for a package in
-      Chapter 8 may either fail immediately, or cause hidden breakages
-      because autoconf cannot probe the system features properly.
-    </para>
-    
   </sect2>
 
 </sect1>
diff --git a/chapter04/addinguser.xml b/chapter04/addinguser.xml
index 2ddaba019..9d3a569b9 100644
--- a/chapter04/addinguser.xml
+++ b/chapter04/addinguser.xml
@@ -80,13 +80,7 @@ useradd -s /bin/bash -g &lfs-groupname; -m -k /dev/null &lfs-username;</userinpu
   all the directories under <filename class="directory">$LFS</filename> by making
   <systemitem class="username">lfs</systemitem> the owner:</para>
 
-<screen><userinput>chown -v &lfs-username; $LFS/{usr{,/*},var,etc,tools}
-case $(uname -m) in
-  x86_64) chown -v &lfs-username; $LFS/lib64 ;;
-esac</userinput></screen>
-<screen arch="ml_32"  ><userinput>chown -v lfs $LFS/lib32</userinput></screen>
-<screen arch="ml_x32" ><userinput>chown -v lfs $LFS/libx32</userinput></screen>
-<screen arch="ml_all" ><userinput>chown -v lfs $LFS/{lib32,libx32}</userinput></screen>
+<screen><userinput>chown -v &lfs-username; $LFS/{usr{,/*},var,etc,tools,lib64}</userinput></screen>
 
 <note><para>In some host systems, the following <command>su</command> command does not complete
   properly and suspends the login for the &lfs-user; user to the background.
diff --git a/chapter04/creatingminlayout.xml b/chapter04/creatingminlayout.xml
index 28c652d70..a347ed794 100644
--- a/chapter04/creatingminlayout.xml
+++ b/chapter04/creatingminlayout.xml
@@ -21,23 +21,11 @@
   <para>Create the required directory layout by issuing the following commands as
   <systemitem class="username">root</systemitem>:</para>
 
-<screen><userinput>mkdir -pv $LFS/{etc,var} $LFS/usr/{bin,lib,sbin}
+<screen><userinput>mkdir -pv $LFS/{lib64,etc,var} $LFS/usr/{bin,lib{,32},sbin}
 
-for i in bin lib sbin; do
+for i in bin lib lib32 sbin; do
   ln -sv usr/$i $LFS/$i
-done
-
-case $(uname -m) in
-  x86_64) mkdir -pv $LFS/lib64 ;;
-esac</userinput>
-<userinput arch="ml_32">
-mkdir -pv $LFS/usr/lib32
-ln -sv usr/lib32 $LFS/lib32</userinput><userinput arch="ml_x32">
-mkdir -pv $LFS/usr/libx32
-ln -sv usr/libx32 $LFS/libx32</userinput><userinput arch="ml_all">
-mkdir -pv $LFS/usr/lib{,x}32
-ln -sv usr/lib32 $LFS/lib32
-ln -sv usr/libx32 $LFS/libx32</userinput></screen>
+done</userinput></screen>
 
   <para>Programs in <xref linkend="chapter-temporary-tools"/> will be compiled
   with a cross-compiler (more details can be found in section <xref
diff --git a/chapter04/settingenviron.xml b/chapter04/settingenviron.xml
index 95da193c0..f423c5ea8 100644
--- a/chapter04/settingenviron.xml
+++ b/chapter04/settingenviron.xml
@@ -38,31 +38,18 @@ EOF</userinput></screen>
   <filename>.bashrc</filename> file instead. Create the
   <filename>.bashrc</filename> file now:</para>
 
-<screen arch="default"><userinput>cat &gt; ~/.bashrc &lt;&lt; "EOF"
-<literal>set +h
-umask 022
-LFS=/mnt/lfs
-LC_ALL=POSIX
-LFS_TGT=$(uname -m)-lfs-linux-gnu
-PATH=/usr/bin
-if [ ! -L /bin ]; then PATH=/bin:$PATH; fi
-PATH=$LFS/tools/bin:$PATH
-CONFIG_SITE=$LFS/usr/share/config.site
-export LFS LC_ALL LFS_TGT PATH CONFIG_SITE</literal>
-EOF</userinput></screen>
-<screen arch="ml_32,ml_x32,ml_all"><userinput>cat &gt; ~/.bashrc &lt;&lt; "EOF"
+<screen><userinput>cat &gt; ~/.bashrc &lt;&lt; "EOF"
 <literal>set +h
 umask 022
 LFS=/mnt/lfs
 LC_ALL=POSIX
 LFS_TGT=x86_64-lfs-linux-gnu
 LFS_TGT32=i686-lfs-linux-gnu
-LFS_TGTX32=x86_64-lfs-linux-gnux32
 PATH=/usr/bin
 if [ ! -L /bin ]; then PATH=/bin:$PATH; fi
 PATH=$LFS/tools/bin:$PATH
 CONFIG_SITE=$LFS/usr/share/config.site
-export LFS LC_ALL LFS_TGT LFS_TGT32 LFS_TGTX32 PATH</literal>
+export LFS LC_ALL LFS_TGT LFS_TGT32 PATH</literal>
 EOF</userinput></screen>
 
   <variablelist>
@@ -115,12 +102,12 @@ EOF</userinput></screen>
     </varlistentry>
 
     <varlistentry>
-      <term><parameter>LFS_TGT=$(uname -m)-lfs-linux-gnu</parameter></term>
+      <term><parameter>LFS_TGT*=*-lfs-linux-gnu</parameter></term>
       <listitem>
-  <para>The <envar>LFS_TGT</envar> variable sets a non-default, but compatible machine
-  description for use when building our cross-compiler and linker and when
-  cross-compiling our temporary toolchain. More information is provided by
-  <xref linkend="ch-tools-toolchaintechnotes" role=""/>.</para>
+  <para>The <envar>LFS_TGT*</envar> variables set non-default, but compatible
+  machine descriptions for use when building the cross-compilers and linkers
+  and when cross-compiling the temporary toolchain. More information is
+  provided by <xref linkend="ch-tools-toolchaintechnotes" role=""/>.</para>
       </listitem>
     </varlistentry>
 
diff --git a/chapter05/gcc-pass1.xml b/chapter05/gcc-pass1.xml
index 4356f9d71..fa9f505f8 100644
--- a/chapter05/gcc-pass1.xml
+++ b/chapter05/gcc-pass1.xml
@@ -62,15 +62,13 @@ mv -v gmp-&gmp-version; gmp
 tar -xf ../mpc-&mpc-version;.tar.gz
 mv -v mpc-&mpc-version; mpc</userinput></screen>
 
-    <para arch="default">On x86_64 hosts, set the default directory name for
-    64-bit libraries to <quote>lib</quote>:</para>
+    <para>Change the default directory name for
+    libraries:</para>
 
-<screen arch="default"><userinput remap="pre">case $(uname -m) in
-  x86_64)
-    sed -e '/m64=/s/lib64/lib/' \
-        -i.orig gcc/config/i386/t-linux64
- ;;
-esac</userinput></screen>
+<screen><userinput remap="pre">sed -e '/m64=/s/lib64/lib/' \
+    -e '/m32=/s/m32=.*/m32=..\/lib32$(call if_multiarch,:i386-linux-gnu)/' \
+    -i.orig gcc/config/i386/t-linux64
+</userinput></screen>
 
     <note>
       <para>
@@ -81,7 +79,7 @@ esac</userinput></screen>
         <filename>t-linux64</filename> file inplace.  So you may run
         <command>diff -u gcc/config/i386/t-linux64{.orig,}</command>
         to visualize the change done by the <command>sed</command> command
-        afterwards.  We'll simply use <parameter>-i</parameter> (which just
+        afterwards. We'll simply use <parameter>-i</parameter> (which just
         edits the original file inplace without copying it) for all other
         packages in the book, but you can change it to
         <parameter>-i.orig</parameter> in any case you want to keep a copy
@@ -89,43 +87,32 @@ esac</userinput></screen>
       </para>
     </note>
 
-    <para arch="ml_32,ml_x32,ml_all">Change the default directory name for
-    libraries:</para>
-
-<screen arch="ml_32,ml_x32,ml_all"><userinput remap="pre">sed -e '/m64=/s/lib64/lib/' \
-    -e '/m32=/s/m32=.*/m32=..\/lib32$(call if_multiarch,:i386-linux-gnu)/' \
-    -i.orig gcc/config/i386/t-linux64
-</userinput></screen>
-
-    <para arch="ml_32,ml_all">Make <literal>-mstackrealign</literal>
-      a default for 32-bit objects:</para>
+    <para>Make <literal>-mstackrealign</literal> a default for 32-bit
+    objects:</para>
 
-<screen arch="ml_32,ml_all"><userinput remap="pre">sed '/STACK_REALIGN_DEFAULT/s/0/(!TARGET_64BIT \&amp;\&amp; TARGET_SSE)/' \
+<screen><userinput remap="pre">sed '/STACK_REALIGN_DEFAULT/s/0/(!TARGET_64BIT \&amp;\&amp; TARGET_SSE)/' \
       -i gcc/config/i386/i386.h</userinput></screen>
 
-    <note arch="ml_32,ml_all">
-      <para>Adding the <literal>-mstackrealign</literal> flag by default
-        helps to overcome issues with old binaries which cannot be
-        recompiled on the actual OS.</para>
-
-      <!-- Thanks to xry111 for explaining the technical background: -->
-
-      <para>Today the x86-32 SysV psABI (used by all Linux programs)
-        mandates a 16-byte alignment of the stack frame, so the routines
-        using SSE will save/load SSE vectors onto/from the stack using a
-        <literal>movaps</literal> instruction (which only works with
-        aligned addresses, but faster than its counterpart allowing
-        unaligned addresses, <literal>movups</literal>).</para>
-
-      <para>But some really old x86-32 Linux binaries (compiled about
-        15 years ago), and all Windows x86-32 binaries which might be
-        run via <application>Wine</application> or <application>Steam</application>
-        only aligns the
-        stack frame to 4-byte. Thus, when it calls a SSE routine in LFS
-        built without <literal>-mstackrealign</literal>, the
-        <literal>movdqa</literal> instruction fails with a General
-        Protection Error and the Linux kernel terminates the process
-        with a SIGSEGV.</para>
+    <note>
+      <para>The <literal>-mstackrealign</literal> has a special purpose for
+        32-bit. All applications have a stack frame alignment.
+        Typically in old applications (and also some applications in today's
+        age) that are built for 32-bit, typically for Windows,
+        have a stack frame alignment of 4 bytes. The x86 System V ABI Processor
+        Supplement demands that both 32-bit and 64-bit applications have a
+        stack frame alignment of 16 bytes.</para>
+      <para>The stack frame alignment is necessary for the x86 assembly
+      <literal>movaps</literal> and <literal>movdqa</literal> instructions to
+      work, which are used as faster alternatives to <literal>movups</literal>.
+      When the stack frame alignment is not correct, those assembly
+      instructions will trigger a General Protection Error, leading to a
+      <literal>SIGSEGV</literal> kill signal.</para>
+      <para>In order to prevent this, <literal>-mstackrealign</literal> offers
+      different potential stack frame alignments if necessary. In order to
+      ensure that every piece of software has a good stack frame alignment,
+      every package is compiled with <literal>-mstackrealign</literal>, which
+      the above makes it the default for targeting 32-bit. Glibc is the main
+      one that needs it.</para>
     </note>
 
     <para>The GCC documentation recommends building GCC
@@ -136,52 +123,28 @@ cd       build</userinput></screen>
 
     <para>Prepare GCC for compilation:</para>
 
-<screen arch="default"><userinput remap="configure">../configure                  \
-    --target=$LFS_TGT         \
-    --prefix=$LFS/tools       \
-    --with-glibc-version=&glibc-version; \
-    --with-sysroot=$LFS       \
-    --with-newlib             \
-    --without-headers         \
-    --enable-default-pie      \
-    --enable-default-ssp      \
-    --disable-nls             \
-    --disable-shared          \
-    --disable-multilib        \
-    --disable-threads         \
-    --disable-libatomic       \
-    --disable-libgomp         \
-    --disable-libquadmath     \
-    --disable-libssp          \
-    --disable-libvtv          \
-    --disable-libstdcxx       \
-    --enable-languages=c,c++</userinput></screen>
-<screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure" 
-    arch="ml_32">mlist=m64,m32</userinput><userinput remap="configure"
-    arch="ml_x32">mlist=m64,mx32</userinput><userinput remap="configure"
-    arch="ml_all">mlist=m64,m32,mx32</userinput>
-<userinput remap="configure">../configure                    \
-    --target=$LFS_TGT           \
-    --prefix=$LFS/tools         \
-    --with-glibc-version=&glibc-version;   \
-    --with-sysroot=$LFS         \
-    --with-newlib               \
-    --without-headers           \
-    --enable-default-pie        \
-    --enable-default-ssp        \
-    --enable-initfini-array     \
-    --disable-nls               \
-    --disable-shared            \
-    --enable-multilib           \
-    --with-multilib-list=$mlist \
-    --disable-decimal-float     \
-    --disable-threads           \
-    --disable-libatomic         \
-    --disable-libgomp           \
-    --disable-libquadmath       \
-    --disable-libssp            \
-    --disable-libvtv            \
-    --disable-libstdcxx         \
+<screen><userinput remap="configure">../configure                     \
+    --target=$LFS_TGT            \
+    --prefix=$LFS/tools          \
+    --with-glibc-version=&glibc-version;    \
+    --with-sysroot=$LFS          \
+    --with-newlib                \
+    --without-headers            \
+    --enable-default-pie         \
+    --enable-default-ssp         \
+    --enable-initfini-array      \
+    --disable-nls                \
+    --disable-shared             \
+    --enable-multilib            \
+    --with-multilib-list=m64,m32 \
+    --disable-decimal-float      \
+    --disable-threads            \
+    --disable-libatomic          \
+    --disable-libgomp            \
+    --disable-libquadmath        \
+    --disable-libssp             \
+    --disable-libvtv             \
+    --disable-libstdcxx          \
     --enable-languages=c,c++</userinput></screen>
 
     <variablelist>
@@ -240,18 +203,11 @@ cd       build</userinput></screen>
         </listitem>
       </varlistentry>
 
-      <varlistentry arch="default">
-        <term><parameter>--disable-multilib</parameter></term>
-        <listitem>
-          <para>On x86_64, LFS does not support a multilib configuration.
-          This switch is harmless for x86.</para>
-        </listitem>
-      </varlistentry>
-      <varlistentry arch="ml_32,ml_x32,ml_all">
+      <varlistentry>
         <term><parameter>--enable-multilib --with-multilib-list=...</parameter></term>
         <listitem>
-          <para>LFS can be used to support multilib. Which they are is
-          specified in the multilib list.</para>
+          <para>These parameters both enable multilib and which architectures
+          to support.</para>
         </listitem>
       </varlistentry>
 
diff --git a/chapter05/glibc.xml b/chapter05/glibc.xml
index 704e1cfba..22156c2dc 100644
--- a/chapter05/glibc.xml
+++ b/chapter05/glibc.xml
@@ -47,15 +47,7 @@
     for x86_64, create a compatibility symbolic link required for proper
     operation of the dynamic library loader:</para>
 
-<screen arch="default"><userinput remap="pre">case "$LFS_TGT" in
-    i?86-*)   ln -sfv ld-linux.so.2 $LFS/lib/ld-lsb.so.3
-    ;;
-    x86_64-*) ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64
-              ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64/ld-lsb-x86-64.so.3
-    ;;
-esac</userinput></screen>
-<!-- no ld-linux.so.2 here as multilib is based on x86_64, not on i686 -->
-<screen arch="ml_32,ml_x32,ml_all"><userinput remap="pre">ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64
+<screen><userinput remap="pre">ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64
 ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64/ld-lsb-x86-64.so.3</userinput></screen>
 
     <note>
@@ -205,9 +197,6 @@ readelf -l a.out | grep ': /lib'</userinput></screen>
 
 <screen><computeroutput>[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]</computeroutput></screen>
 
-  <para arch="default">Note that for 32-bit machines, the interpreter name will be
-  <filename>/lib/ld-linux.so.2</filename>.</para>
-
   <para>Note that this path should not contain
   <filename class='directory'>/mnt/lfs</filename> (or the value of
   the <envar>LFS</envar> variable if you used a different one).  The path is
@@ -302,14 +291,11 @@ SEARCH_DIR("=/usr/lib");</computeroutput></screen>
 -->
   </sect2>
 
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - 32-bit  -->
-  <!-- - - - - - - - - - -->
-  <sect2 arch="ml_32,ml_all">
+  <sect2>
     <title>Building Glibc - 32-bit</title>
 
-    <para>Now recompile for m32. The extracted source can be
-    reused but needs to be cleaned before installing the m32
+    <para>Now build Glibc for 32-bit. The extracted source can be
+    reused but needs to be cleaned before installing the 32-bit
     version of Glibc.</para>
 
     <para>Clear the build directory and remove artefacts from
@@ -318,7 +304,7 @@ SEARCH_DIR("=/usr/lib");</computeroutput></screen>
 <screen><userinput remap="pre">make clean
 find .. -name "*.a" -delete</userinput></screen>
 
-    <para>Configure Glibc for m32 with the following commands:</para>
+    <para>Configure Glibc for 32-bit with the following commands:</para>
 
 <screen><userinput remap="configure">CC="$LFS_TGT-gcc -m32"                   \
 CXX="$LFS_TGT-g++ -m32"                  \
@@ -345,7 +331,6 @@ install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-32.h \
                $LFS/usr/include/gnu/
 ln -svf ../lib32/ld-linux.so.2 $LFS/lib/ld-linux.so.2</userinput></screen>
 
-
     <caution>
       <para>At this point, it is imperative to stop and ensure that the basic
       functions (compiling and linking) of the new toolchain are working as
@@ -371,78 +356,7 @@ readelf -l a.out | grep '/ld-linux'</userinput></screen>
 
     </caution>
 
-  </sect2><!-- m32 -->
-
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - x32-bit -->
-  <!-- - - - - - - - - - -->
-
-  <sect2 arch="ml_x32,ml_all">
-    <title>Building Glibc - x32-bit</title>
-
-    <para>Now recompile for mx32. The extracted source can be
-    reused but needs to be cleaned before installing the mx32
-    version of Glibc.</para>
-
-    <para>Clear the build directory and remove artefacts from
-    previous build:</para>
-
-<screen><userinput remap="pre">make clean
-find .. -name "*.a" -delete</userinput></screen>
-
-    <para>Configure Glibc for mx32 with the following commands:</para>
-
-<screen><userinput remap="configure">CC="$LFS_TGT-gcc -mx32"                  \
-CXX="$LFS_TGT-g++ -mx32"                 \
-../configure                             \
-      --prefix=/usr                      \
-      --host=$LFS_TGTX32                 \
-      --build=$(../scripts/config.guess) \
-      --disable-nscd                     \
-      --with-headers=$LFS/usr/include    \
-      --libdir=/usr/libx32               \
-      --libexecdir=/usr/libx32           \
-      libc_cv_slibdir=/usr/libx32        \
-      --enable-kernel=&min-kernel;</userinput></screen>
-
-    <para>Compile the package:</para>
-
-<screen><userinput remap="make">make</userinput></screen>
-
-    <para>Install the package:</para>
-
-<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
-cp -a DESTDIR/usr/libx32 $LFS/usr/
-install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-x32.h \
-               $LFS/usr/include/gnu/
-ln -svf ../libx32/ld-linux-x32.so.2 $LFS/lib/ld-linux-x32.so.2</userinput></screen>
-
-    <caution>
-      <para>At this point, it is imperative to stop and ensure that the basic
-      functions (compiling and linking) of the new toolchain are working as
-      expected. To perform a sanity check, run the following commands:</para>
-
-<screen><userinput>echo 'int main(){}' &gt; dummy.c
-$LFS_TGT-gcc -mx32 dummy.c
-readelf -l a.out | grep '/ld-linux-x32'</userinput></screen>
-
-      <para>If everything is working correctly, there should be no errors,
-      and the output of the last command will be of the form:</para>
-
-<screen><computeroutput>[Requesting program interpreter: /libx32/ld-linux-x32.so.2]</computeroutput></screen>
-
-      <para>If the output is not shown as above or there was no output at all,
-      then something is wrong. Investigate and retrace the steps to find out
-      where the problem is and correct it. This issue must be resolved before
-      continuing on.</para>
-
-      <para>Once all is well, clean up the test files:</para>
-
-<screen><userinput>rm -v dummy.c a.out</userinput></screen>
-
-    </caution>
-
-  </sect2><!-- mx32 -->
+  </sect2>
 
   <sect2 role="content">
     <title/>
diff --git a/chapter05/libstdc++.xml b/chapter05/libstdc++.xml
index b67c7e707..a17839177 100644
--- a/chapter05/libstdc++.xml
+++ b/chapter05/libstdc++.xml
@@ -60,7 +60,7 @@ cd       build</userinput></screen>
 
     <para>Prepare Libstdc++ for compilation:</para>
 
-<screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../libstdc++-v3/configure           \
+<screen><userinput remap="configure">../libstdc++-v3/configure           \
     --host=$LFS_TGT                 \
     --build=$(../config.guess)      \
     --prefix=/usr                   \
@@ -68,14 +68,6 @@ cd       build</userinput></screen>
     --disable-nls                   \
     --disable-libstdcxx-pch         \
     --with-gxx-include-dir=/tools/$LFS_TGT/include/c++/&gcc-version;</userinput></screen>
-<screen arch="default"><userinput remap="configure">../libstdc++-v3/configure           \
-    --host=$LFS_TGT                 \
-    --build=$(../config.guess)      \
-    --prefix=/usr                   \
-    --disable-multilib              \
-    --disable-nls                   \
-    --disable-libstdcxx-pch         \
-    --with-gxx-include-dir=/tools/$LFS_TGT/include/c++/&gcc-version;</userinput></screen>
 
     <variablelist>
       <title>The meaning of the configure options:</title>
@@ -89,7 +81,7 @@ cd       build</userinput></screen>
         </listitem>
       </varlistentry>
 
-      <varlistentry arch="ml_32,ml_x32,ml_all">
+      <varlistentry>
         <term><parameter>--enable-multilib</parameter></term>
         <listitem>
           <para>Enable building multilib objects.</para>
diff --git a/chapter05/libxcrypt.xml b/chapter05/libxcrypt.xml
index 93c264021..c9bf5fc2c 100644
--- a/chapter05/libxcrypt.xml
+++ b/chapter05/libxcrypt.xml
@@ -97,10 +97,7 @@
 
   </sect2>
 
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - 32-bit  -->
-  <!-- - - - - - - - - - -->
-  <sect2 arch="ml_32,ml_all" role="installation">
+  <sect2 role="installation">
     <title>Installation of Libxcrypt - 32-bit</title>
 
     <para>Clean previous build:</para>
@@ -129,41 +126,7 @@
 make DESTDIR=$LFS install-pkgconfigDATA &amp;&amp;
 ln -svf libxcrypt.pc $LFS/usr/lib32/pkgconfig/libcrypt.pc</userinput></screen>
 
-  </sect2><!-- m32 -->
-
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - x32-bit  -->
-  <!-- - - - - - - - - - -->
-  <sect2 arch="ml_x32,ml_all" role="installation">
-    <title>Installation of Libxcrypt - x32-bit</title>
-
-    <para>Clean previous build:</para>
-
-<screen><userinput remap="pre">make distclean</userinput></screen>
-
-    <para>Prepare File for compilation:</para>
-
-<screen><userinput remap="configure">CC="gcc -mx32" \
-./configure --target=$LFS_TGT32           \
-            --prefix=/usr                 \
-            --host=x86_64-pc-linux-gnux32 \
-            --libdir=/usr/libx32          \
-            --enable-hashes=strong,glibc  \
-            --enable-obsolete-api=glibc   \
-            --disable-static              \
-            --disable-failure-tokens</userinput></screen>
-
-    <para>Compile the package:</para>
-
-<screen><userinput remap="make">make</userinput></screen>
-
-    <para>Install the package:</para>
-
-<screen><userinput remap="install">cp -av .libs/libcrypt.so* $LFS/usr/libx32/ &amp;&amp;
-make DESTDIR=$LFS install-pkgconfigDATA &amp;&amp;
-ln -svf libxcrypt.pc $LFS/usr/libx32/pkgconfig/libcrypt.pc</userinput></screen>
-
-  </sect2><!-- mx32 -->
+  </sect2>
 
   <sect2 role="content">
     <title/>
diff --git a/chapter06/gcc-pass2.xml b/chapter06/gcc-pass2.xml
index 4794768b5..0d9fa7afd 100644
--- a/chapter06/gcc-pass2.xml
+++ b/chapter06/gcc-pass2.xml
@@ -54,27 +54,17 @@ tar -xf ../mpc-&mpc-version;.tar.gz
 mv -v mpc-&mpc-version; mpc</userinput></screen>
 
 
-    <para arch="default">If you are building on x86_64, change the default directory name for
-    64-bit libraries to <quote>lib</quote>:</para>
-
-<screen arch="default"><userinput remap="pre">case $(uname -m) in
-  x86_64)
-    sed -e '/m64=/s/lib64/lib/' \
-        -i.orig gcc/config/i386/t-linux64
-  ;;
-esac</userinput></screen>
-
-    <para arch="ml_32,ml_x32,ml_all">Change the default directory name for the
+    <para>Change the default directory name for the
     libraries:</para>
 
-<screen arch="ml_32,ml_x32,ml_all"><userinput remap="pre">sed -e '/m64=/s/lib64/lib/' \
+<screen><userinput remap="pre">sed -e '/m64=/s/lib64/lib/' \
     -e '/m32=/s/m32=.*/m32=..\/lib32$(call if_multiarch,:i386-linux-gnu)/' \
     -i.orig gcc/config/i386/t-linux64</userinput></screen>
 
-    <para arch="ml_32,ml_all">Make <literal>-mstackrealign</literal> a default for 32-bit
+    <para>Make <literal>-mstackrealign</literal> a default for 32-bit
       objects:</para>
 
-<screen arch="ml_32,ml_all"><userinput remap="pre">sed '/STACK_REALIGN_DEFAULT/s/0/(!TARGET_64BIT \&amp;\&amp; TARGET_SSE)/' \
+<screen><userinput remap="pre">sed '/STACK_REALIGN_DEFAULT/s/0/(!TARGET_64BIT \&amp;\&amp; TARGET_SSE)/' \
       -i gcc/config/i386/i386.h</userinput></screen>
 
     <para>Override the build rules of the libgcc and libstdc++ headers to
@@ -93,46 +83,24 @@ cd       build</userinput></screen>
 
     <para>Now prepare GCC for compilation:</para>
 
-<screen arch="default"><userinput remap="configure">../configure                   \
-    --build=$(../config.guess) \
-    --host=$LFS_TGT            \
-    --target=$LFS_TGT          \
-    --prefix=/usr              \
-    --with-build-sysroot=$LFS  \
-    --enable-default-pie       \
-    --enable-default-ssp       \
-    --disable-nls              \
-    --disable-multilib         \
-    --disable-libatomic        \
-    --disable-libgomp          \
-    --disable-libquadmath      \
-    --disable-libsanitizer     \
-    --disable-libssp           \
-    --disable-libvtv           \
-    --enable-languages=c,c++   \
-    LDFLAGS_FOR_TARGET=-L$PWD/$LFS_TGT/libgcc</userinput></screen>
-<screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure" 
-    arch="ml_32">mlist=m64,m32</userinput><userinput remap="configure"
-    arch="ml_x32">mlist=m64,mx32</userinput><userinput remap="configure"
-    arch="ml_all">mlist=m64,m32,mx32</userinput>
-<userinput remap="configure">../configure                    \
-    --build=$(../config.guess)  \
-    --host=$LFS_TGT             \
-    --target=$LFS_TGT           \
-    --prefix=/usr               \
-    --with-build-sysroot=$LFS   \
-    --enable-default-pie        \
-    --enable-default-ssp        \
-    --disable-nls               \
-    --enable-multilib           \
-    --with-multilib-list=$mlist \
-    --disable-libatomic         \
-    --disable-libgomp           \
-    --disable-libquadmath       \
-    --disable-libsanitizer      \
-    --disable-libssp            \
-    --disable-libvtv            \
-    --enable-languages=c,c++    \
+<screen><userinput remap="configure">../configure                     \
+    --build=$(../config.guess)   \
+    --host=$LFS_TGT              \
+    --target=$LFS_TGT            \
+    --prefix=/usr                \
+    --with-build-sysroot=$LFS    \
+    --enable-default-pie         \
+    --enable-default-ssp         \
+    --disable-nls                \
+    --enable-multilib            \
+    --with-multilib-list=m64,m32 \
+    --disable-libatomic          \
+    --disable-libgomp            \
+    --disable-libquadmath        \
+    --disable-libsanitizer       \
+    --disable-libssp             \
+    --disable-libvtv             \
+    --enable-languages=c,c++     \
     LDFLAGS_FOR_TARGET=-L$PWD/$LFS_TGT/libgcc</userinput></screen>
 
     <variablelist>
diff --git a/chapter06/ncurses.xml b/chapter06/ncurses.xml
index f965e59e6..fde05ce3e 100644
--- a/chapter06/ncurses.xml
+++ b/chapter06/ncurses.xml
@@ -188,10 +188,7 @@ sed -e 's/^#if.*XOPEN.*$/#if 1/' \
 
   </sect2>
 
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - 32-bit  -->
-  <!-- - - - - - - - - - -->
-  <sect2 arch="ml_32,ml_all">
+  <sect2>
     <title>Building Ncurses - 32-bit</title>
 
     <para>Clean previous build:</para>
@@ -225,46 +222,7 @@ ln -sv libncursesw.so DESTDIR/usr/lib32/libncurses.so
 cp -Rv DESTDIR/usr/lib32/* $LFS/usr/lib32
 rm -rf DESTDIR</userinput></screen>
 
-  </sect2><!-- m32 -->
-
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - x32-bit -->
-  <!-- - - - - - - - - - -->
-  <sect2 arch="ml_x32,ml_all">
-    <title>Building Ncurses - x32-bit</title>
-
-    <para>Clean previous build:</para>
-
-<screen><userinput remap="pre">make distclean</userinput></screen>
-
-    <para>Prepare Ncurses for compilation:</para>
-
-<screen><userinput remap="configure">CC="$LFS_TGT-gcc -mx32"               \
-CXX="$LFS_TGT-g++ -mx32"              \
-./configure --prefix=/usr             \
-            --host=$LFS_TGTX32        \
-            --build=$(./config.guess) \
-            --libdir=/usr/libx32      \
-            --mandir=/usr/share/man   \
-            --with-shared             \
-            --without-normal          \
-            --with-cxx-shared         \
-            --without-debug           \
-            --without-ada             \
-            --disable-stripping</userinput></screen>
-
-    <para>Compile the package:</para>
-
-<screen><userinput remap="make">make</userinput></screen>
-
-    <para>Install the package:</para>
-
-<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR TIC_PATH=$(pwd)/build/progs/tic install
-ln -sv libncursesw.so DESTDIR/usr/libx32/libncurses.so
-cp -Rv DESTDIR/usr/libx32/* $LFS/usr/libx32
-rm -rf DESTDIR</userinput></screen>
-
-  </sect2><!-- mx32 -->
+  </sect2>
 
   <sect2 role="content">
     <title/>
diff --git a/chapter07/changingowner.xml b/chapter07/changingowner.xml
index a1a9a29e9..bdbd7f31f 100644
--- a/chapter07/changingowner.xml
+++ b/chapter07/changingowner.xml
@@ -33,14 +33,6 @@
   user <systemitem class="username">root</systemitem> by running the following
   command:</para>
 
-<screen><userinput>chown --from &lfs-username; -R root:root $LFS/{usr,var,etc,tools}
-case $(uname -m) in
-  x86_64) chown --from &lfs-username; -R root:root $LFS/lib64 ;;
-esac</userinput></screen>
+<screen><userinput>chown --from &lfs-username; -R root:root $LFS/{usr,lib64,var,etc,tools}</userinput></screen>
 
-  <para arch="ml_32,ml_x32,ml_all">Some more directories exists for
-  multilib support. Change their ownership, too:</para>
-<screen arch="ml_32,ml_x32,ml_all"><userinput arch="ml_32,ml_all">chown -R root:root $LFS/lib32</userinput>
-<userinput arch="ml_x32,ml_all">chown -R root:root $LFS/libx32</userinput></screen>
-  
 </sect1>
diff --git a/chapter07/cleanup.xml b/chapter07/cleanup.xml
index 4be984847..f3570a444 100644
--- a/chapter07/cleanup.xml
+++ b/chapter07/cleanup.xml
@@ -23,10 +23,7 @@
     libltdl, and it's known that some .la files can cause BLFS package
     failures.  Remove those files now:</para>
 
-<screen><userinput>find /usr/{lib,libexec} -name \*.la -delete</userinput><userinput arch="ml_32">
-find /usr/lib32 -name \*.la -delete</userinput><userinput arch="ml_x32">
-find /usr/libx32 -name \*.la -delete</userinput><userinput arch="ml_all">
-find /usr/lib{,x}32 -name \*.la -delete</userinput></screen>
+<screen><userinput>find /usr/{lib{,32},libexec} -name \*.la -delete</userinput></screen>
 
     <para>
       The current system size is now about 3 GB, however
diff --git a/chapter07/creatingdirs.xml b/chapter07/creatingdirs.xml
index bf8330785..91391ecb5 100644
--- a/chapter07/creatingdirs.xml
+++ b/chapter07/creatingdirs.xml
@@ -42,9 +42,6 @@ ln -sfv /run/lock /var/lock
 install -dv -m 0750 /root
 install -dv -m 1777 /tmp /var/tmp</userinput></screen>
 
-  <para arch="ml_32,ml_x32,ml_all">Required directories for multilib
-  support have already been created during previous installation steps.</para>
-
   <para>Directories are, by default, created with permission mode 755, but
   this is not desirable everywhere. In the commands above, two
   changes are made&mdash;one to the home directory of user <systemitem
diff --git a/chapter07/util-linux.xml b/chapter07/util-linux.xml
index 09ef8084f..7d00aa6eb 100644
--- a/chapter07/util-linux.xml
+++ b/chapter07/util-linux.xml
@@ -127,11 +127,7 @@
 
   </sect2>
 
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - 32-bit  -->
-  <!-- - - - - - - - - - -->
-  
-  <sect2 arch="ml_32,ml_all" role="installation">
+  <sect2 role="installation">
     <title>Installation of Util-linux - 32-bit</title>
 
     <para>Clean previous build:</para>
@@ -166,48 +162,7 @@
 cp -Rv DESTDIR/usr/lib32/* /usr/lib32
 rm -rf DESTDIR</userinput></screen>
 
-  </sect2><!-- m32 -->
-
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - x32-bit -->
-  <!-- - - - - - - - - - -->
-  
-  <sect2 arch="ml_x32,ml_all" role="installation">
-    <title>Installation of Util-linux - x32-bit</title>
-
-    <para>Clean previous build:</para>
-
-<screen><userinput remap="pre">make distclean</userinput></screen>
-
-    <para>Prepare Util-linux for compilation:</para>
-
-<screen><userinput remap="configure">CC="gcc -mx32"                            \
-./configure --host=x86_64-pc-linux-gnux32 \
-            --libdir=/usr/libx32          \
-            --runstatedir=/run            \
-            --disable-chfn-chsh           \
-            --disable-login               \
-            --disable-nologin             \
-            --disable-su                  \
-            --disable-setpriv             \
-            --disable-runuser             \
-            --disable-pylibmount          \
-            --disable-static              \
-            --disable-liblastlog2         \
-            --without-python              \
-            ADJTIME_PATH=/var/lib/hwclock/adjtime</userinput></screen>
-
-    <para>Compile the package:</para>
-
-<screen><userinput remap="make">make</userinput></screen>
-
-    <para>Install the package:</para>
-
-<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
-cp -Rv DESTDIR/usr/libx32/* /usr/libx32
-rm -rf DESTDIR</userinput></screen>
-
-  </sect2><!-- mx32 -->
+  </sect2>
 
   <sect2 role="content">
     <title/>
diff --git a/chapter08/acl.xml b/chapter08/acl.xml
index f847b04b2..c77eb87f5 100644
--- a/chapter08/acl.xml
+++ b/chapter08/acl.xml
@@ -67,11 +67,7 @@
 
   </sect2>
 
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - 32-bit  -->
-  <!-- - - - - - - - - - -->
-  
-  <sect2 arch="ml_32,ml_all" role="installation">
+  <sect2 role="installation">
     <title>Installation of Acl - 32-bit</title>
 
     <para>Clean previous build:</para>
@@ -97,39 +93,7 @@
 cp -Rv DESTDIR/usr/lib32/* /usr/lib32
 rm -rf DESTDIR</userinput></screen>
 
-  </sect2><!-- m32 -->
-
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - x32-bit -->
-  <!-- - - - - - - - - - -->
-  
-  <sect2 arch="ml_x32,ml_all" role="installation">
-    <title>Installation of Acl - x32-bit</title>
-
-    <para>Clean previous build:</para>
-
-<screen><userinput remap="pre">make distclean</userinput></screen>
-
-    <para>Prepare Acl for compilation:</para>
-
-<screen><userinput remap="configure">CC="gcc -mx32" ./configure   \
-    --prefix=/usr            \
-    --disable-static         \
-    --libdir=/usr/libx32     \
-    --libexecdir=/usr/libx32 \
-    --host=x86_64-pc-linux-gnux32</userinput></screen>
-
-    <para>Compile the package:</para>
-
-<screen><userinput remap="make">make</userinput></screen>
-
-    <para>Install the package:</para>
-
-<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
-cp -Rv DESTDIR/usr/libx32/* /usr/libx32
-rm -rf DESTDIR</userinput></screen>
-
-  </sect2><!-- mx32 -->
+  </sect2>
 
   <sect2 id="contents-acl" role="content">
     <title>Contents of Acl</title>
diff --git a/chapter08/attr.xml b/chapter08/attr.xml
index 2e18fc14c..6bb013cec 100644
--- a/chapter08/attr.xml
+++ b/chapter08/attr.xml
@@ -64,11 +64,7 @@
 
   </sect2>
 
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - 32-bit  -->
-  <!-- - - - - - - - - - -->
-  
-  <sect2 arch="ml_32,ml_all" role="installation">
+  <sect2 role="installation">
     <title>Installation of Attr - 32-bit</title>
 
     <para>Clean previous build:</para>
@@ -94,39 +90,7 @@
 cp -Rv DESTDIR/usr/lib32/* /usr/lib32
 rm -rf DESTDIR</userinput></screen>
 
-  </sect2><!-- m32 -->
-
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - x32-bit -->
-  <!-- - - - - - - - - - -->
-  
-  <sect2 arch="ml_x32,ml_all" role="installation">
-    <title>Installation of Attr - x32-bit</title>
-
-    <para>Clean previous build:</para>
-
-<screen><userinput remap="pre">make distclean</userinput></screen>
-
-    <para>Prepare Attr for compilation:</para>
-
-<screen><userinput remap="configure">CC="gcc -mx32" ./configure \
-    --prefix=/usr          \
-    --disable-static       \
-    --sysconfdir=/etc      \
-    --libdir=/usr/libx32   \
-    --host=x86_64-pc-linux-gnux32</userinput></screen>
-
-    <para>Compile the package:</para>
-
-<screen><userinput remap="make">make</userinput></screen>
-
-    <para>Install the package:</para>
-
-<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
-cp -Rv DESTDIR/usr/libx32/* /usr/libx32
-rm -rf DESTDIR</userinput></screen>
-
-  </sect2><!-- mx32 -->
+  </sect2>
 
   <sect2 id="contents-attr" role="content">
     <title>Contents of Attr</title>
diff --git a/chapter08/bzip2.xml b/chapter08/bzip2.xml
index 833603aae..c25630713 100644
--- a/chapter08/bzip2.xml
+++ b/chapter08/bzip2.xml
@@ -124,11 +124,7 @@ done</userinput></screen>
 
   </sect2>
 
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - 32-bit  -->
-  <!-- - - - - - - - - - -->
-  
-  <sect2 arch="ml_32,ml_all" role="installation">
+  <sect2 role="installation">
     <title>Installation of Bzip2 - 32-bit</title>
 
     <para>Clean previous build:</para>
@@ -148,33 +144,7 @@ ln -svf libbz2.so.1.0.8 /usr/lib32/libbz2.so
 ln -svf libbz2.so.1.0.8 /usr/lib32/libbz2.so.1
 ln -svf libbz2.so.1.0.8 /usr/lib32/libbz2.so.1.0</userinput></screen>
 
-  </sect2><!-- m32 -->
-
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - x32-bit -->
-  <!-- - - - - - - - - - -->
-  
-  <sect2 arch="ml_x32,ml_all" role="installation">
-    <title>Installation of Bzip2 - x32-bit</title>
-
-    <para>Clean previous build:</para>
-
-<screen><userinput remap="pre">make clean
-make -f Makefile-libbz2_so clean</userinput></screen>
-
-    <para>Compile the package:</para>
-
-<screen><userinput remap="make">sed -e "s/^CC=.*/CC=gcc -mx32/" -i Makefile{,-libbz2_so}
-make -f Makefile-libbz2_so</userinput></screen>
-
-    <para>Install the package:</para>
-
-<screen><userinput remap="install">install -Dm755 libbz2.so.1.0.8 /usr/libx32/libbz2.so.1.0.8
-ln -svf libbz2.so.1.0.8 /usr/libx32/libbz2.so
-ln -svf libbz2.so.1.0.8 /usr/libx32/libbz2.so.1
-ln -svf libbz2.so.1.0.8 /usr/libx32/libbz2.so.1.0</userinput></screen>
-
-  </sect2><!-- mx32 -->
+  </sect2>
 
   <sect2 id="contents-bzip2" role="content">
     <title>Contents of Bzip2</title>
diff --git a/chapter08/cleanup.xml b/chapter08/cleanup.xml
index 568410cf4..c5a05fb73 100644
--- a/chapter08/cleanup.xml
+++ b/chapter08/cleanup.xml
@@ -21,9 +21,7 @@
   by libltdl, and it's known that some .la files can break BLFS package
   builds.  Remove those files now:</para>
 
-<screen><userinput>find /usr/lib /usr/libexec -name \*.la -delete</userinput><userinput arch="ml_32,ml_all">
-find /usr/lib32 -name \*.la -delete</userinput><userinput arch="ml_x32,ml_all">
-find /usr/libx32 -name \*.la -delete</userinput></screen>
+<screen><userinput>find /usr/lib{,32,exec} -name \*.la -delete</userinput></screen>
 
    <para>For more information about libtool archive files, see the <ulink
    url="&blfs-book;introduction/la-files.html">BLFS section "About Libtool
@@ -33,7 +31,7 @@ find /usr/libx32 -name \*.la -delete</userinput></screen>
    <xref linkend="chapter-chroot-temporary-tools"/> is still partially
    installed and not needed anymore. Remove it with:</para>
 
-<screen><userinput>find /usr -depth -name $(uname -m)-lfs-linux-gnu\* | xargs rm -rf</userinput></screen>
+<screen><userinput>find /usr -depth -name x86_64-lfs-linux-gnu\* | xargs rm -rf</userinput></screen>
 
    <para>Finally, remove the temporary 'tester' user account created at the
    beginning of the previous chapter.</para>
diff --git a/chapter08/dbus.xml b/chapter08/dbus.xml
index 378a42f2d..3a473951f 100644
--- a/chapter08/dbus.xml
+++ b/chapter08/dbus.xml
@@ -92,11 +92,7 @@ meson setup --prefix=/usr --buildtype=release --wrap-mode=nofallback ..</userinp
 
   </sect2>
 
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - 32-bit  -->
-  <!-- - - - - - - - - - -->
-
-  <sect2 arch="ml_32,ml_all" role="installation">
+  <sect2 role="installation">
     <title>Installation of dbus - 32-bit</title>
 
     <para>Clean previous build:</para>
@@ -123,40 +119,7 @@ cp -av $(pwd)/destdir/usr/lib32/libdbus-1.so* /usr/lib32/
 cp -av $(pwd)/destdir/usr/lib32/dbus-1.0 /usr/lib32/
 cp -v  $(pwd)/destdir/usr/lib32/pkgconfig/dbus-1.pc /usr/lib32/pkgconfig/</userinput></screen>
 
-  </sect2><!-- m32 -->
-
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - x32-bit -->
-  <!-- - - - - - - - - - -->
-
-  <sect2 arch="ml_x32,ml_all" role="installation">
-    <title>Installation of dbus - x32-bit</title>
-
-    <para>Clean previous build:</para>
-
-<screen><userinput remap="pre">rm -rf *</userinput></screen>
-
-    <para>Prepare dbus for compilation:</para>
-
-<screen><userinput remap="configure">meson setup --prefix=/usr          \
-            --buildtype=release    \
-            --cross-file=libx32    \
-            --wrap-mode=nofallback \
-            ..</userinput></screen>
-
-    <para>Compile the package:</para>
-
-<screen><userinput remap="make">ninja</userinput></screen>
-
-    <para>Install the package:</para>
-
-<screen><userinput remap="install">DESTDIR=$(pwd)/destdir ninja install
-mkdir -pv /usr/libx32/pkgconfig
-cp -av $(pwd)/destdir/usr/libx32/libdbus-1.so* /usr/libx32/
-cp -av $(pwd)/destdir/usr/libx32/dbus-1.0 /usr/libx32/
-cp -v  $(pwd)/destdir/usr/libx32/pkgconfig/dbus-1.pc /usr/libx32/pkgconfig/</userinput></screen>
-
-  </sect2><!-- mx32 -->
+  </sect2>
 
   <sect2 id="contents-dbus" role="content">
     <title>Contents of D-Bus</title>
diff --git a/chapter08/expat.xml b/chapter08/expat.xml
index 810a12a70..0e897daa1 100644
--- a/chapter08/expat.xml
+++ b/chapter08/expat.xml
@@ -65,11 +65,7 @@
 
   </sect2>
 
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - 32-bit  -->
-  <!-- - - - - - - - - - -->
-  
-  <sect2 arch="ml_32,ml_all" role="installation">
+  <sect2 role="installation">
     <title>Installation of Expat - 32-bit</title>
 
     <para>Clean previous build but keep precompiled doc because it
@@ -96,40 +92,7 @@ make clean</userinput></screen>
 cp -Rv DESTDIR/usr/lib32/* /usr/lib32
 rm -rf DESTDIR</userinput></screen>
 
-  </sect2><!-- m32 -->
-
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - x32-bit -->
-  <!-- - - - - - - - - - -->
-  
-  <sect2 arch="ml_x32,ml_all" role="installation">
-    <title>Installation of Expat - x32-bit</title>
-
-    <para>Clean previous build but keep precompiled doc because it
-    cannot be rebuilt in this stage of the system:</para>
-
-<screen><userinput remap="pre">sed -e "/^am__append_1/ s/doc//" -i Makefile
-make clean</userinput></screen>
-
-    <para>Prepare Expat for compilation:</para>
-
-<screen><userinput remap="configure">CC="gcc -mx32"                            \
-./configure --prefix=/usr                 \
-            --libdir=/usr/libx32          \
-            --host=x86_64-pc-linux-gnux32 \
-            --disable-static</userinput></screen>
-
-    <para>Compile the package:</para>
-
-<screen><userinput remap="make">make</userinput></screen>
-
-    <para>Install the package:</para>
-
-<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
-cp -Rv DESTDIR/usr/libx32/* /usr/libx32
-rm -rf DESTDIR</userinput></screen>
-
-  </sect2><!-- mx32 -->
+  </sect2>
 
   <sect2 id="contents-expat" role="content">
     <title>Contents of Expat</title>
diff --git a/chapter08/file.xml b/chapter08/file.xml
index 73875a368..d9ab1e977 100644
--- a/chapter08/file.xml
+++ b/chapter08/file.xml
@@ -59,11 +59,7 @@
 
   </sect2>
 
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - 32-bit  -->
-  <!-- - - - - - - - - - -->
-  
-  <sect2 arch="ml_32,ml_all" role="installation">
+  <sect2 role="installation">
     <title>Installation of File - 32-bit</title>
 
     <para>Clean previous build:</para>
@@ -87,37 +83,7 @@
 cp -Rv DESTDIR/usr/lib32/* /usr/lib32
 rm -rf DESTDIR</userinput></screen>
 
-  </sect2><!-- m32 -->
-
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - x32-bit -->
-  <!-- - - - - - - - - - -->
-  
-  <sect2 arch="ml_x32,ml_all" role="installation">
-    <title>Installation of File - x32-bit</title>
-
-    <para>Clean previous build:</para>
-
-<screen><userinput remap="pre">make distclean</userinput></screen>
-
-    <para>Prepare File for compilation:</para>
-
-<screen><userinput remap="configure">CC="gcc -mx32" ./configure \
-    --prefix=/usr          \
-    --libdir=/usr/libx32   \
-    --host=x86_64-pc-linux-gnux32</userinput></screen>
-
-    <para>Compile the package:</para>
-
-<screen><userinput remap="make">make</userinput></screen>
-
-    <para>Install the package:</para>
-
-<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
-cp -Rv DESTDIR/usr/libx32/* /usr/libx32
-rm -rf DESTDIR</userinput></screen>
-
-  </sect2><!-- mx32 -->
+  </sect2>
 
   <sect2 id="contents-file" role="content">
     <title>Contents of File</title>
diff --git a/chapter08/gcc.xml b/chapter08/gcc.xml
index 781f137a9..3f330a959 100644
--- a/chapter08/gcc.xml
+++ b/chapter08/gcc.xml
@@ -45,27 +45,17 @@
 
     <screen><userinput remap="pre">sed -i 's/char [*]q/const &amp;/' libgomp/affinity-fmt.c</userinput></screen>
 
-    <para arch="default">If building on x86_64, change the default directory name for 64-bit
+    <para>Change the default directory name for 64-bit
     libraries to <quote>lib</quote>:</para>
 
-<screen arch="default"><userinput remap="pre">case $(uname -m) in
-  x86_64)
-    sed -e '/m64=/s/lib64/lib/' \
-        -i.orig gcc/config/i386/t-linux64
-  ;;
-esac</userinput></screen>
-
-    <para arch="ml_32,ml_x32,ml_all">Change the default directory name for 64-bit
-    libraries to <quote>lib</quote>:</para>
-
-<screen arch="ml_32,ml_x32,ml_all"><userinput remap="pre">sed -e '/m64=/s/lib64/lib/' \
+<screen><userinput remap="pre">sed -e '/m64=/s/lib64/lib/' \
     -e '/m32=/s/m32=.*/m32=..\/lib32$(call if_multiarch,:i386-linux-gnu)/' \
     -i.orig gcc/config/i386/t-linux64</userinput></screen>
 
-    <para arch="ml_32,ml_all">Make <literal>-mstackrealign</literal> a default for 32-bit
+    <para>Make <literal>-mstackrealign</literal> a default for 32-bit
       objects:</para>
 
-<screen arch="ml_32,ml_all"><userinput remap="pre">sed '/STACK_REALIGN_DEFAULT/s/0/(!TARGET_64BIT \&amp;\&amp; TARGET_SSE)/' \
+<screen><userinput remap="pre">sed '/STACK_REALIGN_DEFAULT/s/0/(!TARGET_64BIT \&amp;\&amp; TARGET_SSE)/' \
       -i gcc/config/i386/i386.h</userinput></screen>
 
     <para>The GCC documentation recommends building GCC in a dedicated build directory:</para>
@@ -75,30 +65,16 @@ cd       build</userinput></screen>
 
     <para>Prepare GCC for compilation:</para>
 
-<screen arch="default"><userinput remap="configure">../configure --prefix=/usr            \
-             LD=ld                    \
-             --enable-languages=c,c++ \
-             --enable-default-pie     \
-             --enable-default-ssp     \
-             --enable-host-pie        \
-             --disable-multilib       \
-             --disable-bootstrap      \
-             --disable-fixincludes    \
-             --with-system-zlib</userinput></screen>
-<screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure" 
-  arch="ml_32" >mlist=m64,m32</userinput><userinput remap="configure"
-  arch="ml_x32">mlist=m64,mx32</userinput><userinput remap="configure"
-  arch="ml_all">mlist=m64,m32,mx32</userinput>
-<userinput remap="configure">../configure --prefix=/usr               \
-             LD=ld                       \
-             --enable-languages=c,c++    \
-             --enable-default-pie        \
-             --enable-default-ssp        \
-             --enable-host-pie           \
-             --enable-multilib           \
-             --with-multilib-list=$mlist \
-             --disable-bootstrap         \
-             --disable-fixincludes       \
+<screen><userinput remap="configure">../configure --prefix=/usr                \
+             LD=ld                        \
+             --enable-languages=c,c++     \
+             --enable-default-pie         \
+             --enable-default-ssp         \
+             --enable-host-pie            \
+             --enable-multilib            \
+             --with-multilib-list=m64,m32 \
+             --disable-bootstrap          \
+             --disable-fixincludes        \
              --with-system-zlib</userinput></screen>
 
     <para>We only enable C and C++ here to save the build time as no
@@ -339,19 +315,6 @@ SEARCH_DIR("/usr/lib64")
 SEARCH_DIR("/usr/x86_64-pc-linux-gnu/lib")
 SEARCH_DIR("/usr/local/lib")
 SEARCH_DIR("/lib")
-SEARCH_DIR("/usr/lib");</computeroutput></screen>
-
-   <para arch="default">A 32-bit system may use a few other directories. For example, here
-   is the output from an i686 machine:</para>
-
-<!-- not using entities here as the dir names has nothing to do with multilib -->
-<screen arch="default"><computeroutput>SEARCH_DIR("/usr/i686-pc-linux-gnu/lib32")
-SEARCH_DIR("/usr/local/lib32")
-SEARCH_DIR("/lib32")
-SEARCH_DIR("/usr/lib32")
-SEARCH_DIR("/usr/i686-pc-linux-gnu/lib")
-SEARCH_DIR("/usr/local/lib")
-SEARCH_DIR("/lib")
 SEARCH_DIR("/usr/lib");</computeroutput></screen>
 
   <para>Next make sure that we're using the correct libc:</para>
diff --git a/chapter08/gdbm.xml b/chapter08/gdbm.xml
index 24ce48c42..10456ef2d 100644
--- a/chapter08/gdbm.xml
+++ b/chapter08/gdbm.xml
@@ -85,11 +85,7 @@
 
   </sect2>
 
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - 32-bit  -->
-  <!-- - - - - - - - - - -->
-
-  <sect2 arch="ml_32,ml_all" role="installation">
+  <sect2 role="installation">
     <title>Installation of GDBM - 32-bit</title>
 
     <para>Clean previous build:</para>
@@ -115,40 +111,8 @@
 cp -Rv DESTDIR/usr/lib32/* /usr/lib32/
 rm -rf DESTDIR</userinput></screen>
 
-  </sect2><!-- m32 -->
-
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - x32-bit -->
-  <!-- - - - - - - - - - -->
-
-  <sect2 arch="ml_x32,ml_all" role="installation">
-    <title>Installation of GDBM - x32-bit</title>
-
-    <para>Clean previous build:</para>
-
-<screen><userinput remap="pre">make distclean</userinput></screen>
-
-    <para>Prepare GDBM for compilation:</para>
-
-<screen><userinput remap="configure">CC="gcc -mx32" CXX="g++ -mx32"            \
-./configure --prefix=/usr                 \
-            --libdir=/usr/libx32          \
-            --host=x86_64-pc-linux-gnux32 \
-            --disable-static              \
-            --enable-libgdbm-compat</userinput></screen>
-
-    <para>Compile the package:</para>
-
-<screen><userinput remap="make">make</userinput></screen>
-
-    <para>Install the package:</para>
-
-<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
-cp -Rv DESTDIR/usr/libx32/* /usr/libx32/
-rm -rf DESTDIR</userinput></screen>
+  </sect2>
 
-  </sect2><!-- mx32 -->
-  
   <sect2 id="contents-gdbm" role="content">
     <title>Contents of GDBM</title>
 
diff --git a/chapter08/glibc.xml b/chapter08/glibc.xml
index 33ab11061..07c901cf7 100644
--- a/chapter08/glibc.xml
+++ b/chapter08/glibc.xml
@@ -627,14 +627,11 @@ mkdir -pv /etc/ld.so.conf.d</userinput></screen>
   </sect3>
   </sect2>
 
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - 32-bit  -->
-  <!-- - - - - - - - - - -->
-  <sect2 arch="ml_32,ml_all">
+  <sect2>
     <title>Building Glibc - 32-bit</title>
 
-    <para>Now recompile for m32. The extracted source can be
-    reused but needs to be cleaned before installing the m32
+    <para>Now build Glibc for 32-bit. The extracted source can be
+    reused but needs to be cleaned before installing the 32-bit
     version of Glibc.</para>
 
     <para>Clear the build directory and remove artefacts from
@@ -643,7 +640,7 @@ mkdir -pv /etc/ld.so.conf.d</userinput></screen>
 <screen><userinput remap="pre">rm -rf ./*
 find .. -name "*.a" -delete</userinput></screen>
 
-    <para>Configure Glibc for m32 with the following commands:</para>
+    <para>Configure Glibc for 32-bit with the following commands:</para>
 
 <screen><userinput remap="configure">CC="gcc -m32" CXX="g++ -m32"             \
 ../configure                             \
@@ -668,9 +665,6 @@ find .. -name "*.a" -delete</userinput></screen>
 cp -a DESTDIR/usr/lib32/* /usr/lib32/
 install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-32.h \
                /usr/include/gnu/</userinput></screen>
-<!-- no longer required as they are created in chap5
-ln -svf ../lib32/ld-linux.so.2 /lib/ld-linux.so.2
--->
 
     <para>Add the library name to the dynamic loader config:</para>
 
@@ -701,83 +695,7 @@ readelf -l a.out | grep '/ld-linux'</userinput></screen>
 
     </caution>
 
-  </sect2><!-- m32 -->
-
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - x32-bit -->
-  <!-- - - - - - - - - - -->
-
-  <sect2 arch="ml_x32,ml_all">
-    <title>Building Glibc - x32-bit</title>
-
-    <para>Now recompile for mx32. The extracted source can be
-    reused but needs to be cleaned before installing the mx32
-    version of Glibc.</para>
-
-    <para>Clear the build directory and remove artefacts from
-    previous build:</para>
-
-<screen><userinput remap="pre">rm -rf ./*
-find .. -name "*.a" -delete</userinput></screen>
-
-    <para>Configure Glibc for mx32 with the following commands:</para>
-
-<screen><userinput remap="configure">CC="gcc -mx32" CXX="g++ -mx32"           \
-../configure                             \
-      --prefix=/usr                      \
-      --host=x86_64-pc-linux-gnux32      \
-      --build=$(../scripts/config.guess) \
-      --libdir=/usr/libx32               \
-      --libexecdir=/usr/libx32           \
-      --disable-werror                   \
-      --disable-nscd                     \
-      libc_cv_slibdir=/usr/libx32        \
-      --enable-stack-protector=strong    \
-      --enable-kernel=&min-kernel;</userinput></screen>
-
-    <para>Compile the package:</para>
-
-<screen><userinput remap="make">make</userinput></screen>
-
-    <para>Install the package:</para>
-
-<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
-cp -a DESTDIR/usr/libx32/* /usr/libx32/
-install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-x32.h \
-               /usr/include/gnu/</userinput></screen>
-<!-- no longer required as they are created in chap5
-ln -svf ../libx32/ld-linux-x32.so.2 /lib/ld-linux-x32.so.2
--->
-    <para>Add the library name to the dynamic loader config:</para>
-
-<screen role="install"><userinput>echo "/usr/libx32" &gt;&gt; /etc/ld.so.conf</userinput></screen>
-
-    <caution>
-      <para>At this point, it is imperative to stop and ensure that the basic
-      functions (compiling and linking) of the new toolchain are working as
-      expected. To perform a sanity check, run the following commands:</para>
-
-<screen><userinput>echo 'int main(){}' &gt; dummy.c
-gcc -mx32 dummy.c
-readelf -l a.out | grep '/ld-linux-x32'</userinput></screen>
-
-      <para>If everything is working correctly, there should be no errors,
-      and the output of the last command will be of the form:</para>
-
-<screen><computeroutput>[Requesting program interpreter: /libx32/ld-linux-x32.so.2]</computeroutput></screen>
-
-      <para>If the output is not shown as above or there was no output at all,
-      then something is wrong. Investigate and retrace the steps to find out
-      where the problem is and correct it. This issue must be resolved before
-      continuing on.</para>
-
-      <para>Once all is well, clean up the test files:</para>
-
-<screen><userinput>rm -v dummy.c a.out</userinput></screen>
-
-    </caution>
-
-  </sect2><!-- mx32 -->
+  </sect2>
 
   <sect2 id="contents-glibc" role="content">
     <title>Contents of Glibc</title>
diff --git a/chapter08/gmp.xml b/chapter08/gmp.xml
index 0f49eee52..92d500b37 100644
--- a/chapter08/gmp.xml
+++ b/chapter08/gmp.xml
@@ -41,18 +41,9 @@
   <sect2 role="installation">
     <title>Installation of GMP</title>
 
-    <note>
-      <para>If you are building for 32-bit x86, but you have a CPU which is
-      capable of running 64-bit code <emphasis>and</emphasis> you have specified
-      <envar>CFLAGS</envar> in the environment, the configure script will
-      attempt to configure for 64-bits and fail.
-      Avoid this by invoking the configure command below with
-<screen role="nodump"><userinput><parameter>ABI=32</parameter> ./configure ...</userinput></screen></para>
-    </note>
-
     <note>
       <para>The default settings of GMP produce libraries optimized for
-      the host processor.  If libraries suitable for processors less
+      the host processor. If libraries suitable for processors less
       capable than the host's CPU are desired, generic libraries can be
       created by appending the <option>--host=none-linux-gnu</option> option
       to the <command>configure</command> command.</para>
@@ -129,11 +120,7 @@ make install-html</userinput></screen>
 
   </sect2>
 
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - 32-bit  -->
-  <!-- - - - - - - - - - -->
-
-  <sect2 arch="ml_32,ml_all" role="installation">
+  <sect2 role="installation">
     <title>Installation of GMP - 32-bit</title>
 
     <para>Clean previous build:</para>
@@ -148,9 +135,9 @@ cp -v configfsf.sub   config.sub</userinput></screen>
 
     <para>Prepare GMP for compilation:</para>
 
-<screen><userinput remap="configure">ABI="32"                               \
-CFLAGS="-m32 -O2 -pedantic -fomit-frame-pointer -mtune=generic -march=i686" \
+<screen><userinput remap="configure">CFLAGS="-m32 -O2 -pedantic -fomit-frame-pointer -mtune=generic -march=i686" \
 CXXFLAGS="$CFLAGS"                     \
+ABI="32"                               \
 PKG_CONFIG_PATH="/usr/lib32/pkgconfig" \
 ./configure --prefix=/usr              \
             --host=i686-pc-linux-gnu   \
@@ -165,9 +152,12 @@ PKG_CONFIG_PATH="/usr/lib32/pkgconfig" \
       <varlistentry>
         <term><parameter>--includedir=/usr/include/m32/gmp</parameter></term>
         <listitem>
-          <para>Some definitions in gmp.h differs for each arch but
-          has same name. Therefore, the headers must be separated from
-          each other.</para>
+          <para>The headers for GMP differ between architectures. Since dealing
+          with GMP is a delicate matter, the headers must be separated per
+          architecture. On a per-package basis, the header path for GMP will
+          overriden, like in the case of <ulink
+          url="/glfs/view/dev/shareddeps/nettle.html">Nettle</ulink> in
+          GLFS.</para>
         </listitem>
       </varlistentry>
 
@@ -199,65 +189,7 @@ cp -Rv DESTDIR/usr/lib32/* /usr/lib32
 cp -Rv DESTDIR/usr/include/m32/* /usr/include/m32/
 rm -rf DESTDIR</userinput></screen>
 
-  </sect2><!-- m32 -->
-
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - x32-bit -->
-  <!-- - - - - - - - - - -->
-
-  <sect2 arch="ml_x32,ml_all" role="installation">
-    <title>Installation of GMP - x32-bit</title>
-
-    <para>Clean previous build:</para>
-
-<screen><userinput remap="pre">make distclean</userinput></screen>
-
-    <para>Generic libraries can be created by running
-    the following:</para>
-
-<screen role="nodump"><userinput remap="pre">cp -v configfsf.guess config.guess
-cp -v configfsf.sub   config.sub</userinput></screen>
-
-    <para>Prepare GMP for compilation:</para>
-
-<screen><userinput remap="configure">ABI="x32"                                 \
-CFLAGS="-mx32 -O2 -pedantic -fomit-frame-pointer -mtune=generic -march=x86-64" \
-CXXFLAGS="$CFLAGS"                        \
-PKG_CONFIG_PATH="/usr/libx32/pkgconfig"   \
-./configure --prefix=/usr                 \
-            --host=x86_64-pc-linux-gnux32 \
-            --disable-static              \
-            --enable-cxx                  \
-            --libdir=/usr/libx32          \
-            --includedir=/usr/include/mx32/gmp</userinput></screen>
-
-    <para>Compile the package:</para>
-
-<screen><userinput remap="make">sed -i 's/$(exec_prefix)\/include/$\(includedir\)/' Makefile
-make</userinput></screen>
-
-    <important>
-      <para>The test suite for GMP in this section is considered critical.
-      Do not skip it under any circumstances.</para>
-    </important>
-
-    <para>Test the results:</para>
-
-<screen><userinput remap="test">make check 2>&amp;1 | tee gmp-check-log</userinput></screen>
- 
-    <para>Ensure that all 199 tests in the test suite passed.
-    Check the results by issuing the following command:</para>
-
-<screen><userinput remap="test">awk '/# PASS:/{total+=$3} ; END{print total}' gmp-check-log</userinput></screen>
-
-    <para>Install the package:</para>
-
-<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
-cp -Rv DESTDIR/usr/libx32/* /usr/libx32
-cp -Rv DESTDIR/usr/include/mx32/* /usr/include/mx32/
-rm -rf DESTDIR</userinput></screen>
-
-  </sect2><!-- mx32 -->
+  </sect2>
 
   <sect2 id="contents-gmp" role="content">
     <title>Contents of GMP</title>
diff --git a/chapter08/kmod.xml b/chapter08/kmod.xml
index fcabe27c0..f05097764 100644
--- a/chapter08/kmod.xml
+++ b/chapter08/kmod.xml
@@ -79,11 +79,7 @@ meson setup --prefix=/usr ..    \
 
   </sect2>
 
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - 32-bit  -->
-  <!-- - - - - - - - - - -->
-  
-  <sect2 arch="ml_32,ml_all" role="installation">
+  <sect2 role="installation">
     <title>Installation of Kmod - 32-bit</title>
 
     <para>Clean previous build:</para>
@@ -108,38 +104,7 @@ meson setup --prefix=/usr ..    \
 cp -Rv DESTDIR/usr/lib32/* /usr/lib32
 rm -rf DESTDIR</userinput></screen>
 
-  </sect2><!-- m32 -->
-
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - x32-bit -->
-  <!-- - - - - - - - - - -->
-  
-  <sect2 arch="ml_x32,ml_all" role="installation">
-    <title>Installation of Kmod - x32-bit</title>
-
-    <para>Clean previous build:</para>
-
-<screen><userinput remap="pre">rm -rf *</userinput></screen>
-
-    <para>Prepare Kmod for compilation:</para>
-
-<screen><userinput remap="configure">meson setup --prefix=/usr       \
-            --buildtype=release \
-            --cross-file=libx32 \
-            -D manpages=false   \
-            ..</userinput></screen>
-
-    <para>Compile the package:</para>
-
-<screen><userinput remap="make">ninja</userinput></screen>
-
-    <para>Install the package:</para>
-
-<screen><userinput remap="install">DESTDIR=$PWD/DESTDIR ninja install
-cp -Rv DESTDIR/usr/libx32/* /usr/libx32
-rm -rf DESTDIR</userinput></screen>
-
-  </sect2><!-- mx32 -->
+  </sect2>
 
   <sect2 id="contents-kmod" role="content">
     <title>Contents of Kmod</title>
diff --git a/chapter08/libcap.xml b/chapter08/libcap.xml
index 0625e98fb..c26e8dfb9 100644
--- a/chapter08/libcap.xml
+++ b/chapter08/libcap.xml
@@ -84,11 +84,7 @@
 
   </sect2>
 
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - 32-bit  -->
-  <!-- - - - - - - - - - -->
-  
-  <sect2 arch="ml_32,ml_all" role="installation">
+  <sect2 role="installation">
     <title>Installation of Libcap - 32-bit</title>
 
     <para>Clean previous build:</para>
@@ -107,32 +103,7 @@ sed -e "s|^libdir=.*|libdir=/usr/lib32|" -i /usr/lib32/pkgconfig/lib{cap,psx}.pc
 chmod -v 755 /usr/lib32/libcap.so.&libcap-version;
 rm -rf DESTDIR</userinput></screen>
 
-  </sect2><!-- m32 -->
-
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - x32-bit -->
-  <!-- - - - - - - - - - -->
-  
-  <sect2 arch="ml_x32,ml_all" role="installation">
-    <title>Installation of Libcap - x32-bit</title>
-
-    <para>Clean previous build:</para>
-
-<screen><userinput remap="pre">make distclean</userinput></screen>
-
-    <para>Compile the package:</para>
-
-<screen><userinput remap="make">make CC="gcc -mx32 -march=x86-64"</userinput></screen>
-
-    <para>Install the package:</para>
-
-<screen><userinput remap="install">make CC="gcc -mx32 -march=x86-64" lib=libx32 prefix=$PWD/DESTDIR/usr -C libcap install
-cp -Rv DESTDIR/usr/libx32/* /usr/libx32
-sed -e "s|^libdir=.*|libdir=/usr/libx32|" -i /usr/libx32/pkgconfig/lib{cap,psx}.pc
-chmod -v 755 /usr/libx32/libcap.so.&libcap-version;
-rm -rf DESTDIR</userinput></screen>
-
-  </sect2><!-- mx32 -->
+  </sect2>
 
   <sect2 id="contents-libcap" role="content">
     <title>Contents of Libcap</title>
diff --git a/chapter08/libelf.xml b/chapter08/libelf.xml
index 644ea284e..8c6b95915 100644
--- a/chapter08/libelf.xml
+++ b/chapter08/libelf.xml
@@ -73,11 +73,7 @@ rm /usr/lib/libelf.a</userinput></screen>
 
   </sect2>
 
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - 32-bit  -->
-  <!-- - - - - - - - - - -->
-  
-  <sect2 arch="ml_32,ml_all" role="installation">
+  <sect2 role="installation">
     <title>Installation of Libelf - 32-bit</title>
 
     <para>Clean previous build:</para>
@@ -106,42 +102,7 @@ rm -vf DESTDIR/usr/lib32/libelf.a
 cp -Rv DESTDIR/usr/lib32/* /usr/lib32
 rm -rf DESTDIR</userinput></screen>
 
-  </sect2><!-- m32 -->
-
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - x32-bit -->
-  <!-- - - - - - - - - - -->
-  
-  <sect2 arch="ml_x32,ml_all" role="installation">
-    <title>Installation of Libelf - x32-bit</title>
-
-    <para>Clean previous build:</para>
-
-<screen><userinput remap="pre">make distclean</userinput></screen>
-
-    <para>Prepare Libelf for compilation:</para>
-
-<screen><userinput remap="configure">CC="gcc -mx32" CXX="g++ -mx32"            \
-./configure --prefix=/usr                 \
-            --libdir=/usr/libx32          \
-            --host=x86_64-pc-linux-gnux32 \
-            --disable-debuginfod          \
-            --enable-libdebuginfod=dummy</userinput></screen>
-
-    <para>Compile only Libelf:</para>
-
-<screen><userinput remap="make">make -C lib
-make -C libelf</userinput></screen>
-
-    <para>Install the package:</para>
-
-<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR -C libelf install
-install -vDm644 config/libelf.pc DESTDIR/usr/libx32/pkgconfig/libelf.pc
-rm -vf DESTDIR/usr/libx32/libelf.a
-cp -Rv DESTDIR/usr/libx32/* /usr/libx32
-rm -rf DESTDIR</userinput></screen>
-
-  </sect2><!-- mx32 -->
+  </sect2>
 
   <sect2 id="contents-elfutils" role="content">
     <title>Contents of Libelf</title>
diff --git a/chapter08/libffi.xml b/chapter08/libffi.xml
index a5a39fbb7..91d5e4723 100644
--- a/chapter08/libffi.xml
+++ b/chapter08/libffi.xml
@@ -99,11 +99,7 @@
 
   </sect2>
 
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - 32-bit  -->
-  <!-- - - - - - - - - - -->
-  
-  <sect2 arch="ml_32,ml_all" role="installation">
+  <sect2 role="installation">
     <title>Installation of Libffi - 32-bit</title>
 
     <para>Clean previous build:</para>
@@ -133,43 +129,7 @@
 cp -Rv DESTDIR/usr/lib32/* /usr/lib32
 rm -rf DESTDIR</userinput></screen>
 
-  </sect2><!-- m32 -->
-
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - x32-bit -->
-  <!-- - - - - - - - - - -->
-  
-  <sect2 arch="ml_x32,ml_all" role="installation">
-    <title>Installation of Libffi - x32-bit</title>
-
-    <para>Clean previous build:</para>
-
-<screen><userinput remap="pre">make distclean</userinput></screen>
-
-    <para>Prepare Libffi for compilation:</para>
-
-<screen><userinput remap="configure">CC="gcc -mx32" CXX="g++ -mx32"                 \
-./configure --prefix=/usr                      \
-            --libdir=/usr/libx32               \
-            --host=x86_64-unknown-linux-gnux32 \
-            --disable-static                   \
-            --with-gcc-arch=x86_64</userinput></screen>
-
-    <para>Compile the package:</para>
-
-<screen><userinput remap="make">make</userinput></screen>
-
-    <para>To test the results, issue:</para>
-
-<screen><userinput remap="test">make check</userinput></screen>
-
-    <para>Install the package:</para>
-
-<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
-cp -Rv DESTDIR/usr/libx32/* /usr/libx32
-rm -rf DESTDIR</userinput></screen>
-
-  </sect2><!-- mx32 -->
+  </sect2>
 
   <sect2 id="contents-libffi" role="content">
     <title>Contents of Libffi</title>
diff --git a/chapter08/libtool.xml b/chapter08/libtool.xml
index 3960483f7..9a33699b2 100644
--- a/chapter08/libtool.xml
+++ b/chapter08/libtool.xml
@@ -67,11 +67,7 @@
 
   </sect2>
 
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - 32-bit  -->
-  <!-- - - - - - - - - - -->
-  
-  <sect2 arch="ml_32,ml_all" role="installation">
+  <sect2 role="installation">
     <title>Installation of Libtool - 32-bit</title>
 
     <para>Clean previous build:</para>
@@ -95,37 +91,7 @@
 cp -Rv DESTDIR/usr/lib32/* /usr/lib32
 rm -rf DESTDIR</userinput></screen>
 
-  </sect2><!-- m32 -->
-
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - x32-bit -->
-  <!-- - - - - - - - - - -->
-  
-  <sect2 arch="ml_x32,ml_all" role="installation">
-    <title>Installation of Libtool - x32-bit</title>
-
-    <para>Clean previous build:</para>
-
-<screen><userinput remap="pre">make distclean</userinput></screen>
-
-    <para>Prepare Libtool for compilation:</para>
-
-<screen><userinput remap="configure">CC="gcc -mx32" ./configure        \
-    --host=x86_64-pc-linux-gnux32 \
-    --prefix=/usr                 \
-    --libdir=/usr/libx32</userinput></screen>
-
-    <para>Compile the package:</para>
-
-<screen><userinput remap="make">make</userinput></screen>
-
-    <para>Install the package:</para>
-
-<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
-cp -Rv DESTDIR/usr/libx32/* /usr/libx32
-rm -rf DESTDIR</userinput></screen>
-
-  </sect2><!-- mx32 -->
+  </sect2>
 
   <sect2 id="contents-libtool" role="content">
     <title>Contents of Libtool</title>
diff --git a/chapter08/libxcrypt.xml b/chapter08/libxcrypt.xml
index 31589a5bb..e9b72f687 100644
--- a/chapter08/libxcrypt.xml
+++ b/chapter08/libxcrypt.xml
@@ -119,10 +119,7 @@ cp -av --remove-destination .libs/libcrypt.so.1* /usr/lib</userinput></screen>
 
   </sect2>
 
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - 32-bit  -->
-  <!-- - - - - - - - - - -->
-  <sect2 arch="ml_32,ml_all" role="installation">
+  <sect2 role="installation">
     <title>Installation of Libxcrypt - 32-bit</title>
 
     <para>Clean previous build:</para>
@@ -150,40 +147,7 @@ cp -av --remove-destination .libs/libcrypt.so.1* /usr/lib</userinput></screen>
 make install-pkgconfigDATA
 ln -svf libxcrypt.pc /usr/lib32/pkgconfig/libcrypt.pc</userinput></screen>
 
-  </sect2><!-- m32 -->
-
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - x32-bit  -->
-  <!-- - - - - - - - - - -->
-  <sect2 arch="ml_x32,ml_all" role="installation">
-    <title>Installation of Libxcrypt - x32-bit</title>
-
-    <para>Clean previous build:</para>
-
-<screen><userinput remap="pre">make distclean</userinput></screen>
-
-    <para>Prepare Libxcrypt for compilation:</para>
-
-<screen><userinput remap="configure">CC="gcc -mx32"                            \
-./configure --prefix=/usr                 \
-            --host=x86_64-pc-linux-gnux32 \
-            --libdir=/usr/libx32          \
-            --enable-hashes=strong,glibc  \
-            --enable-obsolete-api=glibc   \
-            --disable-static              \
-            --disable-failure-tokens</userinput></screen>
-
-    <para>Compile the package:</para>
-
-<screen><userinput remap="make">make</userinput></screen>
-
-    <para>Install the package:</para>
-
-<screen><userinput remap="install">cp -av .libs/libcrypt.so* /usr/libx32/
-make install-pkgconfigDATA
-ln -svf libxcrypt.pc /usr/libx32/pkgconfig/libcrypt.pc</userinput></screen>
-
-  </sect2><!-- mx32 -->
+  </sect2>
 
   <sect2 id="contents-libxcrypt" role="content">
     <title>Contents of Libxcrypt</title>
diff --git a/chapter08/lz4.xml b/chapter08/lz4.xml
index a62ac6aa2..cec88eca9 100644
--- a/chapter08/lz4.xml
+++ b/chapter08/lz4.xml
@@ -60,10 +60,7 @@
 
   </sect2>
 
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - 32-bit  -->
-  <!-- - - - - - - - - - -->
-  <sect2 arch="ml_32,ml_all" role="installation">
+  <sect2 role="installation">
     <title>Installation of Lz4 - 32-bit</title>
 
     <para>Clean previous build:</para>
@@ -83,32 +80,7 @@
      -C lib install
 cp -vR m32/usr/lib32/* /usr/lib32/</userinput></screen>
 
-  </sect2><!-- m32 -->
-
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - x32-bit -->
-  <!-- - - - - - - - - - -->
-  <sect2 arch="ml_x32,ml_all" role="installation">
-    <title>Installation of Lz4 - x32-bit</title>
-
-    <para>Clean previous build:</para>
-
-<screen><userinput remap="pre">make clean</userinput></screen>
-
-    <para>Compile the package:</para>
-
-<screen><userinput remap="make">CC="gcc -mx32" make BUILD_STATIC=no -C lib</userinput></screen>
-
-    <para>Install the package:</para>
-
-<screen><userinput remap="install">make BUILD_STATIC=no     \
-     PREFIX=/usr         \
-     LIBDIR=/usr/libx32  \
-     DESTDIR=$(pwd)/mx32 \
-     -C lib install
-cp -vR mx32/usr/libx32/* /usr/libx32/</userinput></screen>
-
-  </sect2><!-- mx32 -->
+  </sect2>
 
   <sect2 id="contents-lz4" role="content">
     <title>Contents of Lz4</title>
diff --git a/chapter08/meson.xml b/chapter08/meson.xml
index 14f8fce90..3729186bd 100644
--- a/chapter08/meson.xml
+++ b/chapter08/meson.xml
@@ -73,11 +73,8 @@ install -vDm644 data/shell-completions/zsh/_meson /usr/share/zsh/site-functions/
 
     </variablelist>
 
-    <para arch="ml_32,ml_x32,ml_all">
-      When targetting the <phrase arch="ml_32,ml_all">32-bit</phrase>
-      <phrase arch="ml_all">or</phrase>
-      <phrase arch="ml_x32,ml_all">x32-bit</phrase>
-      architecture<phrase arch="ml_all">s</phrase> on 64-bit, some packages
+    <para>
+      When targeting the 32-bit architecture on 64-bit, some packages
       using Meson-based build systems will sometimes use wrong
       architecture-specific settings, bit sizes, and pull in libraries not
       meant for the architecture being targeted. This doesn't happen often but
@@ -86,17 +83,14 @@ install -vDm644 data/shell-completions/zsh/_meson /usr/share/zsh/site-functions/
       output.
     </para>
 
-    <para arch="ml_32,ml_x32,ml_all">
+    <para>
       Cross and native files specify architecture specific information
       which either honestly and slyly tells Meson what the target or host is so
       it uses correct information and libraries. Create those files now:
     </para>
 
-<screen arch="ml_32,ml_x32,ml_all"><userinput remap="install"
-  arch="ml_32,ml_x32,ml_all">mkdir -pv /usr/share/meson/cross
+<screen><userinput remap="install">mkdir -pv /usr/share/meson/cross
 mkdir -pv /usr/share/meson/native
-</userinput><userinput remap="install"
-  arch="ml_32,ml_all">
 for i in {cross/lib32,native/x86}; do
 cat &gt; /usr/share/meson/$i &lt;&lt; "EOF"
 <literal>[binaries]
@@ -125,41 +119,9 @@ cpu_family = 'x86'
 cpu = 'i686'
 endian = 'little'</literal>
 EOF
-done</userinput><userinput remap="install"
-  arch="ml_all">
-</userinput><userinput remap="install"
-  arch="ml_x32,ml_all">
-for i in {cross/libx32,native/x32}; do
-cat &gt; /usr/share/meson/$i &lt;&lt; "EOF"
-<literal>[binaries]
-c = ['gcc', '-mx32']
-cpp = ['g++', '-mx32']
-rust = ['rustc', '--target', 'x86_64-unknown-linux-gnux32']
-pkg-config = 'x86_64-pc-linux-gnux32-pkg-config'
-ar = '/usr/bin/ar'
-strip = '/usr/bin/strip'
-cups-config = 'cups-config'
-llvm-config = 'llvm-config'
-exe_wrapper = ''
-
-[built-in options]
-libdir = 'libx32'
-
-[properties]
-sizeof_void* = 4
-sizeof_long = 4
-
-[host_machine]
-system = 'linux'
-subsystem = 'linux'
-kernel = 'linux'
-cpu_family = 'x86'
-cpu = 'x86_64'
-endian = 'little'</literal>
-EOF
 done</userinput></screen>
 
-    <note arch="ml_32,ml_x32,ml_all"><para>
+    <note><para>
       These files will be used by default in packages that will use Meson-based
       build systems to reduce any architecture and upgrading issues.
     </para></note>
diff --git a/chapter08/ncurses.xml b/chapter08/ncurses.xml
index 4b1f1dcfd..80778e123 100644
--- a/chapter08/ncurses.xml
+++ b/chapter08/ncurses.xml
@@ -188,10 +188,7 @@ cp -av lib/lib*.so.5* /usr/lib</userinput></screen>
 
   </sect2>
 
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - 32-bit  -->
-  <!-- - - - - - - - - - -->
-  <sect2 arch="ml_32,ml_all">
+  <sect2>
     <title>Building Ncurses - 32-bit</title>
 
     <para>Clean previous build:</para>
@@ -231,51 +228,7 @@ ln -sfv libncurses.so      DESTDIR/usr/lib32/libcurses.so
 cp -Rv DESTDIR/usr/lib32/* /usr/lib32
 rm -rf DESTDIR</userinput></screen>
 
-  </sect2><!-- m32 -->
-
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - x32-bit -->
-  <!-- - - - - - - - - - -->
-  <sect2 arch="ml_x32,ml_all">
-    <title>Building Ncurses - x32-bit</title>
-
-    <para>Clean previous build:</para>
-
-<screen><userinput remap="pre">make distclean</userinput></screen>
-
-    <para>Prepare Ncurses for compilation:</para>
-
-<screen><userinput remap="configure">CC="gcc -mx32" CXX="g++ -mx32"            \
-./configure --prefix=/usr                 \
-            --host=x86_64-pc-linux-gnux32 \
-            --libdir=/usr/libx32          \
-            --mandir=/usr/share/man       \
-            --with-shared                 \
-            --without-debug               \
-            --without-normal              \
-            --enable-pc-files             \
-            --with-pkg-config-libdir=/usr/libx32/pkgconfig</userinput></screen>
-
-    <para>Compile the package:</para>
-
-<screen><userinput remap="make">make</userinput></screen>
-
-    <para>Install the package:</para>
-
-<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
-mkdir -p DESTDIR/usr/libx32/pkgconfig
-for lib in ncurses form panel menu ; do
-    rm -vf                    DESTDIR/usr/libx32/lib${lib}.so
-    echo "INPUT(-l${lib}w)" > DESTDIR/usr/libx32/lib${lib}.so
-    ln -svf ${lib}w.pc        DESTDIR/usr/libx32/pkgconfig/$lib.pc
-done
-rm -vf                     DESTDIR/usr/libx32/libcursesw.so
-echo "INPUT(-lncursesw)" > DESTDIR/usr/libx32/libcursesw.so
-ln -sfv libncurses.so      DESTDIR/usr/libx32/libcurses.so
-cp -Rv DESTDIR/usr/libx32/* /usr/libx32
-rm -rf DESTDIR</userinput></screen>
-
-  </sect2><!-- mx32 -->
+  </sect2>
 
   <sect2 id="contents-ncurses" role="content">
     <title>Contents of Ncurses</title>
diff --git a/chapter08/openssl.xml b/chapter08/openssl.xml
index 9fa1f141e..2789c0700 100644
--- a/chapter08/openssl.xml
+++ b/chapter08/openssl.xml
@@ -111,11 +111,7 @@ make MANSUFFIX=ssl install</userinput></screen>
 
   </sect2>
 
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - 32-bit  -->
-  <!-- - - - - - - - - - -->
-  
-  <sect2 arch="ml_32,ml_all" role="installation">
+  <sect2 role="installation">
     <title>Installation of OpenSSL - 32-bit</title>
 
     <para>Clean previous build:</para>
@@ -141,39 +137,7 @@ make MANSUFFIX=ssl install</userinput></screen>
 cp -Rv DESTDIR/usr/lib32/* /usr/lib32
 rm -rf DESTDIR</userinput></screen>
 
-  </sect2><!-- m32 -->
-
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - x32-bit -->
-  <!-- - - - - - - - - - -->
-  
-  <sect2 arch="ml_x32,ml_all" role="installation">
-    <title>Installation of OpenSSL - x32-bit</title>
-
-    <para>Clean previous build:</para>
-
-<screen><userinput remap="pre">make distclean</userinput></screen>
-
-    <para>Prepare OpenSSL for compilation:</para>
-
-<screen><userinput remap="configure">./config --prefix=/usr         \
-         --openssldir=/etc/ssl \
-         --libdir=libx32       \
-         shared                \
-         zlib-dynamic          \
-         linux-x32</userinput></screen>
-
-    <para>Compile the package:</para>
-
-<screen><userinput remap="make">make</userinput></screen>
-
-    <para>Install the package:</para>
-
-<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
-cp -Rv DESTDIR/usr/libx32/* /usr/libx32
-rm -rf DESTDIR</userinput></screen>
-
-  </sect2><!-- mx32 -->
+  </sect2>
 
   <sect2 id="contents-openssl" role="content">
     <title>Contents of OpenSSL</title>
diff --git a/chapter08/pcre.xml b/chapter08/pcre.xml
index 788c4220b..f41f4feff 100644
--- a/chapter08/pcre.xml
+++ b/chapter08/pcre.xml
@@ -138,11 +138,7 @@
 
   </sect2>
 
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - 32-bit  -->
-  <!-- - - - - - - - - - -->
-  
-  <sect2 arch="ml_32,ml_all" role="installation">
+  <sect2 role="installation">
     <title>Installation of Pcre2 - 32-bit</title>
 
     <para>Clean previous build:</para>
@@ -174,45 +170,7 @@
 cp -Rv DESTDIR/usr/lib32/* /usr/lib32
 rm -rf DESTDIR</userinput></screen>
 
-  </sect2><!-- m32 -->
-
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - x32-bit -->
-  <!-- - - - - - - - - - -->
-  
-  <sect2 arch="ml_x32,ml_all" role="installation">
-    <title>Installation of Pcre2 - x32-bit</title>
-
-    <para>Clean previous build:</para>
-
-<screen><userinput remap="pre">make distclean</userinput></screen>
-
-    <para>Prepare pcre2 for compilation:</para>
-
-<screen><userinput remap="configure">CC="gcc -mx32" CXX="g++ -mx32"             \
-./configure --prefix=/usr                  \
-            --libdir=/usr/libx32           \
-            --host=x86_64-pc-linux-gnux32  \
-            --enable-unicode               \
-            --enable-jit                   \
-            --enable-pcre2-16              \
-            --enable-pcre2-32              \
-            --enable-pcre2grep-libz        \
-            --enable-pcre2grep-libbz2      \
-            --enable-pcre2test-libreadline \
-            --disable-static</userinput></screen>
-
-    <para>Compile the package:</para>
-
-    <screen><userinput remap="make">make</userinput></screen>
-
-    <para>Install the package:</para>
-
-<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
-cp -Rv DESTDIR/usr/libx32/* /usr/libx32
-rm -rf DESTDIR</userinput></screen>
-
-  </sect2><!-- mx32 -->
+  </sect2>
 
   <sect2 id="contents-pcre2" role="content">
     <title>Contents of Pcre2</title>
diff --git a/chapter08/pkgconf.xml b/chapter08/pkgconf.xml
index 3f5996c1f..dc9455759 100644
--- a/chapter08/pkgconf.xml
+++ b/chapter08/pkgconf.xml
@@ -64,26 +64,19 @@
 <screen><userinput remap="install">ln -sv pkgconf   /usr/bin/pkg-config
 ln -sv pkgconf.1 /usr/share/man/man1/pkg-config.1</userinput></screen>
 
-    <para arch="ml_32,ml_x32,ml_all">
-      When targetting the <phrase arch="ml_32,ml_all">32-bit</phrase>
-      <phrase arch="ml_all">or</phrase>
-      <phrase arch="ml_x32,ml_all">x32-bit</phrase>
-      architecture<phrase arch="ml_all">s</phrase> on 64-bit, some packages
+    <para>
+      When targeting the 32-bit architecture on 64-bit, some packages
       will use Pkg-config in a way that will pull in libraries that have only
       been built for 64-bit. This spirals into linker or other errors. This
       can be fixed by creating Pkg-config personalities which can then be used
       to override default Pkg-config behavior. Create them now:
     </para>
 
-<screen arch="ml_32,ml_x32,ml_all"><userinput remap="install"
-  arch="ml_32,ml_all">ln -sv pkgconf /usr/bin/i686-pc-linux-gnu-pkg-config
-</userinput><userinput remap="install"
-  arch="ml_x32,ml_all">ln -sv pkgconf /usr/bin/x86_64-pc-linux-gnux32-pkg-config
-</userinput><userinput remap="install"
-  arch="ml_32,ml_x32,ml_all">ln -sv pkgconf /usr/bin/x86_64-pc-linux-gnu-pkg-config
-</userinput><userinput remap="install" arch="ml_32,ml_x32,ml_all">
+<screen><userinput remap="install">ln -sv pkgconf /usr/bin/i686-pc-linux-gnu-pkg-config
+ln -sv pkgconf /usr/bin/x86_64-pc-linux-gnu-pkg-config
+
 mkdir -pv /usr/share/pkgconfig/personality.d
-</userinput><userinput remap="install" arch="ml_32,ml_all">
+
 cat &gt; /usr/share/pkgconfig/personality.d/i686-pc-linux-gnu.personality &lt;&lt; EOF
 <literal>Triplet: i686-pc-linux-gnu
 SysrootDir: /
@@ -91,15 +84,7 @@ DefaultSearchPaths: /usr/lib32/pkgconfig:/usr/share/pkgconfig
 SystemIncludePaths: /usr/include
 SystemLibraryPaths: /usr/lib32</literal>
 EOF
-</userinput><userinput remap="install" arch="ml_x32,ml_all">
-cat &gt; /usr/share/pkgconfig/personality.d/x86_64-pc-linux-gnux32.personality &lt;&lt; EOF
-<literal>Triplet: x86_64-pc-linux-gnux32
-SysrootDir: /
-DefaultSearchPaths: /usr/libx32/pkgconfig:/usr/share/pkgconfig
-SystemIncludePaths: /usr/include
-SystemLibraryPaths: /usr/libx32</literal>
-EOF
-</userinput><userinput remap="install" arch="ml_32,ml_x32,ml_all">
+
 cat &gt; /usr/share/pkgconfig/personality.d/x86_64-pc-linux-gnu.personality &lt;&lt; EOF
 <literal>Triplet: x86_64-pc-linux-gnu
 SysrootDir: /
diff --git a/chapter08/readline.xml b/chapter08/readline.xml
index 987ab3919..68edb1d43 100644
--- a/chapter08/readline.xml
+++ b/chapter08/readline.xml
@@ -119,11 +119,7 @@ sed -i '/{OLDSUFF}/c:' support/shlib-install</userinput></screen>
 
   </sect2>
 
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - 32-bit  -->
-  <!-- - - - - - - - - - -->
-  
-  <sect2 arch="ml_32,ml_all" role="installation">
+  <sect2 role="installation">
     <title>Installation of Readline - 32-bit</title>
 
     <para>Clean previous build:</para>
@@ -149,39 +145,7 @@ sed -i '/{OLDSUFF}/c:' support/shlib-install</userinput></screen>
 cp -Rv DESTDIR/usr/lib32/* /usr/lib32
 rm -rf DESTDIR</userinput></screen>
 
-  </sect2><!-- m32 -->
-
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - x32-bit -->
-  <!-- - - - - - - - - - -->
-  
-  <sect2 arch="ml_x32,ml_all" role="installation">
-    <title>Installation of Readline - x32-bit</title>
-
-    <para>Clean previous build:</para>
-
-<screen><userinput remap="pre">make distclean</userinput></screen>
-
-    <para>Prepare Readline for compilation:</para>
-
-<screen><userinput remap="configure">CC="gcc -mx32" ./configure        \
-    --host=x86_64-pc-linux-gnux32 \
-    --prefix=/usr                 \
-    --libdir=/usr/libx32          \
-    --disable-static              \
-    --with-curses</userinput></screen>
-
-    <para>Compile the package:</para>
-
-<screen><userinput remap="make">make SHLIB_LIBS="-lncursesw"</userinput></screen>
-
-    <para>Install the package:</para>
-
-<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
-cp -Rv DESTDIR/usr/libx32/* /usr/libx32
-rm -rf DESTDIR</userinput></screen>
-
-  </sect2><!-- mx32 -->
+  </sect2>
 
   <sect2 id="contents-readline" role="content">
     <title>Contents of Readline</title>
diff --git a/chapter08/sqlite.xml b/chapter08/sqlite.xml
index e55512fc0..26c19db1b 100644
--- a/chapter08/sqlite.xml
+++ b/chapter08/sqlite.xml
@@ -102,11 +102,7 @@ cp -v -R sqlite-doc-&sqlite-doc-version;/* /usr/share/doc/sqlite-&sqlite-short-v
 
   </sect2>
 
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - 32-bit  -->
-  <!-- - - - - - - - - - -->
-  
-  <sect2 arch="ml_32,ml_all" role="installation">
+  <sect2 role="installation">
     <title>Installation of Sqlite - 32-bit</title>
 
     <para>Clean previous build:</para>
@@ -136,43 +132,7 @@ cp -v -R sqlite-doc-&sqlite-doc-version;/* /usr/share/doc/sqlite-&sqlite-short-v
 cp -Rv DESTDIR/usr/lib32/* /usr/lib32
 rm -rf DESTDIR</userinput></screen>
 
-  </sect2><!-- m32 -->
-
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - x32-bit -->
-  <!-- - - - - - - - - - -->
-  
-  <sect2 arch="ml_x32,ml_all" role="installation">
-    <title>Installation of Sqlite - x32-bit</title>
-
-    <para>Clean previous build:</para>
-
-<screen><userinput remap="pre">make distclean</userinput></screen>
-
-    <para>Prepare Sqlite for compilation:</para>
-
-<screen><userinput remap="configure">CC="gcc -mx32" CXX="g++ -mx32"            \
-./configure --prefix=/usr                 \
-            --libdir=/usr/libx32          \
-            --host=x86_64-pc-linux-gnux32 \
-            --disable-static              \
-            --enable-fts{4,5}             \
-            CPPFLAGS="-D SQLITE_ENABLE_COLUMN_METADATA=1 \
-                      -D SQLITE_ENABLE_UNLOCK_NOTIFY=1   \
-                      -D SQLITE_ENABLE_DBSTAT_VTAB=1     \
-                      -D SQLITE_SECURE_DELETE=1"</userinput></screen>
-
-    <para>Compile the package:</para>
-
-    <screen><userinput remap="make">make LDFLAGS.rpath=""</userinput></screen>
-
-    <para>Install the package:</para>
-
-<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
-cp -Rv DESTDIR/usr/libx32/* /usr/libx32
-rm -rf DESTDIR</userinput></screen>
-
-  </sect2><!-- mx32 -->
+  </sect2>
 
   <sect2 id="contents-sqlite" role="content">
     <title>Contents of Sqlite</title>
diff --git a/chapter08/stripping.xml b/chapter08/stripping.xml
index 0aa4c003d..040ce008a 100644
--- a/chapter08/stripping.xml
+++ b/chapter08/stripping.xml
@@ -83,8 +83,7 @@ for LIB in $save_usrlib; do
     objcopy --add-gnu-debuglink=$LIB.dbg /tmp/$LIB
     install -vm755 /tmp/$LIB /usr/lib
     rm /tmp/$LIB
-done</userinput>
-<userinput arch="ml_32,ml_all">
+done
 cd /usr/lib32
 for LIB in $save_usrlib; do
     objcopy --only-keep-debug $LIB $LIB.dbg
@@ -93,18 +92,7 @@ for LIB in $save_usrlib; do
     objcopy --add-gnu-debuglink=$LIB.dbg /tmp/$LIB
     install -vm755 /tmp/$LIB /usr/lib32
     rm /tmp/$LIB
-done</userinput>
-<userinput arch="ml_x32,ml_all">
-cd /usr/libx32
-for LIB in $save_usrlib; do
-    objcopy --only-keep-debug $LIB $LIB.dbg
-    cp $LIB /tmp/$LIB
-    strip --strip-unneeded /tmp/$LIB
-    objcopy --add-gnu-debuglink=$LIB.dbg /tmp/$LIB
-    install -vm755 /tmp/$LIB /usr/libx32
-    rm /tmp/$LIB
-done</userinput><userinput>
-
+done
 online_usrbin="bash find strip"
 online_usrlib="libbfd-&binutils-version;.20260210.so
                libsframe.so.&libsframe-version;
@@ -128,22 +116,16 @@ for LIB in $online_usrlib; do
     strip --strip-unneeded /tmp/$LIB
     install -vm755 /tmp/$LIB /usr/lib
     rm /tmp/$LIB
-done</userinput><userinput arch="ml_32,ml_all">
+done
 for LIB in $online_usrlib; do
     cp /usr/lib32/$LIB /tmp/$LIB
     strip --strip-unneeded /tmp/$LIB
     install -vm755 /tmp/$LIB /usr/lib32
     rm /tmp/$LIB
-done</userinput><userinput arch="ml_x32,ml_all">
-for LIB in $online_usrlib; do
-    cp /usr/libx32/$LIB /tmp/$LIB
-    strip --strip-unneeded /tmp/$LIB
-    install -vm755 /tmp/$LIB /usr/libx32
-    rm /tmp/$LIB
-done</userinput><userinput>
+done
 
-for i in $(find /usr/lib -type f -name \*.so* ! -name \*dbg) \
-         $(find /usr/lib -type f -name \*.a)                 \
+for i in $(find /usr/lib{,32} -type f -name \*.so* ! -name \*dbg) \
+         $(find /usr/lib{,32} -type f -name \*.a)                 \
          $(find /usr/{bin,sbin,libexec} -type f); do
     case "$online_usrbin $online_usrlib $save_usrlib" in
         *$(basename $i)* )
@@ -151,28 +133,9 @@ for i in $(find /usr/lib -type f -name \*.so* ! -name \*dbg) \
         * ) strip --strip-unneeded $i
             ;;
     esac
-done</userinput><userinput arch="ml_32,ml_all">
-for i in $(find /usr/lib32 -type f -name \*.so* ! -name \*dbg) \
-         $(find /usr/lib32 -type f -name \*.a); do
-    case "$online_usrbin $online_usrlib $save_usrlib" in
-        *$(basename $i)* )
-            ;;
-        * ) strip --strip-unneeded $i
-            ;;
-    esac
-done</userinput><userinput arch="ml_x32,ml_all">
-for i in $(find /usr/libx32 -type f -name \*.so* ! -name \*dbg) \
-         $(find /usr/libx32 -type f -name \*.a); do
-    case "$online_usrbin $online_usrlib $save_usrlib" in
-        *$(basename $i)* )
-            ;;
-        * ) strip --strip-unneeded $i
-            ;;
-    esac
-done</userinput><userinput>
+done
 
-unset BIN LIB save_usrlib online_usrbin online_usrlib
-</userinput></screen>
+unset BIN LIB save_usrlib online_usrbin online_usrlib</userinput></screen>
 
   <para>A large number of files will be flagged as errors because their file
   format is not recognized. These warnings can be safely ignored. They
diff --git a/chapter08/systemd.xml b/chapter08/systemd.xml
index 135cb9281..dd24feecf 100644
--- a/chapter08/systemd.xml
+++ b/chapter08/systemd.xml
@@ -273,7 +273,7 @@ unshare -m ninja test</userinput></screen>
   <!-- Multilib - 32-bit  -->
   <!-- - - - - - - - - - -->
   
-  <sect2 arch="ml_32,ml_all" role="installation">
+  <sect2 role="installation">
     <title>Installation of systemd - 32-bit</title>
 
     <para>Clean previous build:</para>
@@ -297,9 +297,9 @@ meson setup --prefix=/usr          \
             -D man=disabled        \
             -D mode=release        \
             ..</userinput></screen>
-<!-- We still use -D userdb=false for m32 to prevent the utilities from being
-     built. We only are interested in libraries here, and userdb has none.
-     - zeckma -->
+<!-- We still use -D userdb=false for 32-bit to prevent the utilities from
+     being built. We only are interested in libraries here, and userdb has
+     none. - zeckma -->
 
     <para>Compile the package:</para>
 
@@ -317,53 +317,7 @@ cp -av DESTDIR/usr/lib32/libudev.so* /usr/lib32/
 cp -v  DESTDIR/usr/lib32/pkgconfig/* /usr/lib32/pkgconfig/
 rm -rf DESTDIR</userinput></screen>
 
-  </sect2><!-- m32 -->
-
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - x32-bit -->
-  <!-- - - - - - - - - - -->
-  
-  <sect2 arch="ml_x32,ml_all" role="installation">
-    <title>Installation of systemd - x32-bit</title>
-
-    <para>Clean previous build:</para>
-
-<screen><userinput remap="pre">rm -rf *</userinput></screen>
-
-    <para>Prepare systemd for compilation:</para>
-
-<screen><userinput remap="configure">LANG=en_US.UTF-8                   \
-meson setup --prefix=/usr          \
-            --buildtype=release    \
-            --cross-file=libx32    \
-            -D default-dnssec=no   \
-            -D firstboot=false     \
-            -D install-tests=false \
-            -D ldconfig=false      \
-            -D sysusers=false      \
-            -D rpmmacrosdir=no     \
-            -D homed=false         \
-            -D userdb=false        \
-            -D man=disabled        \
-            -D mode=release        \
-            ..</userinput></screen>
-<!-- We still use -D userdb=false for mx32 to prevent the utilities from being
-     built. We only are interested in libraries here, and userdb has none.
-     - zeckma -->
-
-    <para>Compile the package:</para>
-
-<screen><userinput remap="make">LANG=en_US.UTF-8 ninja</userinput></screen>
-
-    <para>Install the package:</para>
-
-<screen><userinput remap="install">LANG=en_US.UTF-8 DESTDIR=$PWD/DESTDIR ninja install
-cp -av DESTDIR/usr/libx32/libsystemd.so* /usr/libx32/
-cp -av DESTDIR/usr/libx32/libudev.so* /usr/libx32/
-cp -v  DESTDIR/usr/libx32/pkgconfig/* /usr/libx32/pkgconfig/
-rm -rf DESTDIR</userinput></screen>
-
-  </sect2><!-- mx32 -->
+  </sect2>
 
   <sect2 id="contents-systemd" role="content">
     <title>Contents of systemd</title>
diff --git a/chapter08/udev.xml b/chapter08/udev.xml
index adf4829dd..65b2f0d54 100644
--- a/chapter08/udev.xml
+++ b/chapter08/udev.xml
@@ -200,10 +200,7 @@ rm /usr/share/man/man*/systemd*</userinput></screen>
 
   </sect2>
 
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - 32-bit  -->
-  <!-- - - - - - - - - - -->
-  <sect2 arch="ml_32,ml_all" role="installation">
+  <sect2 role="installation">
     <title>Installation of Udev - 32-bit</title>
 
     <para>Clean previous build (while still in the build directory):</para>
@@ -235,44 +232,8 @@ meson setup --prefix=/usr             \
 cp -av libudev.so{,*[0-9]} /usr/lib32/
 cp src/libudev/libudev.pc  /usr/lib32/pkgconfig/</userinput></screen>
 
-  </sect2><!-- m32 -->
-
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - x32-bit -->
-  <!-- - - - - - - - - - -->
-  <sect2 arch="ml_x32,ml_all" role="installation">
-    <title>Installation of Udev - x32-bit</title>
-    <para>Clean previous build (while still in the build directory):</para>
-
-<screen><userinput remap="pre">rm -rf *</userinput></screen>
-
-    <para>Prepare Udev for compilation:</para>
-
-<screen><userinput remap="configure">LANG=en_US.UTF-8                      \
-meson setup --prefix=/usr             \
-            --buildtype=release       \
-            --cross-file=libx32       \
-            -D mode=release           \
-            -D dev-kvm-mode=0660      \
-            -D link-udev-shared=false \
-            -D logind=false           \
-            -D vconsole=false         \
-            ..</userinput></screen>
-
-    <para>Compile the package:</para>
-
-<screen><userinput remap="make">ninja $(grep -o -E "^build (src/libudev|src/udev)[^:]*" \
-        build.ninja | awk '{ print $2 }')               \
-      $(realpath libudev.so --relative-to .)</userinput></screen>
-
-    <para>Install the package:</para>
-
-<screen><userinput remap="install">mkdir -pv /usr/libx32/pkgconfig
-cp -av libudev.so{,*[0-9]} /usr/libx32/
-cp src/libudev/libudev.pc  /usr/libx32/pkgconfig/</userinput></screen>
+  </sect2>
 
-  </sect2><!-- mx32 -->
-  
   <sect2 id="conf-udev" role="configuration">
     <title>Configuring Udev</title>
 
diff --git a/chapter08/util-linux.xml b/chapter08/util-linux.xml
index 3843fab80..627cb85c9 100644
--- a/chapter08/util-linux.xml
+++ b/chapter08/util-linux.xml
@@ -134,11 +134,7 @@ su tester -c "make -k check"</userinput></screen>
   
   </sect2>
 
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - 32-bit  -->
-  <!-- - - - - - - - - - -->
-  
-  <sect2 arch="ml_32,ml_all" role="installation">
+  <sect2 role="installation">
     <title>Installation of Util-linux - 32-bit</title>
 
     <para>Clean previous build:</para>
@@ -202,78 +198,7 @@ su tester -c "make -k check"</userinput></screen>
 cp -Rv DESTDIR/usr/lib32/* /usr/lib32
 rm -rf DESTDIR</userinput></screen>
 
-  </sect2><!-- m32 -->
-
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - x32-bit -->
-  <!-- - - - - - - - - - -->
-  
-  <sect2 arch="ml_x32,ml_all" role="installation">
-    <title>Installation of Util-linux - x32-bit</title>
-
-    <para>Clean previous build:</para>
-
-<screen><userinput remap="pre">make distclean</userinput></screen>
-
-    <para>Move a tool out of the way which is optionally used by
-    configure but will report invalid paths for multilib builds.</para>
-
-<screen><userinput remap="configure">mv /usr/bin/ncursesw6-config{,.tmp}</userinput></screen>
-
-    <para>Prepare Util-linux for compilation:</para>
-
-<screen revision="sysv"><userinput remap="configure">CC="gcc -mx32"                             \
-./configure --host=x86_64-pc-linux-gnux32  \
-            --libdir=/usr/libx32           \
-            --runstatedir=/run             \
-            --sbindir=/usr/sbin            \
-            --disable-chfn-chsh            \
-            --disable-login                \
-            --disable-nologin              \
-            --disable-su                   \
-            --disable-setpriv              \
-            --disable-runuser              \
-            --disable-pylibmount           \
-            --disable-liblastlog2          \
-            --disable-static               \
-            --without-python               \
-            --without-systemd              \
-            --without-systemdsystemunitdir \
-            ADJTIME_PATH=/var/lib/hwclock/adjtime</userinput></screen>
-
-<screen revision="systemd"><userinput remap="configure">
-CC="gcc -mx32"                            \
-./configure --host=x86_64-pc-linux-gnux32 \
-            --libdir=/usr/libx32          \
-            --runstatedir=/run            \
-            --sbindir=/usr/sbin           \
-            --disable-chfn-chsh           \
-            --disable-login               \
-            --disable-nologin             \
-            --disable-su                  \
-            --disable-setpriv             \
-            --disable-runuser             \
-            --disable-pylibmount          \
-            --disable-liblastlog2         \
-            --disable-static              \
-            --without-python              \
-            ADJTIME_PATH=/var/lib/hwclock/adjtime</userinput></screen>
-
-    <para>Restore the tool previously moved away:</para>
-
-<screen><userinput remap="configure">mv /usr/bin/ncursesw6-config{.tmp,}</userinput></screen>
-
-    <para>Compile the package:</para>
-
-<screen><userinput remap="make">make</userinput></screen>
-
-    <para>Install the package:</para>
-
-<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
-cp -Rv DESTDIR/usr/libx32/* /usr/libx32
-rm -rf DESTDIR</userinput></screen>
-
-  </sect2><!-- mx32 -->
+  </sect2>
 
   <sect2 id="contents-utillinux" role="content">
     <title>Contents of Util-linux</title>
diff --git a/chapter08/xz.xml b/chapter08/xz.xml
index 353302562..ae482be77 100644
--- a/chapter08/xz.xml
+++ b/chapter08/xz.xml
@@ -64,11 +64,7 @@
 
   </sect2>
 
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - 32-bit  -->
-  <!-- - - - - - - - - - -->
-  
-  <sect2 arch="ml_32,ml_all" role="installation">
+  <sect2 role="installation">
     <title>Installation of Xz - 32-bit</title>
 
     <para>Clean previous build:</para>
@@ -93,38 +89,7 @@
 cp -Rv DESTDIR/usr/lib32/* /usr/lib32
 rm -rf DESTDIR</userinput></screen>
 
-  </sect2><!-- m32 -->
-
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - x32-bit -->
-  <!-- - - - - - - - - - -->
-  
-  <sect2 arch="ml_x32,ml_all" role="installation">
-    <title>Installation of Xz - x32-bit</title>
-
-    <para>Clean previous build:</para>
-
-<screen><userinput remap="pre">make distclean</userinput></screen>
-
-    <para>Prepare Xz for compilation:</para>
-
-<screen><userinput remap="configure">CC="gcc -mx32" ./configure        \
-    --host=x86_64-pc-linux-gnux32 \
-    --prefix=/usr                 \
-    --libdir=/usr/libx32          \
-    --disable-static</userinput></screen>
-
-    <para>Compile the package:</para>
-
-<screen><userinput remap="make">make</userinput></screen>
-
-    <para>Install the package:</para>
-
-<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
-cp -Rv DESTDIR/usr/libx32/* /usr/libx32
-rm -rf DESTDIR</userinput></screen>
-
-  </sect2><!-- mx32 -->
+  </sect2>
 
   <sect2 id="contents-xz" role="content">
     <title>Contents of Xz</title>
diff --git a/chapter08/zlib.xml b/chapter08/zlib.xml
index 11d094b84..f32082465 100644
--- a/chapter08/zlib.xml
+++ b/chapter08/zlib.xml
@@ -63,11 +63,7 @@
 
   </sect2>
 
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - 32-bit  -->
-  <!-- - - - - - - - - - -->
-
-  <sect2 arch="ml_32,ml_all" role="installation">
+  <sect2 role="installation">
     <title>Installation of Zlib - 32-bit</title>
 
     <para>Clean previous build:</para>
@@ -89,33 +85,7 @@
 cp -Rv DESTDIR/usr/lib32/* /usr/lib32
 rm -rf DESTDIR</userinput></screen>
 
-  </sect2><!-- m32 -->
-
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - x32-bit -->
-  <!-- - - - - - - - - - -->
-
-  <sect2 arch="ml_x32,ml_all" role="installation">
-    <title>Installation of Zlib - x32-bit</title>
-
-<screen><userinput remap="pre">make distclean</userinput></screen>
-
-    <para>Prepare Zlib for compilation:</para>
-
-<screen><userinput remap="configure">CFLAGS+=" -mx32" CXXFLAGS+=" -mx32" \
-./configure --prefix=/usr --libdir=/usr/libx32</userinput></screen>
-
-    <para>Compile the package:</para>
-
-<screen><userinput remap="make">make</userinput></screen>
-
-    <para>Install the package:</para>
-
-<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
-cp -Rv DESTDIR/usr/libx32/* /usr/libx32
-rm -rf DESTDIR</userinput></screen>
-
-  </sect2><!-- mx32 -->
+  </sect2>
 
   <sect2 id="contents-zlib" role="content">
     <title>Contents of Zlib</title>
diff --git a/chapter08/zstd.xml b/chapter08/zstd.xml
index 3de59065c..5bf5c92e1 100644
--- a/chapter08/zstd.xml
+++ b/chapter08/zstd.xml
@@ -65,11 +65,7 @@
 
   </sect2>
 
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - 32-bit  -->
-  <!-- - - - - - - - - - -->
-  
-  <sect2 arch="ml_32,ml_all" role="installation">
+  <sect2 role="installation">
     <title>Installation of Zstd - 32-bit</title>
 
     <para>Clean previous build:</para>
@@ -87,31 +83,7 @@ cp -Rv DESTDIR/usr/lib/* /usr/lib32/
 sed -e "/^libdir/s/lib$/lib32/" -i /usr/lib32/pkgconfig/libzstd.pc
 rm -rf DESTDIR</userinput></screen>
 
-  </sect2><!-- m32 -->
-
-  <!-- - - - - - - - - - -->
-  <!-- Multilib - x32-bit -->
-  <!-- - - - - - - - - - -->
-  
-  <sect2 arch="ml_x32,ml_all" role="installation">
-    <title>Installation of Zstd - x32-bit</title>
-
-    <para>Clean previous build:</para>
-
-<screen><userinput remap="pre">make clean</userinput></screen>
-
-    <para>Compile the package:</para>
-
-<screen><userinput remap="make">CC="gcc -mx32" make prefix=/usr</userinput></screen>
-
-    <para>Install the package:</para>
-
-<screen><userinput remap="install">make prefix=/usr DESTDIR=$PWD/DESTDIR install
-cp -Rv DESTDIR/usr/lib/* /usr/libx32/
-sed -e "/^libdir/s/lib$/libx32/" -i /usr/libx32/pkgconfig/libzstd.pc
-rm -rf DESTDIR</userinput></screen>
-
-  </sect2><!-- mx32 -->
+  </sect2>
 
   <sect2 id="contents-zstd" role="content">
     <title>Contents of Zstd</title>
diff --git a/chapter10/kernel.xml b/chapter10/kernel.xml
index 71449b949..47f8e5d73 100644
--- a/chapter10/kernel.xml
+++ b/chapter10/kernel.xml
@@ -151,12 +151,14 @@
       <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
         href="kernel/x2apic.xml"/>
 
-      <para>If you are building a 32-bit system,
-      adjust the configuration so the kernel will
-      be able to use up to 4GB physical RAM:</para>
+      <para>
+        The kernel on a multilib system needs to be able to
+        identify and start binaries compiled for different architectures
+        than the default. Enable support for the 32-bit ABI.
+      </para>
 
       <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-        href="kernel/highmem.xml"/>
+        href="kernel/multilib-32.xml"/>
 
       <para>If the partition for the LFS system is in a NVME SSD (i. e. the
       device node for the partition is <filename>/dev/nvme*</filename>
@@ -186,30 +188,6 @@
       UEFI bootloader from the host distro</emphasis>.</para>
     </note>
 
-    <note arch="ml_32,ml_x32,ml_all">
-      <para>
-        The kernel on a multilib system needs to be able to
-        identify and start binaries compiled for different architectures
-        than the default.
-      </para>
-
-      <para arch="ml_32,ml_all">
-        If support for any 32-bit ABI was built, make sure that the option
-        "IA32 Emulation" is selected.
-      </para>
-
-      <xi:include arch="ml_32,ml_all" xmlns:xi="http://www.w3.org/2001/XInclude"
-        href="kernel/multilib-32.xml"/>
-
-      <para arch="ml_x32,ml_all">
-        If support for the x32-bit ABI was built, make sure that the option
-        "x32 ABI for 64-bit mode" is selected.
-      </para>
-
-      <xi:include arch="ml_x32,ml_all" xmlns:xi="http://www.w3.org/2001/XInclude"
-        href="kernel/multilib-x32.xml"/>
-    </note>
-    
     <variablelist>
       <title>The rationale for the above configuration items:</title>
 
diff --git a/chapter10/kernel/multilib-32.toml b/chapter10/kernel/multilib-32.toml
index ba6ec9cd7..8c1fd5e92 100644
--- a/chapter10/kernel/multilib-32.toml
+++ b/chapter10/kernel/multilib-32.toml
@@ -1,3 +1,2 @@
 IA32_EMULATION='*'
 IA32_EMULATION_DEFAULT_DISABLED=' '
-arch='ml_32,ml_all'
diff --git a/chapter10/kernel/multilib-32.xml b/chapter10/kernel/multilib-32.xml
index e884833db..c402fdd0f 100644
--- a/chapter10/kernel/multilib-32.xml
+++ b/chapter10/kernel/multilib-32.xml
@@ -3,6 +3,6 @@
   "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
 <!-- Automatically generated by kernel-config.py
      DO NOT EDIT! -->
-<screen role="nodump" arch="ml_32,ml_all"><emphasis role='blue'>B</emphasis>inary Emulations ---&gt;
+<screen role="nodump"><emphasis role='blue'>B</emphasis>inary Emulations ---&gt;
   [*] <emphasis role='blue'>I</emphasis>A32 Emulation                                            [IA32_EMULATION]
   [ ]   <emphasis role='blue'>I</emphasis>A32 emulation disabled by default     [IA32_EMULATION_DEFAULT_DISABLED]</screen>
diff --git a/chapter10/kernel/multilib-x32.toml b/chapter10/kernel/multilib-x32.toml
deleted file mode 100644
index 08f8b6640..000000000
--- a/chapter10/kernel/multilib-x32.toml
+++ /dev/null
@@ -1,2 +0,0 @@
-X86_X32_ABI='*'
-arch='ml_x32,ml_all'
diff --git a/chapter10/kernel/multilib-x32.xml b/chapter10/kernel/multilib-x32.xml
deleted file mode 100644
index 9b082af6a..000000000
--- a/chapter10/kernel/multilib-x32.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE note PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<!-- Automatically generated by kernel-config.py
-     DO NOT EDIT! -->
-<screen role="nodump" arch="ml_x32,ml_all"><emphasis role='blue'>B</emphasis>inary Emulations ---&gt;
-  [*] <emphasis role='blue'>x</emphasis>32 ABI for 64-bit mode                                      [X86_X32_ABI]</screen>
diff --git a/prologue/audience.xml b/prologue/audience.xml
index 79accb24c..d55cda651 100644
--- a/prologue/audience.xml
+++ b/prologue/audience.xml
@@ -14,9 +14,9 @@
     Installing vanilla LFS has all its perks and upsides, alongside an
     educational benefit. This book aims to solve another problem, where users
     may need to build or run something for 32-bit on a 64-bit machine, where
-    64-bit is the architecture they built LFS for. <phrase
-    arch="ml_32,ml_x32,ml_all"><xref linkend="pre-multilib"/> covers why this
-    may be the case and how multilib works.</phrase>
+    64-bit is the architecture they built LFS for. <xref
+    linkend="pre-multilib"/> covers why this may be the case and how multilib
+    works.
   </para>
 
   <para>
diff --git a/prologue/bookinfo.xml b/prologue/bookinfo.xml
index a47e015d1..b705f2646 100644
--- a/prologue/bookinfo.xml
+++ b/prologue/bookinfo.xml
@@ -23,7 +23,7 @@
       <firstname>Editor: Douglas R.</firstname>
       <surname>Reno</surname>
     </author>
-    <author arch="ml_32,ml_x32,ml_all">
+    <author>
       <firstname>Editor: Zeckma</firstname>
     </author>
   </authorgroup>
diff --git a/prologue/multilib.xml b/prologue/multilib.xml
index c71d9e45d..d649dc6e2 100644
--- a/prologue/multilib.xml
+++ b/prologue/multilib.xml
@@ -5,7 +5,7 @@
   %general-entities;
 ]>
 
-<sect1 arch="ml_32,ml_x32,ml_all" id="pre-multilib">
+<sect1 id="pre-multilib">
   <?dbhtml filename="multilib.html"?>
 
   <title>About the Multilib Edition</title>
@@ -31,9 +31,8 @@
       the software's bit size while still offering a mainly 64-bit
       experience.</para>
 
-    <para>This book provides 32-bit (i?86) and x32-bit
-      dependencies and toolchains intended for 64-bit x86 (x86_64)
-      systems.</para>
+    <para>This book provides 32-bit (i?86) dependencies and toolchains intended
+      for 64-bit x86 (x86_64/AMD64) systems.</para>
 
   </sect2>
 
@@ -54,9 +53,8 @@
       against or into. The toolchains in place need to gain that support.</para>
 
     <para>The duty of MLFS is to arm the system with toolchains that can target
-      32-bit and/or x32-bit, then provide basic dependencies that allow
-      32-bit/x32-bit compilations of packages outside of LFS to succeed and
-      work as expected.</para>
+      32-bit, then provide basic dependencies that allow 32-bit compilation and
+      execution of packages within and outside base LFS.</para>
 
   </sect2>
 
@@ -66,8 +64,8 @@
       less-so using the produced result day-to-day. Installing support for
       different bit sizes adds more onto the table at a price and makes the
       initial LFS installing experience more confusing. It's recommended to
-      have installed LFS before installing MLFS. However, if you choose
-      to do the latter, you may encounter situations where having a multilib
+      have installed LFS before installing MLFS. If you choose to install
+      normal LFS, however, you may encounter situations where having a multilib
       system is rather beneficial. The following covers a non-exhaustive list
       of reasons to do so:
       <itemizedlist>
@@ -76,8 +74,8 @@
           software.</para></listitem>
         <listitem><para>Setting up virtualization for a system with a different
           bit size.</para></listitem>
-        <listitem><para>To learn the fundamentals of how multilib is set
-        up.</para></listitem>
+        <listitem><para>To learn the fundamentals of how multilib
+          works.</para></listitem>
       </itemizedlist>
       
     </para>
@@ -90,70 +88,64 @@
       bootstrapping the system from another Linux distribution. At the same
       time, it was mentioned that a compiler with no support for other bit
       sizes built in will fail to build anything for that bit size. This means
-      that to build a compiler with support for other bit sizes (32-bit and
-      x32-bit), you need the system you are bootstrapping from to have that
-      support built into the compilers and must have the dependencies that
-      go along with them.</para>
+      that to build a compiler with support for other bit sizes (32-bit).
+      you need the system you are bootstrapping from to have that support built
+      into the toolchain and must have the dependencies that are required by
+      it.</para>
 
     <para>Over time, users of MLFS found that the best media for this
       purpose is the <ulink
       url="https://www.gentoo.org/downloads/#amd64">Gentoo CD</ulink>. It's
       personal preference whether you want to use the minimal installation CD,
       LiveGUI USB image, or the QCOW2 image. The LiveGUI USB image is very user
-      friendly, using KDE as the desktop environment and has web browsers for
-      use. The CDs offer 32-bit and x32-bit support on top of 64-bit. If you
-      already built an MLFS system, MLFS offers a good base to bootstrap from
-      as well.</para>
+      friendly, using KDE Plasma as the desktop environment and has web
+      browsers for use. The CDs offer 32-bit support on AMD64 (x86_64).
+      If you already built an MLFS system, MLFS offers a good base to
+      bootstrap from as well.</para>
 
     <para>Building a multilib system is not that much different from 
       building a system using the vanilla LFS book. Besides incorporating 
       changes that allow multilib support in some packages or toolchains,
-      the overall process requires compiling some packages multiple times:
+      the overall process requires compiling some packages a couple of times:
       <orderedlist>
         <listitem>
-          <para>For 64-bit (can provide both programs, libraries, and
-          data)</para>
+          <para>For 64-bit (can provide programs, libraries, header files,
+          Pkg-config files, and assets)</para>
         </listitem>
-        <listitem arch="ml_32,ml_all">
-          <para>For 32-bit (typically installs only libraries)</para>
-        </listitem>
-        <listitem arch="ml_x32,ml_all">
-          <para>For x32-bit (typically installs only libraries)</para>
+        <listitem>
+          <para>For 32-bit (typically installs only libraries, very rarely
+          architecture-specific header files, and architecture-specific
+          Pkg-config files)</para>
         </listitem>
       </orderedlist>
     </para>
 
-    <para>Continue if your system meets the
-      following requirements:
+    <para>Continue if your system meets the following requirements:
       <itemizedlist>
         <listitem>
-          <para>You have a x86_64 system.</para>
+          <para>You have an x86_64/AMD64 system with an x86_64/AMD64 operating
+          system.</para>
         </listitem>
         <listitem>
           <para>
-            Have the ability to execute 32-bit/x32-bit software. Check
+            Have the ability to execute 32-bit software. Check
             compatibility by running the following commands:
           </para>
 <screen><userinput>echo 'int main(){}' &gt; dummy.c
-</userinput><userinput arch="ml_32,ml_all">gcc -m32 dummy.c
+gcc -m32 dummy.c
 ./a.out
-
-</userinput><userinput arch="ml_x32,ml_all">gcc -mx32 dummy.c
-./a.out
-
-</userinput><userinput>rm -vf dummy.c a.out</userinput></screen>
+rm -vf dummy.c a.out</userinput></screen>
           <para>
             If the above commands result in "Exec format" or compiler errors,
             then you do not have a system kernel and/or toolchain capable of
-            building for one or all of the above architectures within LFS. At
-            that point, try using another distribution or installation media.
+            building or running 32-bit software. At that point, try using
+            another distribution or installation media.
           </para>
         </listitem>
       </itemizedlist>
     </para>
 
-    <para>If you passed the above architecture
-      requirements, go ahead and build MLFS.</para>
+    <para>If you passed the above requirements, go ahead and build MLFS.</para>
 
   </sect2>
 

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.

-- 
http://lists.linuxfromscratch.org/sympa/info/lfs-book
Unsubscribe: See the above information page
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.