Change profiling attribute to enable selection of m32 and/or mx32. Fixes #4452.

git-svn-id: http://svn.linuxfromscratch.org/LFS/branches/multilib@11571 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
This commit is contained in:
Thomas Trepl 2019-04-07 09:47:30 +00:00 committed by Xℹ Ruoyao
parent 6702623889
commit fd48baafd5
No known key found for this signature in database
GPG Key ID: D95E4716CCBB34DC
45 changed files with 253 additions and 153 deletions

View File

@ -38,8 +38,12 @@ ifndef ARCH
ARCH = default
endif
ifneq ($(ARCH), default)
ifneq ($(ARCH), multilib)
$(error ARCH must be either 'default' (default if unset) or 'multilib'.)
ifneq ($(ARCH), ml_32)
ifneq ($(ARCH), ml_x32)
ifneq ($(ARCH), ml_all)
$(error ARCH must be either 'default' (default if unset), 'ml_32', 'ml_x32' or 'ml_all'.)
endif
endif
endif
endif

View File

@ -40,9 +40,9 @@
<listitem>
<para>The version of the book being used (in this case
<phrase arch="default" revision="sysv">&version;</phrase>
<phrase arch="multilib" revision="sysv">&version;-multilib</phrase>
<phrase arch="ml_32,ml_x32,ml_all" revision="sysv">&version;-multilib</phrase>
<phrase arch="default" revision="systemd">&versiond;</phrase>
<phrase arch="multilib" revision="systemd">&versiond;-multilib</phrase>)</para>
<phrase arch="ml_32,ml_x32,ml_all" revision="systemd">&versiond;-multilib</phrase>)</para>
</listitem>
<listitem>

View File

@ -12,9 +12,9 @@
<para>This is version
<phrase arch="default" revision="sysv">&version;</phrase>
<phrase arch="multilib" revision="sysv">&version;-multilib</phrase>
<phrase arch="ml_32,ml_x32,ml_all" revision="sysv">&version;-multilib</phrase>
<phrase arch="default" revision="systemd">&versiond;</phrase>
<phrase arch="multilib" revision="systemd">&versiond;-multilib</phrase>
<phrase arch="ml_32,ml_x32,ml_all" revision="systemd">&versiond;-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

View File

@ -47,7 +47,7 @@ PATH=/tools/bin:/bin:/usr/bin
export LFS LC_ALL LFS_TGT PATH</literal>
EOF</userinput></screen>
<screen arch="multilib"><userinput>cat &gt; ~/.bashrc &lt;&lt; "EOF"
<screen arch="ml_32,ml_x32,ml_all"><userinput>cat &gt; ~/.bashrc &lt;&lt; "EOF"
<literal>set +h
umask 022
LFS=/mnt/lfs

View File

@ -79,9 +79,12 @@ cd build</userinput></screen>
--disable-nls \
--disable-werror</userinput></screen>
<screen arch="multilib"><userinput remap="configure">../configure --prefix=/tools \
<screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">lpath=/tools/lib</userinput>
<userinput remap="configure" arch="ml_32,ml_all">lpath="$lpath:/tools/lib32"</userinput>
<userinput remap="configure" arch="ml_x32,ml_all">lpath="$lpath:/tools/libx32"</userinput>
<userinput remap="configure">../configure --prefix=/tools \
--with-sysroot=$LFS \
--with-lib-path=/tools/lib:/tools/lib32:/tools/libx32 \
--with-lib-path=$lpath \
--target=$LFS_TGT \
--disable-nls \
--disable-werror \
@ -158,14 +161,14 @@ cd build</userinput></screen>
<para arch="default">If building on x86_64, create a symlink to ensure the
sanity of the toolchain:</para>
<para arch="multilib">Create a symlink to ensure the sanity of
<para arch="ml_32,ml_x32,ml_all">Create a symlink to ensure the sanity of
the toolchain:</para>
<screen arch="default"><userinput remap="install">case $(uname -m) in
x86_64) mkdir -v /tools/lib &amp;&amp; ln -sv lib /tools/lib64 ;;
esac</userinput></screen>
<screen arch="multilib"><userinput remap="install">mkdir -v /tools/lib &amp;&amp;
<screen arch="ml_32,ml_x32,ml_all"><userinput remap="install">mkdir -v /tools/lib &amp;&amp;
ln -sv lib /tools/lib64</userinput></screen>
<para>Install the package:</para>

View File

@ -60,14 +60,17 @@ RANLIB=$LFS_TGT-ranlib \
--with-lib-path=/tools/lib \
--with-sysroot</userinput></screen>
<screen arch="multilib"><userinput remap="configure">CC=$LFS_TGT-gcc \
<screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">lpath=/tools/lib</userinput>
<userinput remap="configure" arch="ml_32,ml_all">lpath="$lpath:/tools/lib32"</userinput>
<userinput remap="configure" arch="ml_x32,ml_all">lpath="$lpath:/tools/libx32"</userinput>
<userinput remap="configure">CC=$LFS_TGT-gcc \
AR=$LFS_TGT-ar \
RANLIB=$LFS_TGT-ranlib \
../configure \
--prefix=/tools \
--disable-nls \
--disable-werror \
--with-lib-path=/tools/lib:/tools/lib32:/tools/libx32 \
--with-lib-path=$lpath \
--with-sysroot \
--enable-64-bit-bfd \
--enable-multilib</userinput></screen>
@ -95,7 +98,7 @@ RANLIB=$LFS_TGT-ranlib \
</listitem>
</varlistentry>
<varlistentry arch="multilib">
<varlistentry arch="ml_32,ml_x32,ml_all">
<term><parameter>--with-lib-path=/tools/lib:...</parameter></term>
<listitem>
<para>This tells the configure script to specify the library
@ -118,14 +121,14 @@ RANLIB=$LFS_TGT-ranlib \
</listitem>
</varlistentry>
<varlistentry arch="multilib">
<varlistentry arch="ml_32,ml_x32,ml_all">
<term><parameter>--enable-64-bit-bfd</parameter></term>
<listitem>
<para>TODO</para>
</listitem>
</varlistentry>
<varlistentry arch="multilib">
<varlistentry arch="ml_32,ml_x32,ml_all">
<term><parameter>--enable-multilib</parameter></term>
<listitem>
<para>TODO</para>
@ -149,8 +152,14 @@ RANLIB=$LFS_TGT-ranlib \
make -C ld LIB_PATH=/usr/lib:/lib
cp -v ld/ld-new /tools/bin</userinput></screen>
<screen arch="multilib"><userinput remap="adjust">make -C ld clean
<screen arch="ml_all"><userinput remap="adjust">make -C ld clean
make -C ld LIB_PATH=/usr/lib:/lib:/usr/lib32:/lib32:/usr/libx32:/libx32
cp -v ld/ld-new /tools/bin</userinput></screen>
<screen arch="ml_32"><userinput remap="adjust">make -C ld clean
make -C ld LIB_PATH=/usr/lib:/lib:/usr/lib32:/lib32
cp -v ld/ld-new /tools/bin</userinput></screen>
<screen arch="ml_x32"><userinput remap="adjust">make -C ld clean
make -C ld LIB_PATH=/usr/lib:/lib:/usr/libx32:/libx32
cp -v ld/ld-new /tools/bin</userinput></screen>
<variablelist>

View File

