Remove entities for multilib pathes

Add usage of libc_cv_rtlddir
This commit is contained in:
Thomas Trepl (Moody) 2021-05-14 12:47:43 +02:00
parent 51c01bff45
commit 0ebda11158
33 changed files with 257 additions and 200 deletions

View File

@ -84,8 +84,8 @@ useradd -s /bin/bash -g lfs -m -k /dev/null lfs</userinput></screen>
case $(uname -m) in
x86_64) chown -v lfs $LFS/lib64 ;;
esac</userinput></screen>
<screen arch="ml_32" ><userinput>chown -v lfs $LFS&lib-m32;</userinput></screen>
<screen arch="ml_x32" ><userinput>chown -v lfs $LFS&lib-mx32;</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>
<para>If a separate working directory was created as suggested, give

View File

@ -29,13 +29,13 @@ done
case $(uname -m) in
x86_64) mkdir -pv $LFS/lib64 ;;
esac</userinput></screen>
<screen arch="ml_32"><userinput>mkdir -pv $LFS&usr-lib-m32;
ln -sv usr&lib-m32; $LFS&lib-m32;</userinput></screen>
<screen arch="ml_x32"><userinput>mkdir -pv $LFS&usr-lib-mx32;
ln -sv usr&lib-mx32; $LFS&lib-mx32;</userinput></screen>
<screen arch="ml_32"><userinput>mkdir -pv $LFS/usr/lib32
ln -sv usr/lib32 $LFS/lib32</userinput></screen>
<screen arch="ml_x32"><userinput>mkdir -pv $LFS/usr/libx32
ln -sv usr/libx32 $LFS/libx32</userinput></screen>
<screen arch="ml_all"><userinput>mkdir -pv $LFS/usr/lib{,x}32
ln -sv usr&lib-m32; $LFS&lib-m32;
ln -sv usr&lib-mx32; $LFS&lib-mx32;</userinput></screen>
ln -sv usr/lib32 $LFS/lib32
ln -sv usr/libx32 $LFS/libx32</userinput></screen>
<note>
<para>

View File

@ -78,7 +78,7 @@ esac</userinput></screen>
libraries:</para>
<screen arch="ml_32,ml_x32,ml_all"><userinput remap="pre">sed -e '/m64=/s/lib64/lib/' \
-e '/m32=/s/m32=.*/m32=..\&lib-m32;$(call if_multiarch,:i386-linux-gnu)/' \
-e '/m32=/s/m32=.*/m32=..\/lib32$(call if_multiarch,:i386-linux-gnu)/' \
-i.orig gcc/config/i386/t-linux64
</userinput></screen>

View File

@ -83,7 +83,8 @@ cd build</userinput></screen>
--build=$(../scripts/config.guess) \
--enable-kernel=&min-kernel; \
--with-headers=$LFS/usr/include \
libc_cv_slibdir=/usr/lib</userinput></screen>
libc_cv_slibdir=/usr/lib \
libc_cv_rtlddir=/usr/lib</userinput></screen>
<screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure \
--prefix=/usr \
--host=$LFS_TGT \
@ -91,7 +92,8 @@ cd build</userinput></screen>
--enable-kernel=&min-kernel; \
--with-headers=$LFS/usr/include \
--enable-multi-arch \
libc_cv_slibdir=/usr/lib</userinput></screen>
libc_cv_slibdir=/usr/lib \
libc_cv_rtlddir=/usr/lib</userinput></screen>
<variablelist>
<title>The meaning of the configure options:</title>
@ -132,6 +134,14 @@ cd build</userinput></screen>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>libc_cv_rtlddir=/usr/lib</parameter></term>
<listitem>
<para>Fix hardcoded path to the executable loader in the
<command>ldd</command> script.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>libc_cv_include_x86_isa_level=no</option></term>
<listitem>
@ -196,6 +206,36 @@ cd build</userinput></screen>
</variablelist>
<!--
The /usr which gets removed from the RTLDLIST by the sed
below is set by the libc_cv_rtlddir=/usr/lib above. When
changing the libc_cv_rtlddir to /lib, the content of the
ldd script does not need to be patched, but some other
symlinks created by glibc itself will be not that correct
and needs to be fixed by other symlinks.
First setting /usr and than removing /usr seems strange,
but it looks like that libc_cv_rtlddir has more effect than
only the pathes in ldd (it has influence on which symlinks
to the loader are created where) and makes the handling
in a multilib environment much easier.
To me, it feels better to go the way with adding/removing
/usr than to introduce a symlink hell.
Another option to get ldd working properly is to set a
symlink as "ln -svf lib /usr/lib64" but it has been reported
that we used that already years ago but dropped it since
libtool will complain sometimes with "library has been moved"
warnings.
Don't know if this is still the case - if not, this one
symlink seems to be the cleanest way and the sed on ldd will
be obsolete.
-->
<para>Fix hardcoded path to the executable loader in
<command>ldd</command> script:</para>
<screen><userinput remap="install">sed '/RTLDLIST=/s@/usr@@g' -i $LFS/usr/bin/ldd</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
@ -245,7 +285,7 @@ readelf -l a.out | grep '/ld-linux'</userinput></screen>
<title>Building Glibc - 32bit</title>
<para>Now recompile for m32. The extracted source can be
reused but needs to cleaned before installing the m32
reused but needs to be cleaned before installing the m32
version of Glibc.</para>
<para>Clear the build directory and remove artefacts from
@ -265,9 +305,10 @@ CXX="$LFS_TGT-g++ -m32" \
--enable-kernel=&min-kernel; \
--with-headers=$LFS/usr/include \
--enable-multi-arch \
--libdir=&usr-lib-m32; \
--libexecdir=&usr-lib-m32; \
libc_cv_slibdir=&usr-lib-m32;</userinput></screen>
--libdir=/usr/lib32 \
--libexecdir=/usr/lib32 \
libc_cv_slibdir=/usr/lib32 \
libc_cv_rtlddir=/usr/lib32</userinput></screen>
<para>Compile the package:</para>
@ -276,10 +317,11 @@ CXX="$LFS_TGT-g++ -m32" \
<para>Install the package:</para>
<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
cp -a DESTDIR&usr-lib-m32; $LFS/usr/
cp -a DESTDIR/usr/lib32 $LFS/usr/
install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-32.h \
$LFS/usr/include/gnu/
ln -svf ..&lib-m32;/ld-linux.so.2 $LFS/lib/ld-linux.so.2</userinput></screen>
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
@ -316,7 +358,7 @@ readelf -l a.out | grep '/ld-linux'</userinput></screen>
<title>Building Glibc - x32bit</title>
<para>Now recompile for mx32. The extracted source can be
reused but needs to cleaned before installing the mx32
reused but needs to be cleaned before installing the mx32
version of Glibc.</para>
<para>Clear the build directory and remove artefacts from
@ -336,9 +378,10 @@ CXX="$LFS_TGT-g++ -mx32" \
--enable-kernel=&min-kernel; \
--with-headers=$LFS/usr/include \
--enable-multi-arch \
--libdir=&usr-lib-mx32; \
--libexecdir=&usr-lib-mx32; \
libc_cv_slibdir=&usr-lib-mx32;</userinput></screen>
--libdir=/usr/libx32 \
--libexecdir=/usr/libx32 \
libc_cv_slibdir=/usr/libx32 \
libc_cv_rtlddir=/usr/libx32</userinput></screen>
<para>Compile the package:</para>
@ -347,10 +390,10 @@ CXX="$LFS_TGT-g++ -mx32" \
<para>Install the package:</para>
<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
cp -a DESTDIR&usr-lib-mx32; $LFS/usr/
cp -a DESTDIR/usr/libx32 $LFS/usr/
install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-x32.h \
$LFS/usr/include/gnu/
ln -svf ..&lib-mx32;/ld-linux-x32.so.2 $LFS/lib/ld-linux-x32.so.2</userinput></screen>
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