@ -49,7 +49,7 @@
rename the resulting directories so the GCC build procedures will
automatically use them:</para>
<para arch="multilib">GCC now requires the GMP, ISL, MPFR, and MPC packages.
<para arch="ml_32,ml_x32,ml_all">GCC now requires the GMP, ISL, MPFR, and MPC packages.
As these packages may not be included in your host distribution, they will
be built with GCC. Unpack each package into the GCC source directory and
rename the resulting directories so the GCC build procedures will
@ -67,7 +67,7 @@ tar -xf ../gmp-&gmp-version;.tar.xz
mv -v gmp-&gmp-version; gmp
tar -xf ../mpc-&mpc-version;.tar.gz
mv -v mpc-&mpc-version; mpc</userinput></screen>
<screen arch="multilib"><userinput remap="pre">tar -xf ../mpfr-&mpfr-version;.tar.xz
<screen arch="ml_32,ml_x32,ml_all"><userinput remap="pre">tar -xf ../mpfr-&mpfr-version;.tar.xz
mv -v mpfr-&mpfr-version; mpfr
tar -xf ../gmp-&gmp-version;.tar.xz
mv -v gmp-&gmp-version; gmp
@ -121,7 +121,7 @@ done</userinput></screen>
;;
esac</userinput></screen>
<screen arch="multilib"><userinput remap="pre">sed -e '/m64=/s/lib64/lib/' \
<screen arch="ml_32,ml_x32,ml_all"><userinput remap="pre">sed -e '/m64=/s/lib64/lib/' \
-i.orig gcc/config/i386/t-linux64
cat > gcc/config/i386/t-linux64 &lt;&lt;"EOF"
comma=,
@ -149,9 +149,9 @@ EOF</userinput></screen>
<!-- Following patch might be obsolete with gcc >= 8.2.1 -->
<!-- see: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86724 -->
<!-- Fix applied in ch5-gcc-pass{1,2}, ch6-gcc -->
<para arch="multilib">Fix an issue with isl-&isl-version;:</para>
<para arch="ml_32,ml_x32,ml_all">Fix an issue with isl-&isl-version;:</para>
<screen arch="multilib"><userinput remap="pre">sed -e "/#include &lt;isl\/schedule_node.h&gt;/ a#include &lt;isl/id.h&gt;\n#include &lt;isl/space.h&gt;" \
<screen arch="ml_32,ml_x32,ml_all"><userinput remap="pre">sed -e "/#include &lt;isl\/schedule_node.h&gt;/ a#include &lt;isl/id.h&gt;\n#include &lt;isl/space.h&gt;" \
-i gcc/graphite.h</userinput></screen>
<para>The GCC documentation recommends building GCC
@ -185,7 +185,10 @@ cd build</userinput></screen>
--disable-libstdcxx \
--enable-languages=c,c++</userinput></screen>
<screen arch="multilib"><userinput remap="configure">../configure \
<screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">mlist="m64"</userinput>
<userinput arch="ml_32,ml_all" remap="configure">mlist="$mlist,m32"</userinput>
<userinput arch="ml_x32,ml_all" remap="configure">mlist="$mlist,mx32"</userinput>
<userinput remap="configure">../configure \
--target=$LFS_TGT \
--prefix=/tools \
--with-glibc-version=2.11 \
@ -197,7 +200,7 @@ cd build</userinput></screen>
--disable-nls \
--disable-shared \
--enable-multilib \
--with-multilib-list=m32,m64,mx32 \
--with-multilib-list=$mlist \
--disable-decimal-float \
--disable-threads \
--disable-libatomic \
@ -286,7 +289,7 @@ cd build</userinput></screen>
</listitem>
</varlistentry>
<varlistentry arch="multilib">
<varlistentry arch="ml_32,ml_x32,ml_all">
<term><parameter>--enable-multilib,
--with-multilib-list=m32,m64,mx32</parameter></term>
<listitem>

View File

@ -93,10 +93,10 @@ done</userinput></screen>
;;
esac</userinput></screen>
<para arch="multilib">Change the default directory name for 64-bit
<para arch="ml_32,ml_x32,ml_all">Change the default directory name for 64-bit
libraries to <quote>lib</quote>:</para>
<screen arch="multilib"><userinput remap="pre">sed -e '/m64=/s/lib64/lib/' \
<screen arch="ml_32,ml_x32,ml_all"><userinput remap="pre">sed -e '/m64=/s/lib64/lib/' \
-i.orig gcc/config/i386/t-linux64
cat > gcc/config/i386/t-linux64 &lt;&lt;"EOF"
comma=,
@ -111,7 +111,7 @@ EOF</userinput></screen>
MPFR, and MPC packages. Unpack the tarballs and move them into the
required directory names:</para>
<para arch="multilib">As in the first build of GCC it requires the GMP,
<para arch="ml_32,ml_x32,ml_all">As in the first build of GCC it requires the GMP,
ISL, MPFR, and MPC packages. Unpack the tarballs and move them into the
required directory names:</para>
@ -121,7 +121,7 @@ tar -xf ../gmp-&gmp-version;.tar.xz
mv -v gmp-&gmp-version; gmp
tar -xf ../mpc-&mpc-version;.tar.gz
mv -v mpc-&mpc-version; mpc</userinput></screen>
<screen arch="multilib"><userinput remap="pre">tar -xf ../mpfr-&mpfr-version;.tar.xz
<screen arch="ml_32,ml_x32,ml_all"><userinput remap="pre">tar -xf ../mpfr-&mpfr-version;.tar.xz
mv -v mpfr-&mpfr-version; mpfr
tar -xf ../gmp-&gmp-version;.tar.xz
mv -v gmp-&gmp-version; gmp
@ -131,9 +131,9 @@ tar -xf ../isl-&isl-version;.tar.xz
mv -v isl-&isl-version; isl</userinput></screen>
<!-- Following patch might be obsolete with gcc >= 8.2.1 -->
<para arch="multilib">Fix an issue with isl-&isl-version;:</para>
<para arch="ml_32,ml_x32,ml_all">Fix an issue with isl-&isl-version;:</para>
<screen arch="multilib"><userinput remap="pre">sed -e "/#include &lt;isl\/schedule_node.h&gt;/ a#include &lt;isl/id.h&gt;\n#include &lt;isl/space.h&gt;" \
<screen arch="ml_32,ml_x32,ml_all"><userinput remap="pre">sed -e "/#include &lt;isl\/schedule_node.h&gt;/ a#include &lt;isl/id.h&gt;\n#include &lt;isl/space.h&gt;" \
-i gcc/graphite.h</userinput></screen>
<para>Create a separate build directory again:</para>
@ -160,7 +160,10 @@ RANLIB=$LFS_TGT-ranlib \
--disable-bootstrap \
--disable-libgomp</userinput></screen>
<screen arch="multilib"><userinput remap="configure">CC=$LFS_TGT-gcc \
<screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">mlist="m64"</userinput>
<userinput arch="ml_32,ml_all" remap="configure">mlist="$mlist,m32"</userinput>
<userinput arch="ml_x32,ml_all" remap="configure">mlist="$mlist,mx32"</userinput>
<userinput remap="configure">CC=$LFS_TGT-gcc \
CXX=$LFS_TGT-g++ \
AR=$LFS_TGT-ar \
RANLIB=$LFS_TGT-ranlib \
@ -171,7 +174,7 @@ RANLIB=$LFS_TGT-ranlib \
--enable-languages=c,c++ \
--disable-libstdcxx-pch \
--enable-multilib \
--with-multilib-list=m32,m64,mx32 \
--with-multilib-list=$mlist \
--with-system-zlib \
--disable-bootstrap \
--disable-libgomp</userinput></screen>
@ -244,23 +247,23 @@ readelf -l a.out | grep ': /tools'</userinput></screen>
<screen><computeroutput>[Requesting program interpreter: /tools/lib64/ld-linux-x86-64.so.2]</computeroutput></screen>
<para arch="multilib">Repeat the test for 32-bit:</para>
<para arch="ml_32,ml_all">Repeat the test for 32-bit:</para>
<screen arch="multilib"><userinput>cc -m32 dummy.c
<screen arch="ml_32,ml_all"><userinput>cc -m32 dummy.c
readelf -l a.out | grep ': /tools'</userinput></screen>
<para arch="multilib">In this case, the output shoud be:</para>
<para arch="ml_32,ml_all">In this case, the output shoud be:</para>
<screen arch="multilib"><computeroutput>[Requesting program interpreter: /tools/lib/ld-linux.so.2]</computeroutput></screen>
<screen arch="ml_32,ml_all"><computeroutput>[Requesting program interpreter: /tools/lib/ld-linux.so.2]</computeroutput></screen>
<para arch="multilib">Repeat the test for x32-bit:</para>
<para arch="ml_x32,ml_all">Repeat the test for x32-bit:</para>
<screen arch="multilib"><userinput>cc -mx32 dummy.c
<screen arch="ml_x32,ml_all"><userinput>cc -mx32 dummy.c
readelf -l a.out | grep ': /tools'</userinput></screen>
<para arch="multilib">In this case, the output shoud be:</para>
<para arch="ml_x32,ml_all">In this case, the output shoud be:</para>
<screen arch="multilib"><computeroutput>[Requesting program interpreter: /tools/lib/ld-linux-x32.so.2]</computeroutput></screen>
<screen arch="ml_x32,ml_all"><computeroutput>[Requesting program interpreter: /tools/lib/ld-linux-x32.so.2]</computeroutput></screen>
<para arch="default">Note that the dynamic linker will be
/tools/lib/ld-linux.so.2 for 32-bit machines.</para>