View File

@ -70,7 +70,7 @@ esac</userinput></screen>
libraries:</para>
<screen arch="ml_32,ml_x32,ml_all"><userinput remap="pre">sed -e '/m64=/s/lib64/lib/' \
-e '/m32=/s/m32=.*/m32=..\&lib-m32;$(call if_multiarch,:i386-linux-gnu)/' \
-e '/m32=/s/m32=.*/m32=..\/lib32$(call if_multiarch,:i386-linux-gnu)/' \
-i.orig gcc/config/i386/t-linux64</userinput></screen>
<!--
<screen><userinput remap="pre">patch -Np1 -i ../&gcc-cross-patch;</userinput></screen>

View File

@ -167,7 +167,7 @@ CXX="$LFS_TGT-g++ -m32" \
./configure --prefix=/usr \
--host=$LFS_TGT32 \
--build=$(./config.guess) \
--libdir=&usr-lib-m32; \
--libdir=/usr/lib32 \
--mandir=/usr/share/man \
--with-shared \
--without-debug \
@ -175,7 +175,7 @@ CXX="$LFS_TGT-g++ -m32" \
--without-normal \
--enable-pc-files \
--enable-widec \
--with-pkg-config-libdir=&usr-lib-m32;/pkgconfig</userinput></screen>
--with-pkg-config-libdir=/usr/lib32/pkgconfig</userinput></screen>
<para>Compile the package:</para>
@ -184,8 +184,8 @@ CXX="$LFS_TGT-g++ -m32" \
<para>Install the package:</para>
<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR TIC_PATH=$(pwd)/build/progs/tic install
ln -s libncursesw.so DESTDIR&usr-lib-m32;/libcursesw.so
cp -Rv DESTDIR&usr-lib-m32;/* $LFS&usr-lib-m32;
ln -s libncursesw.so DESTDIR/usr/lib32/libcursesw.so
cp -Rv DESTDIR/usr/lib32/* $LFS/usr/lib32
rm -rf DESTDIR</userinput></screen>
</sect2><!-- m32 -->
@ -207,7 +207,7 @@ CXX="$LFS_TGT-g++ -mx32" \
./configure --prefix=/usr \
--host=$LFS_TGTX32 \
--build=$(./config.guess) \
--libdir=&usr-lib-mx32; \
--libdir=/usr/libx32 \
--mandir=/usr/share/man \
--with-shared \
--without-debug \
@ -215,7 +215,7 @@ CXX="$LFS_TGT-g++ -mx32" \
--without-normal \
--enable-pc-files \
--enable-widec \
--with-pkg-config-libdir=&usr-lib-mx32;/pkgconfig</userinput></screen>
--with-pkg-config-libdir=/usr/libx32/pkgconfig</userinput></screen>
<para>Compile the package:</para>
@ -224,8 +224,8 @@ CXX="$LFS_TGT-g++ -mx32" \
<para>Install the package:</para>
<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR TIC_PATH=$(pwd)/build/progs/tic install
ln -s libncursesw.so DESTDIR&usr-lib-mx32;/libcursesw.so
cp -Rv DESTDIR&usr-lib-mx32;/* $LFS&usr-lib-mx32;
ln -s libncursesw.so DESTDIR/usr/libx32/libcursesw.so
cp -Rv DESTDIR/usr/libx32/* $LFS/usr/libx32
rm -rf DESTDIR</userinput></screen>
</sect2><!-- mx32 -->

View File

@ -40,7 +40,7 @@ esac</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&lib-m32;</userinput>
<userinput arch="ml_x32,ml_all">chown -R root:root $LFS&lib-mx32;</userinput></screen>
<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>

View File

@ -151,7 +151,7 @@
--disable-pylibmount \
--disable-static \
--without-python \
--libdir=&usr-lib-m32; \
--libdir=/usr/lib32 \
--host=i686-pc-linux-gnu</userinput></screen>
<para>Compile the package:</para>
@ -161,7 +161,7 @@
<para>Install the package:</para>
<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32;
cp -Rv DESTDIR/usr/lib32/* /usr/lib32
rm -rf DESTDIR</userinput></screen>
</sect2><!-- m32 -->
@ -191,7 +191,7 @@ rm -rf DESTDIR</userinput></screen>
--disable-pylibmount \
--disable-static \
--without-python \
--libdir=&usr-lib-mx32; \
--libdir=/usr/libx32 \
--host=x86_64-pc-linux-gnux32</userinput></screen>
<para>Compile the package:</para>
@ -201,7 +201,7 @@ rm -rf DESTDIR</userinput></screen>
<para>Install the package:</para>
<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;
cp -Rv DESTDIR/usr/libx32/* /usr/libx32
rm -rf DESTDIR</userinput></screen>
</sect2><!-- mx32 -->

View File

@ -80,8 +80,8 @@
<screen><userinput remap="configure">CC="gcc -m32" ./configure \
--prefix=/usr \
--disable-static \
--libdir=&usr-lib-m32; \
--libexecdir=&usr-lib-m32; \
--libdir=/usr/lib32 \
--libexecdir=/usr/lib32 \
--host=i686-pc-linux-gnu</userinput></screen>
<para>Compile the package:</para>
@ -91,7 +91,7 @@
<para>Install the package:</para>
<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32;
cp -Rv DESTDIR/usr/lib32/* /usr/lib32
rm -rf DESTDIR</userinput></screen>
</sect2><!-- m32 -->
@ -112,8 +112,8 @@ rm -rf DESTDIR</userinput></screen>
<screen><userinput remap="configure">CC="gcc -mx32" ./configure \
--prefix=/usr \
--disable-static \
--libdir=&usr-lib-mx32; \
--libexecdir=&usr-lib-mx32; \
--libdir=/usr/libx32 \
--libexecdir=/usr/libx32 \
--host=x86_64-pc-linux-gnux32</userinput></screen>
<para>Compile the package:</para>
@ -123,7 +123,7 @@ rm -rf DESTDIR</userinput></screen>
<para>Install the package:</para>
<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;
cp -Rv DESTDIR/usr/libx32/* /usr/libx32
rm -rf DESTDIR</userinput></screen>
</sect2><!-- mx32 -->

View File

@ -80,7 +80,7 @@
<screen><userinput remap="configure">CC="gcc -m32" ./configure \
--prefix=/usr \
--disable-static \
--libdir=&usr-lib-m32; \
--libdir=/usr/lib32 \
--host=i686-pc-linux-gnu</userinput></screen>
<para>Compile the package:</para>
@ -90,7 +90,7 @@
<para>Install the package:</para>
<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32;
cp -Rv DESTDIR/usr/lib32/* /usr/lib32
rm -rf DESTDIR</userinput></screen>
</sect2><!-- m32 -->
@ -111,7 +111,7 @@ rm -rf DESTDIR</userinput></screen>
<screen><userinput remap="configure">CC="gcc -mx32" ./configure \
--prefix=/usr \
--disable-static \
--libdir=&usr-lib-mx32; \
--libdir=/usr/libx32 \
--host=x86_64-pc-linux-gnux32</userinput></screen>
<para>Compile the package:</para>
@ -121,7 +121,7 @@ rm -rf DESTDIR</userinput></screen>
<para>Install the package:</para>
<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;
cp -Rv DESTDIR/usr/libx32/* /usr/libx32
rm -rf DESTDIR</userinput></screen>
</sect2><!-- mx32 -->

View File

@ -118,11 +118,11 @@ make libbz2.a</userinput></screen>
<para>Install the package:</para>
<screen><userinput remap="install">install -Dm755 libbz2.so.1.0.8 &usr-lib-m32;/libbz2.so.1.0.8
ln -sf libbz2.so.1.0.8 &usr-lib-m32;/libbz2.so
ln -sf libbz2.so.1.0.8 &usr-lib-m32;/libbz2.so.1
ln -sf libbz2.so.1.0.8 &usr-lib-m32;/libbz2.so.1.0
install -Dm644 libbz2.a &usr-lib-m32;/libbz2.a</userinput></screen>
<screen><userinput remap="install">install -Dm755 libbz2.so.1.0.8 /usr/lib32/libbz2.so.1.0.8
ln -sf libbz2.so.1.0.8 /usr/lib32/libbz2.so
ln -sf libbz2.so.1.0.8 /usr/lib32/libbz2.so.1
ln -sf libbz2.so.1.0.8 /usr/lib32/libbz2.so.1.0
install -Dm644 libbz2.a /usr/lib32/libbz2.a</userinput></screen>
</sect2><!-- m32 -->
@ -145,11 +145,11 @@ make libbz2.a</userinput></screen>
<para>Install the package:</para>
<screen><userinput remap="install">install -Dm755 libbz2.so.1.0.8 &usr-lib-mx32;/libbz2.so.1.0.8
ln -sf libbz2.so.1.0.8 &usr-lib-mx32;/libbz2.so
ln -sf libbz2.so.1.0.8 &usr-lib-mx32;/libbz2.so.1
ln -sf libbz2.so.1.0.8 &usr-lib-mx32;/libbz2.so.1.0
install -Dm644 libbz2.a &usr-lib-mx32;/libbz2.a</userinput></screen>
<screen><userinput remap="install">install -Dm755 libbz2.so.1.0.8 /usr/libx32/libbz2.so.1.0.8
ln -sf libbz2.so.1.0.8 /usr/libx32/libbz2.so
ln -sf libbz2.so.1.0.8 /usr/libx32/libbz2.so.1
ln -sf libbz2.so.1.0.8 /usr/libx32/libbz2.so.1.0
install -Dm644 libbz2.a /usr/libx32/libbz2.a</userinput></screen>
</sect2><!-- mx32 -->

View File

@ -101,11 +101,11 @@ make -f &udev-lfs-version;/Makefile.lfs install</userinput></screen>
--prefix=/usr \
--bindir=/sbin \
--sbindir=/sbin \
--libdir=&usr-lib-m32; \
--libdir=/usr/lib32 \
--sysconfdir=/etc \
--libexecdir=&lib-m32; \
--libexecdir=/lib32 \
--with-rootprefix= \
--with-rootlibdir=&usr-lib-m32; \
--with-rootlibdir=/usr/lib32 \
--disable-manpages \
--disable-static \
--config-cache</userinput></screen>
@ -117,7 +117,7 @@ make -f &udev-lfs-version;/Makefile.lfs install</userinput></screen>
<para>Install the package:</para>
<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32;
cp -Rv DESTDIR/usr/lib32/* /usr/lib32
rm -rf DESTDIR</userinput></screen>
</sect2><!-- m32 -->
@ -139,11 +139,11 @@ rm -rf DESTDIR</userinput></screen>
./configure --prefix=/usr \
--bindir=/sbin \
--sbindir=/sbin \
--libdir=&usr-lib-mx32; \
--libdir=/usr/libx32 \
--sysconfdir=/etc \
--libexecdir=&lib-mx32; \
--libexecdir=/libx32 \
--with-rootprefix= \
--with-rootlibdir=&usr-lib-mx32; \
--with-rootlibdir=/usr/libx32 \
--disable-manpages \
--disable-static \
--config-cache</userinput></screen>
@ -155,7 +155,7 @@ rm -rf DESTDIR</userinput></screen>
<para>Install the package:</para>
<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;
cp -Rv DESTDIR/usr/libx32/* /usr/libx32
rm -rf DESTDIR</userinput></screen>
</sect2><!-- mx32 -->

View File

@ -82,7 +82,7 @@ make clean</userinput></screen>
<screen><userinput remap="configure">CC="gcc -m32" ./configure \
--prefix=/usr \
--libdir=&usr-lib-m32; \
--libdir=/usr/lib32 \
--host=i686-pc-linux-gnu</userinput></screen>
<para>Compile the package:</para>
@ -92,7 +92,7 @@ make clean</userinput></screen>
<para>Install the package:</para>
<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32;
cp -Rv DESTDIR/usr/lib32/* /usr/lib32
rm -rf DESTDIR</userinput></screen>
</sect2><!-- m32 -->
@ -114,7 +114,7 @@ make clean</userinput></screen>
<screen><userinput remap="configure">CC="gcc -mx32" ./configure \
--prefix=/usr \
--libdir=&usr-lib-mx32; \
--libdir=/usr/libx32 \
--host=x86_64-pc-linux-gnux32</userinput></screen>
<para>Compile the package:</para>
@ -124,7 +124,7 @@ make clean</userinput></screen>
<para>Install the package:</para>
<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;
cp -Rv DESTDIR/usr/libx32/* /usr/libx32
rm -rf DESTDIR</userinput></screen>
</sect2><!-- mx32 -->

View File

@ -74,7 +74,7 @@
<screen><userinput remap="configure">CC="gcc -m32" ./configure \
--prefix=/usr \
--libdir=&usr-lib-m32; \
--libdir=/usr/lib32 \
--host=i686-pc-linux-gnu</userinput></screen>
<para>Compile the package:</para>
@ -84,7 +84,7 @@
<para>Install the package:</para>
<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32;
cp -Rv DESTDIR/usr/lib32/* /usr/lib32
rm -rf DESTDIR</userinput></screen>
</sect2><!-- m32 -->
@ -104,7 +104,7 @@ rm -rf DESTDIR</userinput></screen>
<screen><userinput remap="configure">CC="gcc -mx32" ./configure \
--prefix=/usr \
--libdir=&usr-lib-mx32; \
--libdir=/usr/libx32 \
--host=x86_64-pc-linux-gnux32</userinput></screen>
<para>Compile the package:</para>
@ -114,7 +114,7 @@ rm -rf DESTDIR</userinput></screen>
<para>Install the package:</para>
<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;
cp -Rv DESTDIR/usr/libx32/* /usr/libx32
rm -rf DESTDIR</userinput></screen>
</sect2><!-- mx32 -->

View File

@ -55,7 +55,7 @@ esac</userinput></screen>
libraries to <quote>lib</quote>:</para>
<screen arch="ml_32,ml_x32,ml_all"><userinput remap="pre">sed -e '/m64=/s/lib64/lib/' \
-e '/m32=/s/m32=.*/m32=..\&lib-m32;$(call if_multiarch,:i386-linux-gnu)/' \
-e '/m32=/s/m32=.*/m32=..\/lib32$(call if_multiarch,:i386-linux-gnu)/' \
-i.orig gcc/config/i386/t-linux64</userinput></screen>
<para>The GCC documentation recommends building GCC in a dedicated build directory:</para>

View File

@ -72,14 +72,16 @@ cd build</userinput></screen>
--enable-kernel=&min-kernel; \
--enable-stack-protector=strong \
--with-headers=/usr/include \
libc_cv_slibdir=/usr/lib</userinput></screen>
libc_cv_slibdir=/usr/lib \
libc_cv_rtlddir=/usr/lib</userinput></screen>
<screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure --prefix=/usr \
--disable-werror \
--enable-kernel=&min-kernel; \
--enable-stack-protector=strong \
--with-headers=/usr/include \
--enable-multi-arch \
libc_cv_slibdir=/usr/lib</userinput></screen>
libc_cv_slibdir=/usr/lib \
libc_cv_rtlddir=/usr/lib</userinput></screen>
<variablelist>
<title>The meaning of the configure options:</title>
@ -127,6 +129,14 @@ cd build</userinput></screen>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>libc_cv_rtlddir=/usr/lib</parameter></term>
<listitem>
<para>Fix hardcoded path to the executable loader in the
<command>ldd</command> script.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>libc_cv_include_x86_isa_level=no</option></term>
<listitem>
@ -222,6 +232,11 @@ esac</userinput></screen>
<screen><userinput remap="install">make install</userinput></screen>
<para>Fix hardcoded path to the executable loader in
<command>ldd</command> script:</para>
<screen><userinput remap="install">sed '/RTLDLIST=/s@/usr@@g' -i /usr/bin/ldd</userinput></screen>
<para>Install the configuration file and runtime directory for
<command>nscd</command>:</para>
@ -482,7 +497,7 @@ mkdir -pv /etc/ld.so.conf.d</userinput></screen>
<title>Building Glibc - 32bit</title>
<para>Now recompile for m32. The extracted source can be
reused but needs to cleaned before installing the m32
reused but needs to be cleaned before installing the m32
version of Glibc.</para>
<para>Clear the build directory and remove artefacts from
@ -501,9 +516,10 @@ find .. -name "*.a" -delete</userinput></screen>
--enable-kernel=&min-kernel; \
--with-headers=/usr/include \
--enable-multi-arch \
--libdir=&usr-lib-m32; \
--libexecdir=&usr-lib-m32; \
libc_cv_slibdir=&usr-lib-m32;</userinput></screen>
--libdir=/usr/lib32 \
--libexecdir=/usr/lib32 \
libc_cv_slibdir=/usr/lib32 \
libc_cv_rtlddir=/usr/lib32</userinput></screen>
<para>Compile the package:</para>
@ -512,14 +528,16 @@ find .. -name "*.a" -delete</userinput></screen>
<para>Install the package:</para>
<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
cp -a DESTDIR&usr-lib-m32;/* &usr-lib-m32;/
cp -a DESTDIR/usr/lib32/* /usr/lib32/
install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-32.h \
/usr/include/gnu/
ln -svf ..&lib-m32;/ld-linux.so.2 /lib/ld-linux.so.2</userinput></screen>
/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>
<screen role="install"><userinput>echo "&usr-lib-m32;" &gt;&gt; /etc/ld.so.conf</userinput></screen>
<screen role="install"><userinput>echo "/usr/lib32" &gt;&gt; /etc/ld.so.conf</userinput></screen>
<caution>
<para>At this point, it is imperative to stop and ensure that the basic
@ -556,7 +574,7 @@ readelf -l a.out | grep '/ld-linux'</userinput></screen>
<title>Building Glibc - x32bit</title>
<para>Now recompile for mx32. The extracted source can be
reused but needs to cleaned before installing the mx32
reused but needs to be cleaned before installing the mx32
version of Glibc.</para>
<para>Clear the build directory and remove artefacts from
@ -573,11 +591,12 @@ find .. -name "*.a" -delete</userinput></screen>
--host=x86_64-pc-linux-gnux32 \
--build=$(../scripts/config.guess) \
--enable-kernel=&min-kernel; \
--with-headers=$LFS/usr/include \
--with-headers=/usr/include \
--enable-multi-arch \
--libdir=&usr-lib-mx32; \
--libexecdir=&usr-lib-mx32; \
libc_cv_slibdir=&usr-lib-mx32;</userinput></screen>
--libdir=/usr/libx32 \
--libexecdir=/usr/libx32 \
libc_cv_slibdir=/usr/libx32 \
libc_cv_rtlddir=/usr/libx32</userinput></screen>
<para>Compile the package:</para>
@ -586,14 +605,15 @@ find .. -name "*.a" -delete</userinput></screen>
<para>Install the package:</para>
<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
cp -a DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;/
cp -a DESTDIR/usr/libx32/* /usr/libx32/
install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-x32.h \
/usr/include/gnu/
ln -svf ..&lib-mx32;/ld-linux-x32.so.2 /lib/ld-linux-x32.so.2</userinput></screen>
/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-lib-mx32;" &gt;&gt; /etc/ld.so.conf</userinput></screen>
<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

View File

@ -142,19 +142,19 @@ cp -v configfsf.sub config.sub</userinput></screen>
<screen><userinput remap="configure">ABI="32" \
CFLAGS="-m32 -O2 -pedantic -fomit-frame-pointer -mtune=generic -march=i686" \
CXXFLAGS="$CFLAGS" \
PKG_CONFIG_PATH="&usr-lib-m32;/pkgconfig" \
PKG_CONFIG_PATH="/usr/lib32/pkgconfig" \
./configure \
--prefix=/usr \
--disable-static \
--enable-cxx \
--libdir=&usr-lib-m32; \
--includedir=&usr-inc-m32;/gmp</userinput></screen>
--libdir=/usr/lib32 \
--includedir=/usr/include/m32/gmp</userinput></screen>
<variablelist>
<title>The meaning of the new configure options:</title>
<varlistentry>
<term><parameter>--includedir=&usr-inc-m32;/gmp</parameter></term>
<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
@ -186,8 +186,8 @@ make</userinput></screen>
<para>Install the package:</para>
<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32;
cp -Rv DESTDIR&usr-inc-m32;/* &usr-inc-m32;/
cp -Rv DESTDIR/usr/lib32/* /usr/lib32
cp -Rv DESTDIR/usr/include/m32/* /usr/include/m32/
rm -rf DESTDIR</userinput></screen>
</sect2><!-- m32 -->
@ -214,13 +214,13 @@ cp -v configfsf.sub config.sub</userinput></screen>
<screen><userinput remap="configure">ABI="x32" \
CFLAGS="-mx32 -O2 -pedantic -fomit-frame-pointer -mtune=generic -march=x86-64" \
CXXFLAGS="$CFLAGS" \
PKG_CONFIG_PATH="&usr-lib-mx32;/pkgconfig" \
PKG_CONFIG_PATH="/usr/libx32/pkgconfig" \
./configure \
--prefix=/usr \
--disable-static \
--enable-cxx \
--libdir=&usr-lib-mx32; \
--includedir=&usr-inc-mx32;/gmp</userinput></screen>
--libdir=/usr/libx32 \
--includedir=/usr/include/mx32/gmp</userinput></screen>
<para>Compile the package:</para>
@ -244,8 +244,8 @@ make</userinput></screen>
<para>Install the package:</para>
<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;
cp -Rv DESTDIR&usr-inc-mx32;/* &usr-inc-mx32;/
cp -Rv DESTDIR/usr/libx32/* /usr/libx32
cp -Rv DESTDIR/usr/include/mx32/* /usr/include/mx32/
rm -rf DESTDIR</userinput></screen>
</sect2><!-- mx32 -->

View File

@ -101,12 +101,12 @@ make clean</userinput></screen>
<screen><userinput remap="configure">CC="gcc -m32" ./configure \
--prefix=/usr \
--bindir=/bin \
--libdir=&usr-lib-m32; \
--libdir=/usr/lib32 \
--sysconfdir=/etc \
--with-xz \
--with-zlib \
--host=i686-pc-linux-gnu \
--with-rootlibdir=&usr-lib-m32;</userinput></screen>
--with-rootlibdir=/usr/lib32</userinput></screen>
<para>Compile the package:</para>
@ -115,7 +115,7 @@ make clean</userinput></screen>
<para>Install the package:</para>
<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32;
cp -Rv DESTDIR/usr/lib32/* /usr/lib32
rm -rf DESTDIR</userinput></screen>
</sect2><!-- m32 -->
@ -138,12 +138,12 @@ make clean</userinput></screen>
<screen><userinput remap="configure">CC="gcc -mx32" ./configure \
--prefix=/usr \
--bindir=/bin \
--libdir=&usr-lib-mx32; \
--libdir=/usr/libx32 \
--sysconfdir=/etc \
--with-xz \
--with-zlib \
--host=x86_64-pc-linux-gnux32 \
--with-rootlibdir=&usr-lib-mx32;</userinput></screen>
--with-rootlibdir=/usr/libx32</userinput></screen>
<para>Compile the package:</para>
@ -152,7 +152,7 @@ make clean</userinput></screen>
<para>Install the package:</para>
<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;
cp -Rv DESTDIR/usr/libx32/* /usr/libx32
rm -rf DESTDIR</userinput></screen>
</sect2><!-- mx32 -->

View File

@ -97,9 +97,9 @@
<para>Install the package:</para>
<screen><userinput remap="install">make lib=lib32 prefix=$PWD/DESTDIR/usr -C libcap install
cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32;
sed -e "s|^libdir=.*|libdir=&usr-lib-m32;|" -i &usr-lib-m32;/pkgconfig/lib{cap,psx}.pc
chmod -v 755 &usr-lib-m32;/libcap.so.&libcap-version;
cp -Rv DESTDIR/usr/lib32/* /usr/lib32
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 -->
@ -122,9 +122,9 @@ rm -rf DESTDIR</userinput></screen>
<para>Install the package:</para>
<screen><userinput remap="install">make lib=libx32 prefix=$PWD/DESTDIR/usr -C libcap install
cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;
sed -e "s|^libdir=.*|libdir=&usr-lib-mx32;|" -i &usr-lib-mx32;/pkgconfig/lib{cap,psx}.pc
chmod -v 755 &usr-lib-mx32;/libcap.so.&libcap-version;
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 -->

View File

@ -83,7 +83,7 @@ rm /usr/lib/libelf.a</userinput></screen>
<screen><userinput remap="configure">CC="gcc -m32" ./configure \
--prefix=/usr \
--libdir=&usr-lib-m32; \
--libdir=/usr/lib32 \
--host=i686-pc-linux-gnu \
--disable-debuginfod \
--enable-libdebuginfod=dummy</userinput></screen>
@ -95,8 +95,8 @@ rm /usr/lib/libelf.a</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-lib-m32;/pkgconfig/libelf.pc
cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32;
install -vDm644 config/libelf.pc DESTDIR/usr/lib32/pkgconfig/libelf.pc
cp -Rv DESTDIR/usr/lib32/* /usr/lib32
rm -rf DESTDIR</userinput></screen>
</sect2><!-- m32 -->
@ -116,7 +116,7 @@ rm -rf DESTDIR</userinput></screen>
<screen><userinput remap="configure">CC="gcc -mx32" ./configure \
--prefix=/usr \
--libdir=&usr-lib-m32; \
--libdir=/usr/lib32 \
--host=x86_64-pc-linux-gnux32 \
--disable-debuginfod \
--enable-libdebuginfod=dummy</userinput></screen>
@ -128,8 +128,8 @@ rm -rf DESTDIR</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-lib-mx32;/pkgconfig/libelf.pc
cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;
install -vDm644 config/libelf.pc DESTDIR/usr/libx32/pkgconfig/libelf.pc
cp -Rv DESTDIR/usr/libx32/* /usr/libx32
rm -rf DESTDIR</userinput></screen>
</sect2><!-- mx32 -->

View File

@ -103,7 +103,7 @@
<screen><userinput remap="configure">CC="gcc -m32" CXX="g++ -m32" ./configure \
--prefix=/usr \
--disable-static \
--libdir=&usr-lib-m32; \
--libdir=/usr/lib32 \
--with-gcc-arch=i686 \
--host=i686-pc-linux-gnu</userinput></screen>
@ -118,7 +118,7 @@
<para>Install the package:</para>
<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32;
cp -Rv DESTDIR/usr/lib32/* /usr/lib32
rm -rf DESTDIR</userinput></screen>
</sect2><!-- m32 -->
@ -139,7 +139,7 @@ rm -rf DESTDIR</userinput></screen>
<screen><userinput remap="configure">CC="gcc -mx32" CXX="g++ -mx32" ./configure \
--prefix=/usr \
--disable-static \
--libdir=&usr-lib-mx32; \
--libdir=/usr/libx32 \
--with-gcc-arch=x86_64 \
--host=x86_64-unknown-linux-gnux32</userinput></screen>
@ -154,7 +154,7 @@ rm -rf DESTDIR</userinput></screen>
<para>Install the package:</para>
<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;
cp -Rv DESTDIR/usr/libx32/* /usr/libx32
rm -rf DESTDIR</userinput></screen>
</sect2><!-- mx32 -->

View File

@ -92,7 +92,7 @@
<screen><userinput remap="configure">CC="gcc -m32" ./configure \
--prefix=/usr \
--libdir=&usr-lib-m32; \
--libdir=/usr/lib32 \
--host=i686-pc-linux-gnu</userinput></screen>
<para>Compile the package:</para>
@ -102,7 +102,7 @@
<para>Install the package:</para>
<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32;
cp -Rv DESTDIR/usr/lib32/* /usr/lib32
rm -rf DESTDIR</userinput></screen>
</sect2><!-- m32 -->
@ -122,7 +122,7 @@ rm -rf DESTDIR</userinput></screen>
<screen><userinput remap="configure">CC="gcc -mx32" ./configure \
--prefix=/usr \
--libdir=&usr-lib-mx32; \
--libdir=/usr/libx32 \
--host=x86_64-pc-linux-gnux32</userinput></screen>
<para>Compile the package:</para>
@ -132,7 +132,7 @@ rm -rf DESTDIR</userinput></screen>
<para>Install the package:</para>
<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;
cp -Rv DESTDIR/usr/libx32/* /usr/libx32
rm -rf DESTDIR</userinput></screen>
</sect2><!-- mx32 -->

View File

@ -165,14 +165,14 @@ cp -av lib/lib*.so.5* /usr/lib</userinput></screen>
<screen><userinput remap="configure">CC="gcc -m32" CXX="g++ -m32" \
./configure --prefix=/usr \
--host=i686-pc-linux-gnu \
--libdir=&usr-lib-m32; \
--libdir=/usr/lib32 \
--mandir=/usr/share/man \
--with-shared \
--without-debug \
--without-normal \
--enable-pc-files \
--enable-widec \
--with-pkg-config-libdir=&usr-lib-m32;/pkgconfig</userinput></screen>
--with-pkg-config-libdir=/usr/lib32/pkgconfig</userinput></screen>
<para>Compile the package:</para>
@ -181,16 +181,16 @@ cp -av lib/lib*.so.5* /usr/lib</userinput></screen>
<para>Install the package:</para>
<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
mkdir -p DESTDIR&usr-lib-m32;/pkgconfig
mkdir -p DESTDIR/usr/lib32/pkgconfig
for lib in ncurses form panel menu ; do
rm -vf DESTDIR&usr-lib-m32;/lib${lib}.so
echo "INPUT(-l${lib}w)" > DESTDIR&usr-lib-m32;/lib${lib}.so
ln -svf ${lib}w.pc DESTDIR&usr-lib-m32;/pkgconfig/$lib.pc
rm -vf DESTDIR/usr/lib32/lib${lib}.so
echo "INPUT(-l${lib}w)" > DESTDIR/usr/lib32/lib${lib}.so
ln -svf ${lib}w.pc DESTDIR/usr/lib32/pkgconfig/$lib.pc
done
rm -vf DESTDIR&usr-lib-m32;/libcursesw.so
echo "INPUT(-lncursesw)" > DESTDIR&usr-lib-m32;/libcursesw.so
ln -sfv libncurses.so DESTDIR&usr-lib-m32;/libcurses.so
cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32;
rm -vf DESTDIR/usr/lib32/libcursesw.so
echo "INPUT(-lncursesw)" > DESTDIR/usr/lib32/libcursesw.so
ln -sfv libncurses.so DESTDIR/usr/lib32/libcurses.so
cp -Rv DESTDIR/usr/lib32/* /usr/lib32
rm -rf DESTDIR</userinput></screen>
</sect2><!-- m32 -->
@ -210,14 +210,14 @@ rm -rf DESTDIR</userinput></screen>
<screen><userinput remap="configure">CC="gcc -mx32" CXX="g++ -mx32" \
./configure --prefix=/usr \
--host=x86_64-pc-linux-gnux32 \
--libdir=&usr-lib-mx32; \
--libdir=/usr/libx32 \
--mandir=/usr/share/man \
--with-shared \
--without-debug \
--without-normal \
--enable-pc-files \
--enable-widec \
--with-pkg-config-libdir=&usr-lib-mx32;/pkgconfig</userinput></screen>
--with-pkg-config-libdir=/usr/libx32/pkgconfig</userinput></screen>
<para>Compile the package:</para>
@ -226,16 +226,16 @@ rm -rf DESTDIR</userinput></screen>
<para>Install the package:</para>
<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
mkdir -p DESTDIR&usr-lib-mx32;/pkgconfig
mkdir -p DESTDIR/usr/libx32/pkgconfig
for lib in ncurses form panel menu ; do
rm -vf DESTDIR&usr-lib-mx32;/lib${lib}.so
echo "INPUT(-l${lib}w)" > DESTDIR&usr-lib-mx32;/lib${lib}.so
ln -svf ${lib}w.pc DESTDIR&usr-lib-mx32;/pkgconfig/$lib.pc
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-lib-mx32;/libcursesw.so
echo "INPUT(-lncursesw)" > DESTDIR&usr-lib-mx32;/libcursesw.so
ln -sfv libncurses.so DESTDIR&usr-lib-mx32;/libcurses.so
cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;
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 -->

View File

@ -97,7 +97,7 @@ CC="gcc -m32 -march=i686" \
CXX="g++ -m32 -march=i686" \
./config \
--prefix=/usr \
--libdir=&usr-lib-m32; \
--libdir=/usr/lib32 \
--openssldir=/etc/ssl \
--libdir=lib32 \
shared \
@ -110,7 +110,7 @@ CXX="g++ -m32 -march=i686" \
<para>Install the package:</para>
<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32;
cp -Rv DESTDIR/usr/lib32/* /usr/lib32
rm -rf DESTDIR</userinput></screen>
</sect2><!-- m32 -->
@ -133,7 +133,7 @@ CC="gcc -mx32" \
CXX="g++ -mx32" \
./config \
--prefix=/usr \
--libdir=&usr-lib-mx32; \
--libdir=/usr/libx32 \
--openssldir=/etc/ssl \
--libdir=libx32 \
shared \
@ -146,7 +146,7 @@ CXX="g++ -mx32" \
<para>Install the package:</para>
<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;
cp -Rv DESTDIR/usr/libx32/* /usr/libx32
rm -rf DESTDIR</userinput></screen>
</sect2><!-- mx32 -->

View File

@ -115,7 +115,7 @@ sed -i '/{OLDSUFF}/c:' support/shlib-install</userinput></screen>
<screen><userinput remap="configure">CC="gcc -m32" ./configure \
--prefix=/usr \
--libdir=&usr-lib-m32; \
--libdir=/usr/lib32 \
--disable-static \
--host=i686-pc-linux-gnu</userinput></screen>
@ -126,7 +126,7 @@ sed -i '/{OLDSUFF}/c:' support/shlib-install</userinput></screen>
<para>Install the package:</para>
<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32;
cp -Rv DESTDIR/usr/lib32/* /usr/lib32
rm -rf DESTDIR</userinput></screen>
</sect2><!-- m32 -->
@ -146,7 +146,7 @@ rm -rf DESTDIR</userinput></screen>
<screen><userinput remap="configure">CC="gcc -mx32" ./configure \
--prefix=/usr \
--libdir=&usr-lib-mx32; \
--libdir=/usr/libx32 \
--disable-static \
--host=x86_64-pc-linux-gnux32</userinput></screen>
@ -157,7 +157,7 @@ rm -rf DESTDIR</userinput></screen>
<para>Install the package:</para>
<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;
cp -Rv DESTDIR/usr/libx32/* /usr/libx32
rm -rf DESTDIR</userinput></screen>
</sect2><!-- mx32 -->

View File

@ -44,8 +44,8 @@ chroot "$LFS" /usr/bin/env -i \
To remove them, run:</para>
<screen><userinput>find /usr/lib /usr/libexec -name \*.la -delete</userinput><userinput arch="ml_32,ml_all">
find &usr-lib-m32; -name \*.la -delete</userinput><userinput arch="ml_x32,ml_all">
find &usr-lib-mx32; -name \*.la -delete</userinput></screen>
find /usr/lib32 -name \*.la -delete</userinput><userinput arch="ml_x32,ml_all">
find /usr/libx32 -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

@ -44,14 +44,14 @@ for LIB in $save_usrlib; do
objcopy --add-gnu-debuglink=$LIB.dbg $LIB
done</userinput>
<userinput arch="ml_32,ml_all">
cd &usr-lib-m32;
cd /usr/lib32
for LIB in $save_usrlib; do
objcopy --only-keep-debug $LIB $LIB.dbg
strip --strip-unneeded $LIB
objcopy --add-gnu-debuglink=$LIB.dbg $LIB
done</userinput>
<userinput arch="ml_x32,ml_all">
cd &usr-lib-mx32;
cd /usr/libx32
for LIB in $save_usrlib; do
objcopy --only-keep-debug $LIB $LIB.dbg
strip --strip-unneeded $LIB
@ -70,16 +70,16 @@ unset LIB save_usrlib</userinput></screen>
<para>Now the binaries and libraries can be stripped:</para>
<screen><userinput>find /usr/lib -type f -name \*.a \
-exec strip --strip-debug {} ';'</userinput>
<userinput arch="ml_32,ml_all">find &usr-lib-m32; -type f -name \*.a \
<userinput arch="ml_32,ml_all">find /usr/lib32 -type f -name \*.a \
-exec strip --strip-debug {} ';'</userinput>
<userinput arch="ml_x32,ml_all">find &usr-lib-mx32; -type f -name \*.a \
<userinput arch="ml_x32,ml_all">find /usr/libx32 -type f -name \*.a \
-exec strip --strip-debug {} ';'</userinput><userinput>
find /usr/lib -type f -name \*.so* ! -name \*dbg \
-exec strip --strip-unneeded {} ';'</userinput>
<userinput arch="ml_32,ml_all">find &usr-lib-m32; -type f -name \*.so* ! -name \*dbg \
<userinput arch="ml_32,ml_all">find /usr/lib32 -type f -name \*.so* ! -name \*dbg \
-exec strip --strip-unneeded {} ';'</userinput>
<userinput arch="ml_x32,ml_all">find &usr-lib-mx32; -type f -name \*.so* ! -name \*dbg \
<userinput arch="ml_x32,ml_all">find /usr/libx32 -type f -name \*.so* ! -name \*dbg \
-exec strip --strip-unneeded {} ';'</userinput><userinput>
find /usr/{bin,sbin,libexec} -type f \

View File

@ -51,9 +51,11 @@
<screen><userinput remap="pre">patch -Np1 -i ../systemd-&systemd-version;-upstream_fixes-1.patch</userinput></screen>
<!-- Seems to be not needed anymore with 248
<para>Remove tests that cannot be built in chroot:</para>
<screen><userinput remap="pre">sed '177,$ d' -i src/resolve/meson.build</userinput></screen>
-->
<para>Remove an unneeded group,
<systemitem class="groupname">render</systemitem>, from the default udev
@ -239,7 +241,7 @@ done</userinput></screen>
<para>Prepare systemd for compilation:</para>
<screen><userinput remap="configure">PKG_CONFIG_PATH="&usr-lib-m32;/pkgconfig" \
<screen><userinput remap="configure">PKG_CONFIG_PATH="/usr/lib32/pkgconfig" \
CC="gcc -m32 -march=i686" \
CXX="g++ -m32 -march=i686" \
LANG=en_US.UTF-8 \
@ -256,7 +258,7 @@ meson --prefix=/usr \
-Dldconfig=false \
-Dmount-path=/bin/mount \
-Drootprefix= \
-Drootlibdir=&usr-lib-m32; \
-Drootlibdir=/usr/lib32 \
-Dsplit-usr=true \
-Dsulogin-path=/sbin/sulogin \
-Dsysusers=false \
@ -271,7 +273,7 @@ meson --prefix=/usr \
<para>Install the package:</para>
<screen><userinput remap="install">LANG=en_US.UTF-8 DESTDIR=$PWD/DESTDIR ninja install
cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32;
cp -Rv DESTDIR/usr/lib32/* /usr/lib32
rm -rf DESTDIR
rm -f /usr/bin/xsltproc</userinput></screen>
@ -299,7 +301,7 @@ sed '/long drift_freq;/s@long @int64_t @' -i src/timesync/timesyncd-manager.h</u
<para>Prepare systemd for compilation:</para>
<screen><userinput remap="configure">PKG_CONFIG_PATH="&usr-lib-mx32;/pkgconfig" \
<screen><userinput remap="configure">PKG_CONFIG_PATH="/usr/libx32/pkgconfig" \
CC="gcc -mx32" \
CXX="g++ -mx32" \
CFLAGS+="-Wno-error=shift-overflow" \
@ -318,7 +320,7 @@ meson --prefix=/usr \
-Dldconfig=false \
-Dmount-path=/bin/mount \
-Drootprefix= \
-Drootlibdir=&usr-lib-mx32; \
-Drootlibdir=/usr/libx32 \
-Dsplit-usr=true \
-Dsulogin-path=/sbin/sulogin \
-Dsysusers=false \
@ -333,7 +335,7 @@ meson --prefix=/usr \
<para>Install the package:</para>
<screen><userinput remap="install">LANG=en_US.UTF-8 DESTDIR=$PWD/DESTDIR ninja install
cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32;
cp -Rv DESTDIR/usr/lib32/* /usr/lib32
rm -rf DESTDIR
rm -f /usr/bin/xsltproc</userinput></screen>

View File

@ -130,7 +130,7 @@ su tester -c "make -k check"</userinput></screen>
--disable-static \
--without-python \
--without-systemd \
--libdir=&usr-lib-m32; \
--libdir=/usr/lib32 \
--host=i686-pc-linux-gnu \
--without-systemdsystemunitdir \
--enable-libmount-force-mountinfo</userinput></screen>
@ -147,7 +147,7 @@ su tester -c "make -k check"</userinput></screen>
--disable-pylibmount \
--disable-static \
--without-python \
--libdir=&usr-lib-m32; \
--libdir=/usr/lib32 \
--host=i686-pc-linux-gnu \
--enable-libmount-force-mountinfo</userinput></screen>
@ -158,7 +158,7 @@ su tester -c "make -k check"</userinput></screen>
<para>Install the package:</para>
<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32;
cp -Rv DESTDIR/usr/lib32/* /usr/lib32
rm -rf DESTDIR</userinput></screen>
</sect2><!-- m32 -->
@ -190,7 +190,7 @@ rm -rf DESTDIR</userinput></screen>
--without-python \
--without-systemd \
--without-systemdsystemunitdir \
--libdir=&usr-lib-mx32; \
--libdir=/usr/libx32 \
--host=x86_64-pc-linux-gnux32 \
--enable-libmount-force-mountinfo</userinput></screen>
@ -206,7 +206,7 @@ rm -rf DESTDIR</userinput></screen>
--disable-pylibmount \
--disable-static \
--without-python \
--libdir=&usr-lib-mx32; \
--libdir=/usr/libx32 \
--host=x86_64-pc-linux-gnux32 \
--enable-libmount-force-mountinfo</userinput></screen>
@ -217,7 +217,7 @@ rm -rf DESTDIR</userinput></screen>
<para>Install the package:</para>
<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;
cp -Rv DESTDIR/usr/libx32/* /usr/libx32
rm -rf DESTDIR</userinput></screen>
</sect2><!-- mx32 -->

View File

@ -80,7 +80,7 @@
<screen><userinput remap="configure">CC="gcc -m32" ./configure \
--prefix=/usr \
--disable-static \
--libdir=&usr-lib-m32; \
--libdir=/usr/lib32 \
--host=i686-pc-linux-gnu</userinput></screen>
<para>Compile the package:</para>
@ -90,7 +90,7 @@
<para>Install the package:</para>
<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32;
cp -Rv DESTDIR/usr/lib32/* /usr/lib32
rm -rf DESTDIR</userinput></screen>
</sect2><!-- m32 -->
@ -111,7 +111,7 @@ rm -rf DESTDIR</userinput></screen>
<screen><userinput remap="configure">CC="gcc -mx32" ./configure \
--prefix=/usr \
--disable-static \
--libdir=&usr-lib-mx32; \
--libdir=/usr/libx32 \
--host=x86_64-pc-linux-gnux32</userinput></screen>
<para>Compile the package:</para>
@ -121,7 +121,7 @@ rm -rf DESTDIR</userinput></screen>
<para>Install the package:</para>
<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;
cp -Rv DESTDIR/usr/libx32/* /usr/libx32
rm -rf DESTDIR</userinput></screen>
</sect2><!-- mx32 -->

View File

@ -78,7 +78,7 @@
<screen><userinput remap="configure">CC="gcc -m32" \
./configure --prefix=/usr \
--libdir=&usr-lib-m32;</userinput></screen>
--libdir=/usr/lib32</userinput></screen>
<para>Compile the package:</para>
@ -87,7 +87,7 @@
<para>Install the package:</para>
<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
cp -Rv DESTDIR&usr-lib-m32;/* &usr-lib-m32;
cp -Rv DESTDIR/usr/lib32/* /usr/lib32
rm -rf DESTDIR</userinput></screen>
</sect2><!-- m32 -->
@ -105,7 +105,7 @@ rm -rf DESTDIR</userinput></screen>
<screen><userinput remap="configure">CC="gcc -mx32" \
./configure --prefix=/usr \
--libdir=&usr-lib-mx32;</userinput></screen>
--libdir=/usr/libx32</userinput></screen>
<para>Compile the package:</para>
@ -114,7 +114,7 @@ rm -rf DESTDIR</userinput></screen>
<para>Install the package:</para>
<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
cp -Rv DESTDIR&usr-lib-mx32;/* &usr-lib-mx32;
cp -Rv DESTDIR/usr/libx32/* /usr/libx32
rm -rf DESTDIR</userinput></screen>
</sect2><!-- mx32 -->

View File

@ -77,8 +77,8 @@
<para>Install the package:</para>
<screen><userinput remap="install">CC="gcc -m32" make prefix=/usr DESTDIR=$PWD/DESTDIR install
cp -Rv DESTDIR/usr/lib/* &usr-lib-m32;/
sed -e "/^libdir/s/lib$&lib-m32;/" -i &usr-lib-m32;/pkgconfig/libzstd.pc
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 -->
@ -101,8 +101,8 @@ rm -rf DESTDIR</userinput></screen>
<para>Install the package:</para>
<screen><userinput remap="install">CC="gcc -mx32" make prefix=/usr DESTDIR=$PWD/DESTDIR install
cp -Rv DESTDIR/usr/lib/* &usr-lib-mx32;/
sed -e "/^libdir/s/lib$&lib-mx32;/" -i &usr-lib-mx32;/pkgconfig/libzstd.pc
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 -->

View File

@ -63,11 +63,3 @@
<!ENTITY % patches-entities SYSTEM "patches.ent">
%patches-entities;
<!-- multilib definitions -->
<!ENTITY lib-m32 "/lib32">
<!ENTITY lib-mx32 "/libx32">
<!ENTITY usr-lib-m32 "/usr/lib32">
<!ENTITY usr-lib-mx32 "/usr/libx32">
<!ENTITY usr-inc-m32 "/usr/include/m32">
<!ENTITY usr-inc-mx32 "/usr/include/mx32">