View File

@ -82,7 +82,7 @@ cd build</userinput></screen>
</listitem>
</varlistentry>
<varlistentry arch="multilib">
<varlistentry arch="ml_32,ml_x32,ml_all">
<term><parameter>--enable-multi-arch</parameter></term>
<listitem>
<para>Enables glibc for multiarch environments.</para>
@ -191,7 +191,7 @@ readelf -l a.out | grep ': /tools'</userinput></screen>
</sect2>
<sect2 arch="multilib" role="installation">
<sect2 arch="ml_32,ml_all" role="installation">
<title>Installation of Glibc 32-bit</title>
<para>Clean the build directory for redoing glibc for 32-bit:</para>
@ -213,9 +213,10 @@ RANLIB="${LFS_TGT}-ranlib" \
--libdir=/tools/lib32 \
--libexecdir=/tools/lib32 \
--with-headers=/tools/include \
--with-binutils=/tools/bin \
--with-binutils=/tools/bin</userinput></screen>
<!-- \
libc_cv_forced_unwind=yes \
libc_cv_c_cleanup=yes</userinput></screen>
libc_cv_c_cleanup=yes</userinput></screen> -->
<para>Now compile the 32-bit version of glibc:</para>
<screen><userinput remap="make">make</userinput></screen>
@ -231,7 +232,7 @@ cd ..</userinput></screen>
</sect2>
<sect2 arch="multilib" role="installation">
<sect2 arch="ml_x32,ml_all" role="installation">
<title>Installation of Glibc x32-bit</title>
<para>Create a build directory for redoing glibc for x32-bit:</para>
@ -253,9 +254,10 @@ RANLIB="${LFS_TGT}-ranlib" \
--libdir=/tools/libx32 \
--libexecdir=/tools/libx32 \
--with-headers=/tools/include \
--with-binutils=/tools/bin \
--with-binutils=/tools/bin</userinput></screen>
<!-- \
libc_cv_forced_unwind=yes \
libc_cv_c_cleanup=yes</userinput></screen>
libc_cv_c_cleanup=yes</userinput></screen> -->
<para>Now compile the x32-bit version of glibc:</para>
<screen><userinput remap="make">make</userinput></screen>

View File

@ -112,7 +112,7 @@ ln -s libncursesw.so /tools/lib/libncurses.so</userinput></screen>
</sect2>
<sect2 arch="multilib" role="installation">
<sect2 arch="ml_32,ml_all" role="installation">
<title>Installation of Ncurses - 32 bit</title>
<para>Prepare Ncurses for compilation:</para>
@ -143,7 +143,7 @@ cp -Rv DESTDIR_32/tools/lib32/* /tools/lib32</userinput></screen>
</sect2>
<sect2 arch="multilib" role="installation">
<sect2 arch="ml_x32,ml_all" role="installation">
<title>Installation of Ncurses - x32 bit</title>
<para>Repeat for the x32-ABI:</para>

View File

@ -18,7 +18,11 @@
<screen arch="default"><userinput>strip --strip-debug /tools/lib/*
/usr/bin/strip --strip-unneeded /tools/{,s}bin/*</userinput></screen>
<screen arch="multilib"><userinput>strip --strip-debug /tools/lib{,{,x}32}/*
<screen arch="ml_32"><userinput>strip --strip-debug /tools/lib{,32}/*
/usr/bin/strip --strip-unneeded /tools/{,s}bin/*</userinput></screen>
<screen arch="ml_x32"><userinput>strip --strip-debug /tools/lib{,x32}/*
/usr/bin/strip --strip-unneeded /tools/{,s}bin/*</userinput></screen>
<screen arch="ml_all"><userinput>strip --strip-debug /tools/lib{,{,x}32}/*
/usr/bin/strip --strip-unneeded /tools/{,s}bin/*</userinput></screen>
<para>These commands will skip a number of files, reporting that it does not
@ -38,7 +42,9 @@
<screen arch="default"><userinput>find /tools/{lib,libexec} -name \*.la -delete</userinput></screen>
<screen arch="multilib"><userinput>find /tools/{lib{,{,x}32},libexec} -name \*.la -delete</userinput></screen>
<screen arch="ml_32"><userinput>find /tools/{lib{,32},libexec} -name \*.la -delete</userinput></screen>
<screen arch="ml_x32"><userinput>find /tools/{lib{,x32},libexec} -name \*.la -delete</userinput></screen>
<screen arch="ml_all"><userinput>find /tools/{lib{,{,x}32},libexec} -name \*.la -delete</userinput></screen>
<para>At this point, you should have at least 3 GB of free space in
<envar>$LFS</envar> that can be used to build and install Glibc and Gcc in

View File

@ -121,7 +121,7 @@
</sect2>
<sect2 arch="multilib" role="installation">
<sect2 arch="ml_32,ml_all" role="installation">
<title>Installation of Util-Linux - 32 bit</title>
<para>Prepare Util-Linux for compilation:</para>
@ -153,7 +153,7 @@ cp -Rv DESTDIR_32/tools/lib32/* /tools/lib32</userinput></screen>
</sect2>
<sect2 arch="multilib" role="installation">
<sect2 arch="ml_x32,ml_all" role="installation">
<title>Installation of Util-Linux - x32 bit</title>
<para>Repeat for the x32-ABI:</para>

View File

@ -63,7 +63,7 @@
</sect2>
<sect2 arch="multilib" role="installation">
<sect2 arch="ml_32,ml_all" role="installation">
<title>Installation of Xz - 32 bit</title>
<para>Prepare Xz for compilation:</para>
@ -90,7 +90,7 @@ cp -Rv DESTDIR_32/tools/lib32/* /tools/lib32</userinput></screen>
</sect2>
<sect2 arch="multilib" role="installation">
<sect2 arch="ml_x32,ml_all" role="installation">
<title>Installation of Xz - x32 bit</title>
<para>Repeat for the x32-ABI:</para>

View File

@ -5,7 +5,7 @@
%general-entities;
]>
<sect1 arch="multilib" id="ch-tools-zlib" role="wrap">
<sect1 arch="ml_32,ml_x32,ml_all" id="ch-tools-zlib" role="wrap">
<?dbhtml filename="zlib.html"?>
<sect1info condition="script">
@ -59,7 +59,7 @@
</sect2>
<sect2 arch="multilib" role="installation">
<sect2 arch="ml_32,ml_all" role="installation">
<title>Installation of Zlib - 32 bit</title>
<para>Prepare Zlib for compilation:</para>
@ -82,7 +82,7 @@ cp -Rv DESTDIR_32/tools/lib32/* /tools/lib32</userinput></screen>
</sect2>
<sect2 arch="multilib" role="installation">
<sect2 arch="ml_x32,ml_all" role="installation">
<title>Installation of Zlib - x32 bit</title>
<para>Repeat for the x32-ABI:</para>

View File

@ -79,7 +79,9 @@ ln -sfv ../../lib/$(readlink /usr/lib/libacl.so) /usr/lib/libacl.so</userinput><
</sect2>
<sect2 arch="multilib" role="installation">
<!-- ~~~~~~~~~~~~~~~~~~~~ ABI 32 ~~~~~~~~~~~~~~~~~~~~ -->
<sect2 arch="ml_32,ml_all" role="installation">
<title>Installation of Acl - 32-bit</title>
<para>Clean previous build:</para>
@ -105,7 +107,9 @@ rm -rf DESTDIR</userinput></screen>
</sect2>
<sect2 arch="multilib" role="installation">
<!-- ~~~~~~~~~~~~~~~~~~~~ ABI x32 ~~~~~~~~~~~~~~~~~~~~ -->
<sect2 arch="ml_x32,ml_all" role="installation">
<title>Installation of Acl - x32-bit</title>
<para>Clean previous build:</para>

View File

@ -78,7 +78,9 @@ ln -sfv ../../lib/$(readlink /usr/lib/libattr.so) /usr/lib/libattr.so</userinput
</sect2>
<sect2 arch="multilib" role="installation">
<!-- ~~~~~~~~~~~~~~~~~~~~ ABI 32 ~~~~~~~~~~~~~~~~~~~~ -->
<sect2 arch="ml_32,ml_all" role="installation">
<title>Installation of Attr - 32-bit</title>
<para>Clean previous build:</para>
@ -105,7 +107,9 @@ rm -rf DESTDIR</userinput></screen>
</sect2>
<sect2 arch="multilib" role="installation">
<!-- ~~~~~~~~~~~~~~~~~~~~ ABI x32 ~~~~~~~~~~~~~~~~~~~~ -->
<sect2 arch="ml_x32,ml_all" role="installation">
<title>Installation of Attr - x32-bit</title>
<para>Clean previous build:</para>

View File

@ -97,7 +97,9 @@ ln -sv bzip2 /bin/bzcat</userinput></screen>
</sect2>
<sect2 arch="multilib" role="installation">
<!-- ~~~~~~~~~~~~~~~~~~~~ ABI 32 ~~~~~~~~~~~~~~~~~~~~ -->
<sect2 arch="ml_32,ml_all" role="installation">
<title>Installation of Bzip2 - 32-bit</title>
<para>Clean previous build:</para>
@ -121,7 +123,9 @@ install -Dm644 libbz2.a /usr/lib32/libbz2.a</userinput></screen>
</sect2>
<sect2 arch="multilib" role="installation">
<!-- ~~~~~~~~~~~~~~~~~~~~ ABI x32 ~~~~~~~~~~~~~~~~~~~~ -->
<sect2 arch="ml_x32,ml_all" role="installation">
<title>Installation of Bzip2 - x32-bit</title>
<para>Clean previous build:</para>

View File

@ -22,7 +22,7 @@
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="glibc.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="adjusting.xml"/>
<!-- arch="multilib" only -->
<!-- arch="ml_32,ml_x32,ml_all" only -->
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="glibc-32.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="zlib.xml"/>

View File

@ -47,15 +47,14 @@ ln -sv /tools/lib/libstdc++.{a,so{,.6}} /usr/lib
install -vdm755 /usr/lib/pkgconfig
ln -sv bash /bin/sh</userinput></screen>
<screen arch="multilib"><userinput>ln -sv /tools/bin/{bash,cat,chmod,dd,echo,ln,mkdir,pwd,rm,stty,touch} /bin
<screen arch="ml_32,ml_x32,ml_all"><userinput>ln -sv /tools/bin/{bash,cat,chmod,dd,echo,ln,mkdir,pwd,rm,stty,touch} /bin
ln -sv /tools/bin/{env,install,perl,printf} /usr/bin
for lib in lib{,32,x32}; do
for lib in lib{</userinput><userinput arch="ml_32,ml_all">,32</userinput><userinput arch="ml_x32,ml_all">,x32</userinput><userinput>}; do
ln -sv /tools/$lib/libgcc_s.so{,.1} /usr/$lib
ln -sv /tools/$lib/libstdc++.{a,so{,.6}} /usr/$lib
done
ln -sv /usr/libx32 /
install -vdm755 /usr/lib{,32,x32}/pkgconfig
</userinput><userinput arch="ml_x32,ml_all">ln -sv /usr/libx32 /</userinput><userinput>
install -vdm755 /usr/lib{</userinput><userinput arch="ml_32,ml_all">,32</userinput><userinput arch="ml_x32,ml_all">,x32</userinput><userinput>}/pkgconfig
ln -sv bash /bin/sh</userinput></screen>

View File

@ -31,7 +31,7 @@ mkdir -v /var/{log,mail,spool}
ln -sv /run /var/run
ln -sv /run/lock /var/lock
mkdir -pv /var/{opt,cache,lib/{color,misc,locate},local}</userinput></screen>
<screen arch="multilib"><userinput>mkdir -pv /{bin,boot,etc/{opt,sysconfig,ld.so.conf.d},home,lib/firmware,mnt,opt}
<screen arch="ml_32,ml_x32,ml_all"><userinput>mkdir -pv /{bin,boot,etc/{opt,sysconfig,ld.so.conf.d},home,lib/firmware,mnt,opt}
mkdir -pv /{media/{floppy,cdrom},sbin,srv,var}
install -dv -m 0750 /root
install -dv -m 1777 /tmp /var/tmp
@ -44,8 +44,9 @@ mkdir -v /lib64
mkdir -v /var/{log,mail,spool}
ln -sv /run /var/run
ln -sv /run/lock /var/lock
mkdir -pv /var/{opt,cache,lib/{color,misc,locate},local}
mkdir -pv /usr/lib{,x}32</userinput></screen>
mkdir -pv /var/{opt,cache,lib/{color,misc,locate},local}</userinput>
<userinput arch="ml_32,ml_all">mkdir -pv /usr/lib32</userinput>
<userinput arch="ml_x32,ml_all">mkdir -pv /usr/libx32</userinput></screen>
<para>Directories are, by default, created with permission mode 755, but
this is not desirable for all directories. In the commands above, two

View File

@ -106,7 +106,7 @@ make -f &udev-lfs-version;/Makefile.lfs install</userinput></screen>
<!-- ~~~~~~~~~~~~~~~~~~~~ ABI 32 ~~~~~~~~~~~~~~~~~~~~ -->
<sect2 arch="multilib" role="installation">
<sect2 arch="ml_32,ml_all" role="installation">
<title>Installation of Eudev - 32-bit</title>
<para>Clean previous build:</para>
@ -143,7 +143,7 @@ rm -rf DESTDIR</userinput></screen>
<!-- ~~~~~~~~~~~~~~~~~~~~ ABI x32 ~~~~~~~~~~~~~~~~~~~~ -->
<sect2 arch="multilib" role="installation">
<sect2 arch="ml_x32,ml_all" role="installation">
<title>Installation of Eudev - x32-bit</title>
<para>Clean previous build:</para>

View File

@ -69,7 +69,9 @@
</sect2>
<sect2 arch="multilib" role="installation">
<!-- ~~~~~~~~~~~~~~~~~~~~ ABI 32 ~~~~~~~~~~~~~~~~~~~~ -->
<sect2 arch="ml_32,ml_all" role="installation">
<title>Installation of Expat - 32-bit</title>
<para>Clean previous build but keep precompiled doc because it
@ -97,7 +99,9 @@ rm -rf DESTDIR</userinput></screen>
</sect2>
<sect2 arch="multilib" role="installation">
<!-- ~~~~~~~~~~~~~~~~~~~~ ABI x32 ~~~~~~~~~~~~~~~~~~~~ -->
<sect2 arch="ml_x32,ml_all" role="installation">
<title>Installation of Zlib - x32-bit</title>
<para>Clean previous build:</para>

View File

@ -59,7 +59,9 @@
</sect2>
<sect2 arch="multilib" role="installation">
<!-- ~~~~~~~~~~~~~~~~~~~~ ABI 32 ~~~~~~~~~~~~~~~~~~~~ -->
<sect2 arch="ml_32,ml_all" role="installation">
<title>Installation of File - 32-bit</title>
<para>Clean previous build:</para>
@ -85,7 +87,9 @@ rm -rf DESTDIR</userinput></screen>
</sect2>
<sect2 arch="multilib" role="installation">
<!-- ~~~~~~~~~~~~~~~~~~~~ ABI x32 ~~~~~~~~~~~~~~~~~~~~ -->
<sect2 arch="ml_x32,ml_all" role="installation">
<title>Installation of File - x32-bit</title>
<para>Clean previous build:</para>

View File

@ -51,10 +51,10 @@
;;
esac</userinput></screen>
<para arch="multilib">Change the default directory name for 64-bit
<para arch="ml_32,ml_x32,ml_all">Change the default directory name for 64-bit
libraries to <quote>lib</quote>:</para>
<screen arch="multilib"><userinput remap="pre">sed -e '/m64=/s/lib64/lib/' \
<screen arch="ml_32,ml_x32,ml_all"><userinput remap="pre">sed -e '/m64=/s/lib64/lib/' \
-i.orig gcc/config/i386/t-linux64
cat &gt; gcc/config/i386/t-linux64 &lt;&lt;"EOF"
comma=,
@ -90,13 +90,29 @@ cd build</userinput></screen>
--disable-bootstrap \
--disable-libmpx \
--with-system-zlib</userinput></screen>
<screen arch="multilib"><userinput remap="configure">SED=sed \
<screen arch="ml_32"><userinput remap="configure">SED=sed \
../configure --prefix=/usr \
--enable-languages=c,c++ \
--enable-multilib \
--with-multilib-list=m32,m64,mx32 \
--with-multilib-list=m32,m64 \
--disable-bootstrap \
--disable-libmpx \
--with-system-zlib</userinput></screen>
<screen arch="ml_x32"><userinput remap="configure">SED=sed \
../configure --prefix=/usr \
--enable-languages=c,c++ \
--enable-multilib \
--with-multilib-list=mx32,m64 \
--disable-bootstrap \
--disable-libmpx \
--with-system-zlib</userinput></screen>
<screen arch="ml_all"><userinput remap="configure">SED=sed \
../configure --prefix=/usr \
--enable-languages=c,c++ \
--enable-multilib \
--with-multilib-list=m32,mx32,m64 \
--disable-bootstrap \
--disable-libmpx \
--with-system-zlib</userinput></screen>
<para>Note that for other languages, there are some prerequisites that

View File

@ -5,7 +5,7 @@
%general-entities;
]>
<sect1 arch="multilib" id="ch-system-glibc-32" role="wrap">
<sect1 arch="ml_32,ml_x32,ml_all" id="ch-system-glibc-32" role="wrap">
<?dbhtml filename="glibc-32.html"?>
<sect1info condition="script">
@ -40,7 +40,10 @@
</sect2>
-->
<sect2 role="installation">
<!-- ~~~~~~~~~~~~~~~~~~~~ ABI 32 ~~~~~~~~~~~~~~~~~~~~ -->
<sect2 arch="ml_32,ml_all" role="installation">
<title>Installation of Glibc - 32-bit</title>
<screen><userinput remap="pre">patch -Np1 -i ../&glibc-fhs-patch;</userinput></screen>
@ -97,7 +100,9 @@ rm -rf build</userinput></screen>
</sect2>
<sect2>
<!-- ~~~~~~~~~~~~~~~~~~~~ ABI x32 ~~~~~~~~~~~~~~~~~~~~ -->
<sect2 arch="ml_x32,ml_all" role="installation">
<title>Glibc - x32-bit</title>
<para>The Glibc documentation recommends building Glibc

View File

@ -121,7 +121,7 @@ make install-html</userinput></screen>
</sect2>
<!-- ~~~~~ m32 ~~~~~ -->
<sect2 arch="multilib" role="installation">
<sect2 arch="ml_32,ml_all" role="installation">
<title>Installation of GMP - 32-bit</title>
<para>Clean previous build:</para>
@ -172,8 +172,8 @@ rm -rf DESTDIR</userinput></screen>
</sect2>
<!-- ~~~~~ m32 ~~~~~ -->
<sect2 arch="multilib" role="installation">
<!-- ~~~~~ mx32 ~~~~~ -->
<sect2 arch="ml_x32,ml_all" role="installation">
<title>Installation of GMP - x32-bit</title>
<para>Clean previous build:</para>

View File

@ -97,7 +97,9 @@ ln -sfv kmod /bin/lsmod</userinput></screen>
</sect2>
<sect2 arch="multilib" role="installation">
<!-- ~~~~~~~~~~~~~~~~~~~~ ABI 32 ~~~~~~~~~~~~~~~~~~~~ -->
<sect2 arch="ml_32,ml_all" role="installation">
<title>Installation of Kmod - 32-bit</title>
<para>Clean previous build but keep man pages as they cannot be recreated
@ -129,7 +131,9 @@ rm -rf DESTDIR</userinput></screen>
</sect2>
<sect2 arch="multilib" role="installation">
<!-- ~~~~~~~~~~~~~~~~~~~~ ABI x32 ~~~~~~~~~~~~~~~~~~~~ -->
<sect2 arch="ml_x32,ml_all" role="installation">
<title>Installation of Kmod - x32-bit</title>
<para>Clean previous build:</para>

View File

@ -92,7 +92,7 @@ ln -sfv ../../lib/$(readlink /usr/lib/libcap.so) /usr/lib/libcap.so</userinput><
</sect2>
<sect2 arch="multilib" role="installation">
<sect2 arch="ml_32,ml_all" role="installation">
<title>Installation of Libcap - 32-bit</title>
<para>Clean previous build:</para>
@ -111,7 +111,7 @@ rm -rf DESTDIR</userinput></screen>
</sect2>
<sect2 arch="multilib" role="installation">
<sect2 arch="ml_x32,ml_all" role="installation">
<title>Installation of Libcap - x32-bit</title>
<para>Clean previous build:</para>

View File

@ -63,7 +63,7 @@ install -vm644 config/libelf.pc /usr/lib/pkgconfig</userinput></screen>
</sect2>
<sect2 arch="multilib" role="installation">
<sect2 arch="ml_32,ml_all" role="installation">
<title>Installation of Libelf - 32-bit</title>
<para>Clean previous build:</para>
@ -90,7 +90,7 @@ rm -rf DESTDIR</userinput></screen>
</sect2>
<sect2 arch="multilib" role="installation">
<sect2 arch="ml_x32,ml_all" role="installation">
<title>Installation of Libelf - x32-bit</title>
<para>Clean previous build:</para>

View File

@ -98,8 +98,9 @@ sed -e '/^includedir/ s/=.*$/=@includedir@/' \
</sect2>
<!-- ~~~~~ m32 ~~~~~ -->
<sect2 arch="multilib" role="installation">
<!-- ~~~~~~~~~~~~~~~~~~~~ ABI 32 ~~~~~~~~~~~~~~~~~~~~ -->
<sect2 arch="ml_32,ml_all" role="installation">
<title>Installation of Libffi - 32-bit</title>
<para>Clean previous build:</para>
@ -132,8 +133,9 @@ rm -rf DESTDIR</userinput></screen>
</sect2>
<!-- ~~~~~ mx32 ~~~~~ -->
<sect2 arch="multilib" role="installation">
<!-- ~~~~~~~~~~~~~~~~~~~~ ABI x32 ~~~~~~~~~~~~~~~~~~~~ -->
<sect2 arch="ml_x32,ml_all" role="installation">
<title>Installation of Libffi - x32-bit</title>
<para>Clean previous build:</para>

View File

@ -70,8 +70,9 @@
</sect2>
<!-- ~~~~~~~~~~~~~~~~~~~~ ABI 32 ~~~~~~~~~~~~~~~~~~~~ -->
<sect2 arch="multilib" role="installation">
<sect2 arch="ml_32,ml_all" role="installation">
<title>Installation of Libtool - 32-bit</title>
<para>Clean previous build:</para>
@ -97,7 +98,9 @@ rm -rf DESTDIR</userinput></screen>
</sect2>
<sect2 arch="multilib" role="installation">
<!-- ~~~~~~~~~~~~~~~~~~~~ ABI x32 ~~~~~~~~~~~~~~~~~~~~ -->
<sect2 arch="ml_x32,ml_all" role="installation">
<title>Installation of Libtool - x32-bit</title>
<para>Clean previous build:</para>

View File

@ -54,7 +54,7 @@
--without-normal \
--enable-pc-files \
--enable-widec</userinput></screen>
<screen arch="multilib"><userinput remap="configure">./configure --prefix=/usr \
<screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">./configure --prefix=/usr \
--mandir=/usr/share/man \
--with-shared \
--without-debug \
@ -96,7 +96,7 @@
</listitem>
</varlistentry>
<varlistentry arch="multilib">
<varlistentry arch="ml_32,ml_x32,ml_all">
<term><parameter>--with-pkg-config-libdir=/usr/lib/pkgconfig</parameter></term>
<listitem>
<para>This switch forces .pc to be installed in /usr/lib/pkgconfig. If
@ -178,7 +178,9 @@ cp -av lib/lib*.so.5* /usr/lib</userinput></screen>
</sect2>
<sect2 arch="multilib" role="installation">
<!-- ~~~~~~~~~~~~~~~~~~~~ ABI 32 ~~~~~~~~~~~~~~~~~~~~ -->
<sect2 arch="ml_32,ml_all" role="installation">
<title>Installation of Ncurses - 32-bit</title>
<para>Clean previous build:</para>
@ -233,7 +235,9 @@ cp -av lib/lib*.so.5* /usr/lib32</userinput></screen>
</sect2>
<sect2 arch="multilib" role="installation">
<!-- ~~~~~~~~~~~~~~~~~~~~ ABI x32 ~~~~~~~~~~~~~~~~~~~~ -->
<sect2 arch="ml_x32,ml_all" role="installation">
<title>Installation of Ncurses - x32-bit</title>
<para>Clean previous build:</para>

View File

@ -74,8 +74,9 @@ cp -vfr doc/* /usr/share/doc/openssl-&openssl-version;</userinput></screen>
</sect2>
<!-- ~~~~~ 32-bit ~~~~~ -->
<sect2 arch="multilib" role="installation">
<!-- ~~~~~~~~~~~~~~~~~~~~ ABI 32 ~~~~~~~~~~~~~~~~~~~~ -->
<sect2 arch="ml_32,ml_all" role="installation">
<title>Installation of OpenSSL - 32-bit</title>
<para>Clean previous build:</para>
@ -106,8 +107,9 @@ rm -rf DESTDIR</userinput></screen>
</sect2>
<!-- ~~~~~ x32-bit ~~~~~ -->
<sect2 arch="multilib" role="installation">
<!-- ~~~~~~~~~~~~~~~~~~~~ ABI x32 ~~~~~~~~~~~~~~~~~~~~ -->
<sect2 arch="ml_x32,ml_all" role="installation">
<title>Installation of OpenSSL - x32-bit</title>
<para>Clean previous build:</para>

View File

@ -92,7 +92,9 @@ ln -sfv ../../lib/$(readlink /usr/lib/libhistory.so ) /usr/lib/libhistory.so</us
</sect2>
<sect2 arch="multilib" role="installation">
<!-- ~~~~~~~~~~~~~~~~~~~~ ABI 32 ~~~~~~~~~~~~~~~~~~~~ -->
<sect2 arch="ml_32,ml_all" role="installation">
<title>Installation of Readline - 32-bit</title>
<para>Clean previous build:</para>
@ -119,7 +121,9 @@ rm -rf DESTDIR</userinput></screen>
</sect2>
<sect2 arch="multilib" role="installation">
<!-- ~~~~~~~~~~~~~~~~~~~~ ABI x32 ~~~~~~~~~~~~~~~~~~~~ -->
<sect2 arch="ml_x32,ml_all" role="installation">
<title>Installation of Readline - x32-bit</title>
<para>Clean previous build:</para>

View File

@ -63,8 +63,9 @@ rm -f /usr/lib/libz.a</userinput></screen>
at this point. To remove them, run:</para>
<screen arch="default"><userinput>find /usr/lib /usr/libexec -name \*.la -delete</userinput></screen>
<screen arch="multilib"><userinput>find /usr/lib{,{,x}32} /usr/libexec -name \*.la -delete</userinput></screen>
<screen arch="ml_32"><userinput>find /usr/lib{,32} /usr/libexec -name \*.la -delete</userinput></screen>
<screen arch="ml_x32"><userinput>find /usr/lib{,x32} /usr/libexec -name \*.la -delete</userinput></screen>
<screen arch="ml_all"><userinput>find /usr/lib{,{,x}32} /usr/libexec -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

View File

@ -56,7 +56,7 @@ done
unset LIB save_lib save_usrlib</userinput></screen>
<screen arch="multilib"><userinput>save_lib="ld-&glibc-version;.so libc-&glibc-version;.so libpthread-&glibc-version;.so libthread_db-&libthread_db-version;.so"
<screen arch="ml_32,ml_x32,ml_all"><userinput>save_lib="ld-&glibc-version;.so libc-&glibc-version;.so libpthread-&glibc-version;.so libthread_db-&libthread_db-version;.so"
cd /lib
@ -113,7 +113,7 @@ unset LIB save_lib save_usrlib</userinput></screen>
/tools/bin/find /{bin,sbin} /usr/{bin,sbin,libexec} -type f \
-exec /tools/bin/strip --strip-all {} ';'</userinput></screen>
<screen arch="multilib"><userinput>/tools/bin/find /usr/lib{,{,x}32} -type f -name \*.a \
<screen arch="ml_32,ml_x32,ml_all"><userinput>/tools/bin/find /usr/lib{,{,x}32} -type f -name \*.a \
-exec /tools/bin/strip --strip-debug {} ';'
/tools/bin/find /lib /usr/lib{,{,x}32} -type f \( -name \*.so* -a ! -name \*dbg \) \

View File

@ -212,7 +212,7 @@ chmod 755 /lib/systemd/systemd-user-sessions</userinput></screen>
<!-- ====== 32-bit ===== -->
<sect2 arch="multilib" role="installation">
<sect2 arch="ml_32,ml_all" role="installation">
<title>Installation of systemd - 32-bit</title>
<para>If still in the build directory, step out:</para>
@ -280,7 +280,7 @@ rm -f /usr/bin/xsltproc</userinput></screen>
<!-- ====== x32-bit ===== -->
<sect2 arch="multilib" role="installation">
<sect2 arch="ml_x32,ml_all" role="installation">
<title>Installation of systemd - x32-bit</title>
<para>If still in the build directory, step out:</para>

View File

@ -52,7 +52,6 @@
</sect2>
<!-- ~~~~~~~~~~~~~~~~~~~~~ default ABI ~~~~~~~~~~~~~~~~~~~~~ -->
<sect2 role="installation">
<title>Installation of Util-linux</title>
<!--
@ -122,8 +121,9 @@ su nobody -s /bin/bash -c "PATH=$PATH make -k check"</userinput></screen>
</sect2>
<!-- ~~~~~~~~~~~~~~~~~~~~~ ABI 32-bit ~~~~~~~~~~~~~~~~~~~~~ -->
<sect2 arch="multilib" role="installation">
<!-- ~~~~~~~~~~~~~~~~~~~~ ABI 32 ~~~~~~~~~~~~~~~~~~~~ -->
<sect2 arch="ml_32,ml_all" role="installation">
<title>Installation of Util-linux - 32-bit</title>
<para>Clean previous build:</para>
@ -178,8 +178,9 @@ rm -rf DESTDIR</userinput></screen>
</sect2>
<!-- ~~~~~~~~~~~~~~~~~~~~~ ABI x32-bit ~~~~~~~~~~~~~~~~~~~~~ -->
<sect2 arch="multilib" role="installation">
<!-- ~~~~~~~~~~~~~~~~~~~~ ABI x32 ~~~~~~~~~~~~~~~~~~~~ -->
<sect2 arch="ml_x32,ml_all" role="installation">
<title>Installation of Util-linux - x32-bit</title>
<para>Clean previous build:</para>

View File

@ -68,7 +68,9 @@ ln -svf ../../lib/$(readlink /usr/lib/liblzma.so) /usr/lib/liblzma.so</userinput
</sect2>
<sect2 arch="multilib" role="installation">
<!-- ~~~~~~~~~~~~~~~~~~~~ ABI 32 ~~~~~~~~~~~~~~~~~~~~ -->
<sect2 arch="ml_32,ml_all" role="installation">
<title>Installation of Xz - 32-bit</title>
<para>Clean previous build:</para>
@ -95,7 +97,9 @@ rm -rf DESTDIR</userinput></screen>
</sect2>
<sect2 arch="multilib" role="installation">
<!-- ~~~~~~~~~~~~~~~~~~~~ ABI x32 ~~~~~~~~~~~~~~~~~~~~ -->
<sect2 arch="ml_x32,ml_all" role="installation">
<title>Installation of Xz - x32-bit</title>
<para>Clean previous build:</para>

View File

@ -67,7 +67,9 @@ ln -sfv ../../lib/$(readlink /usr/lib/libz.so) /usr/lib/libz.so</userinput></scr
</sect2>
<sect2 arch="multilib" role="installation">
<!-- ~~~~~~~~~~~~~~~~~~~~ ABI 32 ~~~~~~~~~~~~~~~~~~~~ -->
<sect2 arch="ml_32,ml_all" role="installation">
<title>Installation of Zlib - 32-bit</title>
<para>Clean previous build:</para>
@ -93,7 +95,9 @@ rm -rf DESTDIR</userinput></screen>
</sect2>
<sect2 arch="multilib" role="installation">
<!-- ~~~~~~~~~~~~~~~~~~~~ ABI x32 ~~~~~~~~~~~~~~~~~~~~ -->
<sect2 arch="ml_x32,ml_all" role="installation">
<title>Installation of Zlib - x32-bit</title>
<screen><userinput remap="pre">make distclean</userinput></screen>

View File

@ -165,7 +165,7 @@ menuentry "GNU/Linux, Linux &linux-version;-lfs-&versiond;" {
}</literal>
EOF</userinput></screen>
<screen arch="multilib" revision="sysv"><userinput>cat &gt; /boot/grub/grub.cfg &lt;&lt; "EOF"
<screen arch="ml_32,ml_x32,ml_all" revision="sysv"><userinput>cat &gt; /boot/grub/grub.cfg &lt;&lt; "EOF"
<literal># Begin /boot/grub/grub.cfg
set default=0
set timeout=5
@ -178,7 +178,7 @@ menuentry "GNU/Linux, Linux &linux-version;-lfs-&version;-multilib" {
}</literal>
EOF</userinput></screen>
<screen arch="multilib" revision="systemd"><userinput>cat &gt; /boot/grub/grub.cfg &lt;&lt; "EOF"
<screen arch="ml_32,ml_x32,ml_all" revision="systemd"><userinput>cat &gt; /boot/grub/grub.cfg &lt;&lt; "EOF"
<literal># Begin /boot/grub/grub.cfg
set default=0
set timeout=5

View File

@ -237,11 +237,11 @@ Kernel hacking ---&gt;
<screen arch="default" revision="sysv"><userinput remap="install">cp -iv arch/x86/boot/bzImage /boot/vmlinuz-&linux-version;-lfs-&version;</userinput></screen>
<screen arch="multilib" revision="sysv"><userinput remap="install">cp -iv arch/x86/boot/bzImage /boot/vmlinuz-&linux-version;-lfs-&version;-multilib</userinput></screen>
<screen arch="ml_32,ml_x32,ml_all" revision="sysv"><userinput remap="install">cp -iv arch/x86/boot/bzImage /boot/vmlinuz-&linux-version;-lfs-&version;-multilib</userinput></screen>
<screen arch="default" revision="systemd"><userinput remap="install">cp -iv arch/x86/boot/bzImage /boot/vmlinuz-&linux-version;-lfs-&versiond;</userinput></screen>
<screen arch="multilib" revision="systemd"><userinput remap="install">cp -iv arch/x86/boot/bzImage /boot/vmlinuz-&linux-version;-lfs-&versiond;-multilib</userinput></screen>
<screen arch="ml_32,ml_x32,ml_all" revision="systemd"><userinput remap="install">cp -iv arch/x86/boot/bzImage /boot/vmlinuz-&linux-version;-lfs-&versiond;-multilib</userinput></screen>
<para><filename>System.map</filename> is a symbol file for the kernel.
@ -353,8 +353,8 @@ EOF</userinput></screen>
<seg>config-&linux-version;,
<phrase arch="default" revision="sysv">vmlinuz-&linux-version;-lfs-&version;,</phrase>
<phrase arch="default" revision="systemd">vmlinuz-&linux-version;-lfs-&versiond;,</phrase>
<phrase arch="multilib" revision="sysv">vmlinuz-&linux-version;-lfs-&version;-multilib,</phrase>
<phrase arch="multilib" revision="systemd">vmlinuz-&linux-version;-lfs-&versiond;-multilib,</phrase>
<phrase arch="ml_32,ml_x32,ml_all" revision="sysv">vmlinuz-&linux-version;-lfs-&version;-multilib,</phrase>
<phrase arch="ml_32,ml_x32,ml_all" revision="systemd">vmlinuz-&linux-version;-lfs-&versiond;-multilib,</phrase>
and System.map-&linux-version;</seg>
<seg>/lib/modules, /usr/share/doc/linux-&linux-version;</seg>
</seglistitem>

View File

@ -36,7 +36,7 @@ PRETTY_NAME="Linux From Scratch &versiond;"
VERSION_CODENAME="&lt;your name here&gt;"
EOF</userinput></screen>
<screen arch="multilib" revision="systemd"><userinput>cat &gt; /etc/os-release &lt;&lt; "EOF"
<screen arch="ml_32,ml_x32,ml_all" revision="systemd"><userinput>cat &gt; /etc/os-release &lt;&lt; "EOF"
NAME="Linux From Scratch"
VERSION="&versiond;"
ID=lfs
@ -51,7 +51,7 @@ EOF</userinput></screen>
running:</para>
<screen arch="default" revision="sysv"><userinput>echo &version; &gt; /etc/lfs-release</userinput></screen>
<screen arch="multilib" revision="sysv"><userinput>echo &version;-multilib &gt; /etc/lfs-release</userinput></screen>
<screen arch="ml_32,ml_x32,ml_all" revision="sysv"><userinput>echo &version;-multilib &gt; /etc/lfs-release</userinput></screen>
<para revision="systemd">Creating the file
<filename>/etc/lfs-release</filename> is recommended for compatibility with
@ -79,14 +79,14 @@ DISTRIB_CODENAME="&lt;your name here&gt;"
DISTRIB_DESCRIPTION="Linux From Scratch"
EOF</userinput></screen>
<screen arch="multilib" revision="sysv"><userinput>cat &gt; /etc/lsb-release &lt;&lt; "EOF"
<screen arch="ml_32,ml_x32,ml_all" revision="sysv"><userinput>cat &gt; /etc/lsb-release &lt;&lt; "EOF"
DISTRIB_ID="Linux From Scratch"
DISTRIB_RELEASE="&version;-multilib"
DISTRIB_CODENAME="&lt;your name here&gt;"
DISTRIB_DESCRIPTION="Linux From Scratch"
EOF</userinput></screen>
<screen arch="multilib" revision="systemd"><userinput>cat &gt; /etc/lsb-release &lt;&lt; "EOF"
<screen arch="ml_32,ml_x32,ml_all" revision="systemd"><userinput>cat &gt; /etc/lsb-release &lt;&lt; "EOF"
DISTRIB_ID="Linux From Scratch"
DISTRIB_RELEASE="&versiond;-multilib"
DISTRIB_CODENAME="&lt;your name here&gt;"

View File

@ -9,8 +9,8 @@
<title>Linux From Scratch</title>
<subtitle arch="default" revision='sysv'>Version &version;</subtitle>
<subtitle arch="default" revision='systemd'>Version &versiond;</subtitle>
<subtitle arch="multilib" revision='sysv'>Version &version;-multilib</subtitle>
<subtitle arch="multilib" revision='systemd'>Version &versiond;-multilib</subtitle>
<subtitle arch="ml_32,ml_x32,ml_all" revision='sysv'>Version &version;-multilib</subtitle>
<subtitle arch="ml_32,ml_x32,ml_all" revision='systemd'>Version &versiond;-multilib</subtitle>
<authorgroup>
<author>
@ -32,7 +32,7 @@
<surname>Lucas</surname>
</author>
<author arch="multilib">
<author arch="ml_32,ml_x32,ml_all">
<firstname>Editor: Thomas</firstname>
<surname>Trepl</surname>
</author>

View File

@ -5,12 +5,12 @@
%general-entities;
]>
<sect1 arch="multilib" id="pre-multilib">
<sect1 arch="ml_32,ml_x32,ml_all" id="pre-multilib">
<?dbhtml filename="multilib.html"?>
<title>About the Multilib Edition</title>
<sect2><title>What is 'multilib'</title>
<sect2><title>What is Multilib</title>
<para>Today, most systems in the x86 world have a word size of 64
bit. The word size is a number of bits which can be used at once
@ -28,7 +28,7 @@
</sect2>
<sect2><title>Why doing multilib?</title>
<sect2><title>Why doing Multilib?</title>
<para>From a educational point of view, LFS in its 'native' form is
probably the best way to see how a Linux system is built from source.
@ -54,7 +54,7 @@
</para>
<para>This multilib edition of LFS goes a small step beyond and a
<para>The multilib edition of LFS goes a small step beyond and a
small step back to what has been said in the previous section
when talking about target architectures. On one hand, the multilib
edition is focused and <emphasis>limited</emphasis> to x86_64
@ -71,16 +71,16 @@
</sect2>
<sect2><title>Building a multilib system</title>
<sect2><title>Building a Multilib System</title>
<para>Building a multilib system is not that much different from
building a system by using the 'native' LFS book. Beside some
tweaks here and there the most prominent difference is that
multilib requires compiling many applications three times:
multilib requires compiling some applications up to three times:
one for the primary 64-bit architecture,
one for the minor 32-bit architecture (m32),
and once again for the 32-bit architecture with 64-bit memory
extensions (mx32).</para>
one for the 32-bit architecture (m32),
and once again for the 32-bit architecture with is 32-bit memory
access and 64 bit instruction set (mx32).</para>
<para>Continue only if you and your system meets the following
requirements: