Changes in / [c49c1fb:e5e442c]
- Files:
-
- 2 deleted
- 50 edited
Legend:
- Unmodified
- Added
- Removed
-
Makefile
rc49c1fb re5e442c 35 35 endif 36 36 37 ifndef ARCH38 ARCH = default39 endif40 ifneq ($(ARCH), default)41 ifneq ($(ARCH), ml_32)42 ifneq ($(ARCH), ml_x32)43 ifneq ($(ARCH), ml_all)44 $(error ARCH must be either 'default' (default if unset), 'ml_32', 'ml_x32' or 'ml_all'.)45 endif46 endif47 endif48 endif49 50 37 book: validate profile-html 51 38 @echo "Generating chunked XHTML files at $(BASEDIR)/ ..." … … 143 130 --output $(RENDERTMP)/lfs-html2.xml \ 144 131 --stringparam profile.revision $(REV) \ 145 --stringparam profile.arch $(ARCH) \146 132 stylesheets/lfs-xsl/profile.xsl \ 147 133 index.xml … … 197 183 $(Q)xsltproc --nonet --xinclude \ 198 184 --stringparam profile.revision $(REV) \ 199 --stringparam profile.arch $(ARCH) \200 185 --output $(RENDERTMP)/md5sum.xml \ 201 186 stylesheets/lfs-xsl/profile.xsl \ -
chapter01/askforhelp.xml
rc49c1fb re5e442c 39 39 <itemizedlist> 40 40 <listitem> 41 <para>The version of the book being used (in this case &version; <phrase arch="ml_32,ml_x32,ml_all">-multilib</phrase>)</para>41 <para>The version of the book being used (in this case &version;)</para> 42 42 </listitem> 43 43 <listitem> … … 54 54 </listitem> 55 55 <listitem> 56 <para>Note whether you have deviated from the book at all </para>56 <para>Note whether you have deviated from the book at all </para> 57 57 </listitem> 58 58 </itemizedlist> -
chapter01/changelog.xml
rc49c1fb re5e442c 11 11 <title>Changelog</title> 12 12 13 <para>This is version &version; <phrase arch="ml_32,ml_x32,ml_all">&version;-multilib</phrase>of the Linux From Scratch book, dated13 <para>This is version &version; of the Linux From Scratch book, dated 14 14 &releasedate;. If this book is more than six months old, a newer and better 15 15 version is probably already available. To find out, please check one of the -
chapter02/hostreqs.xml
rc49c1fb re5e442c 226 226 --> 227 227 228 <para arch="ml_32,ml_x32,ml_all">229 Building multilib support requires the kernel of the host system230 to have 32-bit emulation support included.231 </para>232 <screen arch="ml_32,ml_x32,ml_all">Binary Emulations --->233 [*] IA32 Emulation234 <M> IA32 a.out support235 [*] x32 ABI for 64-bit mode236 </screen>237 238 <para arch="ml_32,ml_x32,ml_all">The option 'IA32 a.out support' is239 optional. In case your kernel does not have 'x32 ABI for 64-bit mode'240 enabled but only 'IA32 Emulation', you can continue to build your241 system but you have to leave out any sections showing instructions242 for building x32 objects. If neither 'IA32 Emulation' nor243 'x32 ABI for 64-bit mode' is enabled, you will run in errors244 latest when building <application>glibc</application> in Chapter 6,245 so an upgrade of your host system kernel is required.246 </para>247 248 228 </sect1> -
chapter03/packages.xml
rc49c1fb re5e442c 362 362 <para>Download: <ulink url="&iproute2-url;"/></para> 363 363 <para>MD5 sum: <literal>&iproute2-md5;</literal></para> 364 </listitem>365 </varlistentry>366 367 <varlistentry arch="ml_32,ml_x32,ml_all">368 <term>ISL (&isl-version;) - <token>&isl-size;</token>:</term>369 <listitem>370 <para>Home page: <ulink url="&isl-home;"/></para>371 <para>Download: <ulink url="&isl-url;"/></para>372 <para>MD5 sum: <literal>&isl-md5;</literal></para>373 364 </listitem> 374 365 </varlistentry> -
chapter04/addinguser.xml
rc49c1fb re5e442c 85 85 x86_64) chown -v lfs $LFS/lib64 ;; 86 86 esac</userinput></screen> 87 <screen arch="ml_32" ><userinput>chown -v lfs $LFS/lib32</userinput></screen>88 <screen arch="ml_x32" ><userinput>chown -v lfs $LFS/libx32</userinput></screen>89 <screen arch="ml_all" ><userinput>chown -v lfs $LFS/{lib32,libx32}</userinput></screen>90 87 91 88 <note><para>In some host systems, the following command does not complete -
chapter04/creatingminlayout.xml
rc49c1fb re5e442c 30 30 x86_64) mkdir -pv $LFS/lib64 ;; 31 31 esac</userinput></screen> 32 <screen arch="ml_32"><userinput>mkdir -pv $LFS/usr/lib3233 ln -sv usr/lib32 $LFS/lib32</userinput></screen>34 <screen arch="ml_x32"><userinput>mkdir -pv $LFS/usr/libx3235 ln -sv usr/libx32 $LFS/libx32</userinput></screen>36 <screen arch="ml_all"><userinput>mkdir -pv $LFS/usr/lib{,x}3237 ln -sv usr/lib32 $LFS/lib3238 ln -sv usr/libx32 $LFS/libx32</userinput></screen>39 32 40 33 <para>Programs in <xref linkend="chapter-temporary-tools"/> will be compiled -
chapter04/settingenviron.xml
rc49c1fb re5e442c 38 38 <filename>.bashrc</filename> file now:</para> 39 39 40 <screen arch="default"><userinput>cat > ~/.bashrc << "EOF"40 <screen><userinput>cat > ~/.bashrc << "EOF" 41 41 <literal>set +h 42 42 umask 022 … … 49 49 CONFIG_SITE=$LFS/usr/share/config.site 50 50 export LFS LC_ALL LFS_TGT PATH CONFIG_SITE</literal> 51 EOF</userinput></screen>52 <screen arch="ml_32,ml_x32,ml_all"><userinput>cat > ~/.bashrc << "EOF"53 <literal>set +h54 umask 02255 LFS=/mnt/lfs56 LC_ALL=POSIX57 LFS_TGT=x86_64-lfs-linux-gnu58 LFS_TGT32=i686-lfs-linux-gnu59 LFS_TGTX32=x86_64-lfs-linux-gnux3260 PATH=/usr/bin61 if [ ! -L /bin ]; then PATH=/bin:$PATH; fi62 PATH=$LFS/tools/bin:$PATH63 CONFIG_SITE=$LFS/usr/share/config.site64 export LFS LC_ALL LFS_TGT LFS_TGT32 LFS_TGTX32 PATH</literal>65 51 EOF</userinput></screen> 66 52 -
chapter05/binutils-pass1.xml
rc49c1fb re5e442c 71 71 <para>Now prepare Binutils for compilation:</para> 72 72 73 <screen arch="default"><userinput remap="configure">../configure --prefix=$LFS/tools \73 <screen><userinput remap="configure">../configure --prefix=$LFS/tools \ 74 74 --with-sysroot=$LFS \ 75 75 --target=$LFS_TGT \ … … 77 77 --enable-gprofng=no \ 78 78 --disable-werror</userinput></screen> 79 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure --prefix=$LFS/tools \80 --with-sysroot=$LFS \81 --target=$LFS_TGT \82 --disable-nls \83 --enable-gprofng=no \84 --disable-werror \85 --enable-multilib</userinput></screen>86 79 87 80 <variablelist> … … 140 133 </varlistentry> 141 134 142 <varlistentry arch="ml_32,ml_x32,ml_all">143 <term><parameter>--enable-multilib</parameter></term>144 <listitem>145 <para>Enables multilib support.</para>146 </listitem>147 </varlistentry>148 149 135 </variablelist> 150 136 -
chapter05/gcc-pass1.xml
rc49c1fb re5e442c 63 63 mv -v mpc-&mpc-version; mpc</userinput></screen> 64 64 65 <para arch="default">On x86_64 hosts, set the default directory name for65 <para>On x86_64 hosts, set the default directory name for 66 66 64-bit libraries to <quote>lib</quote>:</para> 67 67 68 <screen arch="default"><userinput remap="pre">case $(uname -m) in68 <screen><userinput remap="pre">case $(uname -m) in 69 69 x86_64) 70 70 sed -e '/m64=/s/lib64/lib/' \ … … 73 73 esac</userinput></screen> 74 74 75 <para arch="ml_32,ml_x32,ml_all">Change the default directory name for76 libraries:</para>77 78 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="pre">sed -e '/m64=/s/lib64/lib/' \79 -e '/m32=/s/m32=.*/m32=..\/lib32$(call if_multiarch,:i386-linux-gnu)/' \80 -i.orig gcc/config/i386/t-linux6481 </userinput></screen>82 83 75 <para>The GCC documentation recommends building GCC 84 76 in a dedicated build directory:</para> … … 89 81 <para>Prepare GCC for compilation:</para> 90 82 91 <screen arch="default"><userinput remap="configure">../configure \83 <screen><userinput remap="configure">../configure \ 92 84 --target=$LFS_TGT \ 93 85 --prefix=$LFS/tools \ … … 110 102 --disable-libstdcxx \ 111 103 --enable-languages=c,c++</userinput></screen> 112 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure"113 arch="ml_32">mlist=m64,m32</userinput><userinput remap="configure"114 arch="ml_x32">mlist=m64,mx32</userinput><userinput remap="configure"115 arch="ml_all">mlist=m64,m32,mx32</userinput>116 <userinput remap="configure">../configure \117 --target=$LFS_TGT \118 --prefix=$LFS/tools \119 --with-glibc-version=&glibc-version; \120 --with-sysroot=$LFS \121 --with-newlib \122 --without-headers \123 --enable-initfini-array \124 --disable-nls \125 --disable-shared \126 --enable-multilib --with-multilib-list=$mlist \127 --disable-decimal-float \128 --disable-threads \129 --disable-libatomic \130 --disable-libgomp \131 --disable-libquadmath \132 --disable-libssp \133 --disable-libvtv \134 --disable-libstdcxx \135 --enable-languages=c,c++</userinput></screen>136 137 104 <variablelist> 138 105 <title>The meaning of the configure options:</title> … … 191 158 </varlistentry> 192 159 193 <varlistentry arch="default">160 <varlistentry> 194 161 <term><parameter>--disable-multilib</parameter></term> 195 162 <listitem> 196 163 <para>On x86_64, LFS does not support a multilib configuration. 197 164 This switch is harmless for x86.</para> 198 </listitem>199 </varlistentry>200 <varlistentry arch="ml_32,ml_x32,ml_all">201 <term><parameter>--enable-multilib --with-multilib-list=...</parameter></term>202 <listitem>203 <para>LFS canbe used to support multilib. Which they are is204 specified in the multilib list.</para>205 165 </listitem> 206 166 </varlistentry> -
chapter05/glibc.xml
rc49c1fb re5e442c 48 48 operation of the dynamic library loader:</para> 49 49 50 <screen arch="default"><userinput remap="pre">case $(uname -m) in50 <screen><userinput remap="pre">case $(uname -m) in 51 51 i?86) ln -sfv ld-linux.so.2 $LFS/lib/ld-lsb.so.3 52 52 ;; … … 55 55 ;; 56 56 esac</userinput></screen> 57 <!-- no ld-linux.so.2 here as multilib is based on x86_64, not on i686 -->58 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="pre">ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib6459 ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64/ld-lsb-x86-64.so.3</userinput></screen>60 57 61 58 <note> … … 89 86 <para>Next, prepare Glibc for compilation:</para> 90 87 91 <screen arch="default"><userinput remap="configure">../configure \88 <screen><userinput remap="configure">../configure \ 92 89 --prefix=/usr \ 93 90 --host=$LFS_TGT \ … … 95 92 --enable-kernel=&min-kernel; \ 96 93 --with-headers=$LFS/usr/include \ 97 libc_cv_slibdir=/usr/lib</userinput></screen>98 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure \99 --prefix=/usr \100 --host=$LFS_TGT \101 --build=$(../scripts/config.guess) \102 --enable-kernel=&min-kernel; \103 --with-headers=$LFS/usr/include \104 --enable-multi-arch \105 94 libc_cv_slibdir=/usr/lib</userinput></screen> 106 95 … … 215 204 <screen><computeroutput>[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]</computeroutput></screen> 216 205 217 <para arch="default">Note that for 32-bit machines, the interpreter name will be206 <para>Note that for 32-bit machines, the interpreter name will be 218 207 <filename>/lib/ld-linux.so.2</filename>.</para> 219 208 … … 243 232 </sect2> 244 233 245 <!-- - - - - - - - - - -->246 <!-- Multilib - 32bit -->247 <!-- - - - - - - - - - -->248 <sect2 arch="ml_32,ml_all">249 <title>Building Glibc - 32bit</title>250 251 <para>Now recompile for m32. The extracted source can be252 reused but needs to be cleaned before installing the m32253 version of Glibc.</para>254 255 <para>Clear the build directory and remove artefacts from256 previous build:</para>257 258 <screen><userinput remap="pre">make clean259 find .. -name "*.a" -delete</userinput></screen>260 261 <para>Configure Glibc for m32 with the following commands:</para>262 263 <screen><userinput remap="configure">CC="$LFS_TGT-gcc -m32" \264 CXX="$LFS_TGT-g++ -m32" \265 ../configure \266 --prefix=/usr \267 --host=$LFS_TGT32 \268 --build=$(../scripts/config.guess) \269 --enable-kernel=&min-kernel; \270 --with-headers=$LFS/usr/include \271 --enable-multi-arch \272 --libdir=/usr/lib32 \273 --libexecdir=/usr/lib32 \274 libc_cv_slibdir=/usr/lib32</userinput></screen>275 276 <para>Compile the package:</para>277 278 <screen><userinput remap="make">make</userinput></screen>279 280 <para>Install the package:</para>281 282 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install283 cp -a DESTDIR/usr/lib32 $LFS/usr/284 install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-32.h \285 $LFS/usr/include/gnu/286 ln -svf ../lib32/ld-linux.so.2 $LFS/lib/ld-linux.so.2</userinput></screen>287 288 289 <caution>290 <para>At this point, it is imperative to stop and ensure that the basic291 functions (compiling and linking) of the new toolchain are working as292 expected. To perform a sanity check, run the following commands:</para>293 294 <screen><userinput>echo 'int main(){}' > dummy.c295 $LFS_TGT-gcc -m32 dummy.c296 readelf -l a.out | grep '/ld-linux'</userinput></screen>297 298 <para>If everything is working correctly, there should be no errors,299 and the output of the last command will be of the form:</para>300 301 <screen><computeroutput>[Requesting program interpreter: /lib/ld-linux.so.2]</computeroutput></screen>302 303 <para>If the output is not shown as above or there was no output at all,304 then something is wrong. Investigate and retrace the steps to find out305 where the problem is and correct it. This issue must be resolved before306 continuing on.</para>307 308 <para>Once all is well, clean up the test files:</para>309 310 <screen><userinput>rm -v dummy.c a.out</userinput></screen>311 312 </caution>313 314 </sect2><!-- m32 -->315 316 <!-- - - - - - - - - - -->317 <!-- Multilib - x32bit -->318 <!-- - - - - - - - - - -->319 320 <sect2 arch="ml_x32,ml_all">321 <title>Building Glibc - x32bit</title>322 323 <para>Now recompile for mx32. The extracted source can be324 reused but needs to be cleaned before installing the mx32325 version of Glibc.</para>326 327 <para>Clear the build directory and remove artefacts from328 previous build:</para>329 330 <screen><userinput remap="pre">make clean331 find .. -name "*.a" -delete</userinput></screen>332 333 <para>Configure Glibc for mx32 with the following commands:</para>334 335 <screen><userinput remap="configure">CC="$LFS_TGT-gcc -mx32" \336 CXX="$LFS_TGT-g++ -mx32" \337 ../configure \338 --prefix=/usr \339 --host=$LFS_TGTX32 \340 --build=$(../scripts/config.guess) \341 --enable-kernel=&min-kernel; \342 --with-headers=$LFS/usr/include \343 --enable-multi-arch \344 --libdir=/usr/libx32 \345 --libexecdir=/usr/libx32 \346 libc_cv_slibdir=/usr/libx32</userinput></screen>347 348 <para>Compile the package:</para>349 350 <screen><userinput remap="make">make</userinput></screen>351 352 <para>Install the package:</para>353 354 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install355 cp -a DESTDIR/usr/libx32 $LFS/usr/356 install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-x32.h \357 $LFS/usr/include/gnu/358 ln -svf ../libx32/ld-linux-x32.so.2 $LFS/lib/ld-linux-x32.so.2</userinput></screen>359 360 <caution>361 <para>At this point, it is imperative to stop and ensure that the basic362 functions (compiling and linking) of the new toolchain are working as363 expected. To perform a sanity check, run the following commands:</para>364 365 <screen><userinput>echo 'int main(){}' > dummy.c366 $LFS_TGT-gcc -mx32 dummy.c367 readelf -l a.out | grep '/ld-linux-x32'</userinput></screen>368 369 <para>If everything is working correctly, there should be no errors,370 and the output of the last command will be of the form:</para>371 372 <screen><computeroutput>[Requesting program interpreter: /libx32/ld-linux-x32.so.2]</computeroutput></screen>373 374 <para>If the output is not shown as above or there was no output at all,375 then something is wrong. Investigate and retrace the steps to find out376 where the problem is and correct it. This issue must be resolved before377 continuing on.</para>378 379 <para>Once all is well, clean up the test files:</para>380 381 <screen><userinput>rm -v dummy.c a.out</userinput></screen>382 383 </caution>384 385 </sect2><!-- mx32 -->386 387 234 <sect2 role="content"> 388 235 <title/> -
chapter05/libstdc++.xml
rc49c1fb re5e442c 61 61 <para>Prepare libstdc++ for compilation:</para> 62 62 63 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../libstdc++-v3/configure \ 64 --host=$LFS_TGT \ 65 --build=$(../config.guess) \ 66 --prefix=/usr \ 67 --enable-multilib \ 68 --disable-nls \ 69 --disable-libstdcxx-pch \ 70 --with-gxx-include-dir=/tools/$LFS_TGT/include/c++/&gcc-version;</userinput></screen> 71 <screen arch="default"><userinput remap="configure">../libstdc++-v3/configure \ 63 <screen><userinput remap="configure">../libstdc++-v3/configure \ 72 64 --host=$LFS_TGT \ 73 65 --build=$(../config.guess) \ … … 87 79 should be used instead of the one in 88 80 <filename>/usr/bin</filename>.</para> 89 </listitem>90 </varlistentry>91 92 <varlistentry arch="ml_32,ml_x32,ml_all">93 <term><parameter>--enable-multilib</parameter></term>94 <listitem>95 <para>Enable building multilib objects.</para>96 81 </listitem> 97 82 </varlistentry> -
chapter06/binutils-pass2.xml
rc49c1fb re5e442c 59 59 <para>Prepare Binutils for compilation:</para> 60 60 61 <screen arch="default"><userinput remap="configure">../configure \61 <screen><userinput remap="configure">../configure \ 62 62 --prefix=/usr \ 63 63 --build=$(../config.guess) \ … … 68 68 --disable-werror \ 69 69 --enable-64-bit-bfd</userinput></screen> 70 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure \71 --prefix=/usr \72 --build=$(../config.guess) \73 --host=$LFS_TGT \74 --disable-nls \75 --enable-shared \76 --enable-gprofng=no \77 --disable-werror \78 --enable-64-bit-bfd \79 --enable-multilib</userinput></screen>80 70 81 71 <variablelist> … … 96 86 <para>Enables 64-bit support (on hosts with narrower word sizes). 97 87 May not be needed on 64-bit systems, but does no harm.</para> 98 </listitem>99 </varlistentry>100 101 <varlistentry arch="ml_32,ml_x32,ml_all">102 <term><parameter>--enable-multilib</parameter></term>103 <listitem>104 <para>Enables multilib support in bintutils.</para>105 88 </listitem> 106 89 </varlistentry> -
chapter06/gcc-pass2.xml
rc49c1fb re5e442c 59 59 mv -v mpc-&mpc-version; mpc</userinput></screen> 60 60 61 62 <para arch="default">If building on x86_64, change the default directory name for 64-bit 61 <para>If building on x86_64, change the default directory name for 64-bit 63 62 libraries to <quote>lib</quote>:</para> 64 63 65 <screen arch="default"><userinput remap="pre">case $(uname -m) in64 <screen><userinput remap="pre">case $(uname -m) in 66 65 x86_64) 67 66 sed -e '/m64=/s/lib64/lib/' -i.orig gcc/config/i386/t-linux64 68 67 ;; 69 68 esac</userinput></screen> 70 71 <para arch="ml_32,ml_x32,ml_all">Change the default directory name for the72 libraries:</para>73 74 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="pre">sed -e '/m64=/s/lib64/lib/' \75 -e '/m32=/s/m32=.*/m32=..\/lib32$(call if_multiarch,:i386-linux-gnu)/' \76 -i.orig gcc/config/i386/t-linux64</userinput></screen>77 69 78 70 <para>Override the building rule of libgcc and libstdc++ headers, to … … 92 84 <para>Now prepare GCC for compilation:</para> 93 85 94 <screen arch="default"><userinput remap="configure">../configure \86 <screen><userinput remap="configure">../configure \ 95 87 --build=$(../config.guess) \ 96 88 --host=$LFS_TGT \ … … 110 102 --disable-libvtv \ 111 103 --enable-languages=c,c++</userinput></screen> 112 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure" 113 arch="ml_32">mlist=m64,m32</userinput><userinput remap="configure" 114 arch="ml_x32">mlist=m64,mx32</userinput><userinput remap="configure" 115 arch="ml_all">mlist=m64,m32,mx32</userinput> 116 <userinput remap="configure">../configure \ 117 --build=$(../config.guess) \ 118 --host=$LFS_TGT \ 119 --target=$LFS_TGT \ 120 LDFLAGS_FOR_TARGET=-L$PWD/$LFS_TGT/libgcc \ 121 --prefix=/usr \ 122 --with-build-sysroot=$LFS \ 123 --enable-initfini-array \ 124 --disable-nls \ 125 --enable-multilib --with-multilib-list=$mlist \ 126 --disable-decimal-float \ 127 --disable-libatomic \ 128 --disable-libgomp \ 129 --disable-libquadmath \ 130 --disable-libssp \ 131 --disable-libvtv \ 132 --enable-languages=c,c++</userinput></screen> 133 <!-- 134 LDFLAGS_FOR_TARGET="-L$PWD/$LFS_TGT/libgcc -L$PWD/$LFS_TGT/32/libgcc -L$PWD/$LFS_TGT/x32/libgcc" \ 135 --> 104 136 105 <variablelist> 137 106 <title>The meaning of the new configure options:</title><!-- WIP --> -
chapter06/ncurses.xml
rc49c1fb re5e442c 190 190 </sect2> 191 191 192 <!-- - - - - - - - - - -->193 <!-- Multilib - 32bit -->194 <!-- - - - - - - - - - -->195 <sect2 arch="ml_32,ml_all">196 <title>Building Ncurses - 32bit</title>197 198 <para>Clean previous build:</para>199 200 <screen><userinput remap="pre">make distclean</userinput></screen>201 202 <para>Prepare Ncurses for compilation:</para>203 204 <screen><userinput remap="configure">CC="$LFS_TGT-gcc -m32" \205 CXX="$LFS_TGT-g++ -m32" \206 ./configure --prefix=/usr \207 --host=$LFS_TGT32 \208 --build=$(./config.guess) \209 --libdir=/usr/lib32 \210 --mandir=/usr/share/man \211 --with-shared \212 --without-normal \213 --with-cxx-shared \214 --without-debug \215 --without-ada \216 --disable-stripping \217 --enable-widec</userinput></screen>218 219 <para>Compile the package:</para>220 221 <screen><userinput remap="make">make</userinput></screen>222 223 <para>Install the package:</para>224 225 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR TIC_PATH=$(pwd)/build/progs/tic install226 ln -s libncursesw.so DESTDIR/usr/lib32/libcursesw.so227 cp -Rv DESTDIR/usr/lib32/* $LFS/usr/lib32228 rm -rf DESTDIR</userinput></screen>229 230 </sect2><!-- m32 -->231 232 <!-- - - - - - - - - - -->233 <!-- Multilib - x32bit -->234 <!-- - - - - - - - - - -->235 <sect2 arch="ml_x32,ml_all">236 <title>Building Ncurses - x32bit</title>237 238 <para>Clean previous build:</para>239 240 <screen><userinput remap="pre">make distclean</userinput></screen>241 242 <para>Prepare Ncurses for compilation:</para>243 244 <screen><userinput remap="configure">CC="$LFS_TGT-gcc -mx32" \245 CXX="$LFS_TGT-g++ -mx32" \246 ./configure --prefix=/usr \247 --host=$LFS_TGTX32 \248 --build=$(./config.guess) \249 --libdir=/usr/libx32 \250 --mandir=/usr/share/man \251 --with-shared \252 --without-normal \253 --with-cxx-shared \254 --without-debug \255 --without-ada \256 --disable-stripping \257 --enable-widec</userinput></screen>258 259 <para>Compile the package:</para>260 261 <screen><userinput remap="make">make</userinput></screen>262 263 <para>Install the package:</para>264 265 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR TIC_PATH=$(pwd)/build/progs/tic install266 ln -s libncursesw.so DESTDIR/usr/libx32/libcursesw.so267 cp -Rv DESTDIR/usr/libx32/* $LFS/usr/libx32268 rm -rf DESTDIR</userinput></screen>269 270 </sect2><!-- mx32 -->271 272 192 <sect2 role="content"> 273 193 <title/> -
chapter07/changingowner.xml
rc49c1fb re5e442c 39 39 esac</userinput></screen> 40 40 41 <para arch="ml_32,ml_x32,ml_all">Some more directories exists for42 multilib support. Change their ownership, too:</para>43 <screen arch="ml_32,ml_x32,ml_all"><userinput arch="ml_32,ml_all">chown -R root:root $LFS/lib32</userinput>44 <userinput arch="ml_x32,ml_all">chown -R root:root $LFS/libx32</userinput></screen>45 46 41 </sect1> -
chapter07/cleanup.xml
rc49c1fb re5e442c 24 24 While still in chroot, remove those files now:</para> 25 25 26 <screen><userinput>find /usr/{lib,libexec} -name \*.la -delete</userinput><userinput arch="ml_32"> 27 find /usr/lib32 -name \*.la -delete</userinput><userinput arch="ml_x32"> 28 find /usr/libx32 -name \*.la -delete</userinput><userinput arch="ml_all"> 29 find /usr/lib{,x}32 -name \*.la -delete</userinput></screen> 26 <screen><userinput>find /usr/{lib,libexec} -name \*.la -delete</userinput></screen> 30 27 31 28 <para> -
chapter07/creatingdirs.xml
rc49c1fb re5e442c 42 42 install -dv -m 1777 /tmp /var/tmp</userinput></screen> 43 43 44 <para arch="ml_32,ml_x32,ml_all">Required directories for multilib45 support has already been created while previous installation steps.</para>46 47 44 <para>Directories are, by default, created with permission mode 755, but 48 45 this is not desirable for all directories. In the commands above, two -
chapter07/util-linux.xml
rc49c1fb re5e442c 127 127 </sect2> 128 128 129 <!-- - - - - - - - - - -->130 <!-- Multilib - 32bit -->131 <!-- - - - - - - - - - -->132 133 <sect2 arch="ml_32,ml_all" role="installation">134 <title>Installation of Util-linux - 32-bit</title>135 136 <para>Clean previous build:</para>137 138 <screen><userinput remap="pre">make distclean</userinput></screen>139 140 <para>Prepare Util-linux for compilation:</para>141 142 <screen><userinput remap="configure">CC="gcc -m32" \143 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \144 --libdir=/usr/lib32 \145 --host=i686-pc-linux-gnu \146 --docdir=/usr/share/doc/util-linux-&util-linux-version; \147 --disable-chfn-chsh \148 --disable-login \149 --disable-nologin \150 --disable-su \151 --disable-setpriv \152 --disable-runuser \153 --disable-pylibmount \154 --disable-static \155 --without-python \156 runstatedir=/run</userinput></screen>157 158 <para>Compile the package:</para>159 160 <screen><userinput remap="make">make</userinput></screen>161 162 <para>Install the package:</para>163 164 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install165 cp -Rv DESTDIR/usr/lib32/* /usr/lib32166 rm -rf DESTDIR</userinput></screen>167 168 </sect2><!-- m32 -->169 170 <!-- - - - - - - - - - -->171 <!-- Multilib - x32bit -->172 <!-- - - - - - - - - - -->173 174 <sect2 arch="ml_x32,ml_all" role="installation">175 <title>Installation of Util-linux - x32-bit</title>176 177 <para>Clean previous build:</para>178 179 <screen><userinput remap="pre">make distclean</userinput></screen>180 181 <para>Prepare Util-linux for compilation:</para>182 183 <screen><userinput remap="configure">CC="gcc -mx32" \184 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \185 --libdir=/usr/libx32 \186 --host=x86_64-pc-linux-gnux32 \187 --docdir=/usr/share/doc/util-linux-&util-linux-version; \188 --disable-chfn-chsh \189 --disable-login \190 --disable-nologin \191 --disable-su \192 --disable-setpriv \193 --disable-runuser \194 --disable-pylibmount \195 --disable-static \196 --without-python \197 runstatedir=/run</userinput></screen>198 199 <para>Compile the package:</para>200 201 <screen><userinput remap="make">make</userinput></screen>202 203 <para>Install the package:</para>204 205 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install206 cp -Rv DESTDIR/usr/libx32/* /usr/libx32207 rm -rf DESTDIR</userinput></screen>208 209 </sect2><!-- mx32 -->210 211 129 <sect2 role="content"> 212 130 <title/> -
chapter08/acl.xml
rc49c1fb re5e442c 64 64 65 65 </sect2> 66 67 <!-- - - - - - - - - - -->68 <!-- Multilib - 32bit -->69 <!-- - - - - - - - - - -->70 71 <sect2 arch="ml_32,ml_all" role="installation">72 <title>Installation of Acl - 32bit</title>73 74 <para>Clean previous build:</para>75 76 <screen><userinput remap="pre">make distclean</userinput></screen>77 78 <para>Prepare Xz for compilation:</para>79 80 <screen><userinput remap="configure">CC="gcc -m32" ./configure \81 --prefix=/usr \82 --disable-static \83 --libdir=/usr/lib32 \84 --libexecdir=/usr/lib32 \85 --host=i686-pc-linux-gnu</userinput></screen>86 87 <para>Compile the package:</para>88 89 <screen><userinput remap="make">make</userinput></screen>90 91 <para>Install the package:</para>92 93 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install94 cp -Rv DESTDIR/usr/lib32/* /usr/lib3295 rm -rf DESTDIR</userinput></screen>96 97 </sect2><!-- m32 -->98 99 <!-- - - - - - - - - - -->100 <!-- Multilib - x32bit -->101 <!-- - - - - - - - - - -->102 103 <sect2 arch="ml_x32,ml_all" role="installation">104 <title>Installation of Acl - x32bit</title>105 106 <para>Clean previous build:</para>107 108 <screen><userinput remap="pre">make distclean</userinput></screen>109 110 <para>Prepare Xz for compilation:</para>111 112 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \113 --prefix=/usr \114 --disable-static \115 --libdir=/usr/libx32 \116 --libexecdir=/usr/libx32 \117 --host=x86_64-pc-linux-gnux32</userinput></screen>118 119 <para>Compile the package:</para>120 121 <screen><userinput remap="make">make</userinput></screen>122 123 <para>Install the package:</para>124 125 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install126 cp -Rv DESTDIR/usr/libx32/* /usr/libx32127 rm -rf DESTDIR</userinput></screen>128 129 </sect2><!-- mx32 -->130 66 131 67 <sect2 id="contents-acl" role="content"> -
chapter08/attr.xml
rc49c1fb re5e442c 65 65 </sect2> 66 66 67 <!-- - - - - - - - - - -->68 <!-- Multilib - 32bit -->69 <!-- - - - - - - - - - -->70 71 <sect2 arch="ml_32,ml_all" role="installation">72 <title>Installation of Attr - 32bit</title>73 74 <para>Clean previous build:</para>75 76 <screen><userinput remap="pre">make distclean</userinput></screen>77 78 <para>Prepare Attr for compilation:</para>79 80 <screen><userinput remap="configure">CC="gcc -m32" ./configure \81 --prefix=/usr \82 --disable-static \83 --sysconfdir=/etc \84 --libdir=/usr/lib32 \85 --host=i686-pc-linux-gnu</userinput></screen>86 87 <para>Compile the package:</para>88 89 <screen><userinput remap="make">make</userinput></screen>90 91 <para>Install the package:</para>92 93 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install94 cp -Rv DESTDIR/usr/lib32/* /usr/lib3295 rm -rf DESTDIR</userinput></screen>96 97 </sect2><!-- m32 -->98 99 <!-- - - - - - - - - - -->100 <!-- Multilib - x32bit -->101 <!-- - - - - - - - - - -->102 103 <sect2 arch="ml_x32,ml_all" role="installation">104 <title>Installation of Attr - x32bit</title>105 106 <para>Clean previous build:</para>107 108 <screen><userinput remap="pre">make distclean</userinput></screen>109 110 <para>Prepare Attr for compilation:</para>111 112 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \113 --prefix=/usr \114 --disable-static \115 --sysconfdir=/etc \116 --libdir=/usr/libx32 \117 --host=x86_64-pc-linux-gnux32</userinput></screen>118 119 <para>Compile the package:</para>120 121 <screen><userinput remap="make">make</userinput></screen>122 123 <para>Install the package:</para>124 125 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install126 cp -Rv DESTDIR/usr/libx32/* /usr/libx32127 rm -rf DESTDIR</userinput></screen>128 129 </sect2><!-- mx32 -->130 131 67 <sect2 id="contents-attr" role="content"> 132 68 <title>Contents of Attr</title> -
chapter08/binutils.xml
rc49c1fb re5e442c 73 73 <para>Prepare Binutils for compilation:</para> 74 74 75 <screen arch="default"><userinput remap="configure">../configure --prefix=/usr \75 <screen><userinput remap="configure">../configure --prefix=/usr \ 76 76 --sysconfdir=/etc \ 77 77 --enable-gold \ … … 82 82 --enable-64-bit-bfd \ 83 83 --with-system-zlib</userinput></screen> 84 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure --prefix=/usr \85 --sysconfdir=/etc \86 --enable-gold \87 --enable-ld=default \88 --enable-plugins \89 --enable-shared \90 --disable-werror \91 --enable-64-bit-bfd \92 --with-system-zlib \93 --enable-multilib</userinput></screen>94 95 84 <variablelist> 96 85 <title>The meaning of the configure parameters:</title> … … 124 113 <para>Enables 64-bit support (on hosts with narrower word sizes). 125 114 May not be needed on 64-bit systems, but does no harm.</para> 126 </listitem>127 </varlistentry>128 129 <varlistentry arch="ml_32,ml_x32,ml_all">130 <term><parameter>--enable-multilib</parameter></term>131 <listitem>132 <para>Enables multilib support in bintutils.</para>133 115 </listitem> 134 116 </varlistentry> -
chapter08/bzip2.xml
rc49c1fb re5e442c 103 103 104 104 </sect2> 105 106 <!-- - - - - - - - - - -->107 <!-- Multilib - 32bit -->108 <!-- - - - - - - - - - -->109 110 <sect2 arch="ml_32,ml_all" role="installation">111 <title>Installation of Bzip2 - 32bit</title>112 113 <para>Clean previous build:</para>114 115 <screen><userinput remap="pre">make clean</userinput></screen>116 117 <para>Compile the package:</para>118 119 <screen><userinput remap="make">sed -e "s/^CC=.*/CC=gcc -m32/" -i Makefile{,-libbz2_so}120 make -f Makefile-libbz2_so121 make libbz2.a</userinput></screen>122 123 <para>Install the package:</para>124 125 <screen><userinput remap="install">install -Dm755 libbz2.so.1.0.8 /usr/lib32/libbz2.so.1.0.8126 ln -sf libbz2.so.1.0.8 /usr/lib32/libbz2.so127 ln -sf libbz2.so.1.0.8 /usr/lib32/libbz2.so.1128 ln -sf libbz2.so.1.0.8 /usr/lib32/libbz2.so.1.0129 install -Dm644 libbz2.a /usr/lib32/libbz2.a</userinput></screen>130 131 </sect2><!-- m32 -->132 133 <!-- - - - - - - - - - -->134 <!-- Multilib - x32bit -->135 <!-- - - - - - - - - - -->136 137 <sect2 arch="ml_x32,ml_all" role="installation">138 <title>Installation of Bzip2 - x32bit</title>139 140 <para>Clean previous build:</para>141 142 <screen><userinput remap="pre">make clean</userinput></screen>143 144 <para>Compile the package:</para>145 146 <screen><userinput remap="make">sed -e "s/^CC=.*/CC=gcc -mx32/" -i Makefile{,-libbz2_so}147 make -f Makefile-libbz2_so148 make libbz2.a</userinput></screen>149 150 <para>Install the package:</para>151 152 <screen><userinput remap="install">install -Dm755 libbz2.so.1.0.8 /usr/libx32/libbz2.so.1.0.8153 ln -sf libbz2.so.1.0.8 /usr/libx32/libbz2.so154 ln -sf libbz2.so.1.0.8 /usr/libx32/libbz2.so.1155 ln -sf libbz2.so.1.0.8 /usr/libx32/libbz2.so.1.0156 install -Dm644 libbz2.a /usr/libx32/libbz2.a</userinput></screen>157 158 </sect2><!-- mx32 -->159 105 160 106 <sect2 id="contents-bzip2" role="content"> -
chapter08/chapter08.xml
rc49c1fb re5e442c 35 35 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="mpfr.xml"/> 36 36 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="mpc.xml"/> 37 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="isl.xml"/>38 37 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="attr.xml"/> 39 38 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="acl.xml"/> -
chapter08/cleanup.xml
rc49c1fb re5e442c 22 22 To remove them, run:</para> 23 23 24 <screen><userinput>find /usr/lib /usr/libexec -name \*.la -delete</userinput><userinput arch="ml_32,ml_all"> 25 find /usr/lib32 -name \*.la -delete</userinput><userinput arch="ml_x32,ml_all"> 26 find /usr/libx32 -name \*.la -delete</userinput></screen> 24 <screen><userinput>find /usr/lib /usr/libexec -name \*.la -delete</userinput></screen> 27 25 28 26 <para>For more information about libtool archive files, see the <ulink -
chapter08/eudev.xml
rc49c1fb re5e442c 84 84 85 85 </sect2> 86 87 <!-- - - - - - - - - - -->88 <!-- Multilib - 32bit -->89 <!-- - - - - - - - - - -->90 91 <sect2 arch="ml_32,ml_all" role="installation">92 <title>Installation of Eudev - 32bit</title>93 94 <para>Clean previous build:</para>95 96 <screen><userinput remap="pre">make distclean</userinput></screen>97 98 <para>Prepare Eudev for compilation:</para>99 100 <screen><userinput remap="configure">CC="gcc -m32" \101 ./configure --host=i686-pc-linux-gnu \102 --prefix=/usr \103 --bindir=/usr/sbin \104 --libdir=/usr/lib32 \105 --sysconfdir=/etc \106 --disable-manpages \107 --disable-static</userinput></screen>108 109 <para>Compile the package:</para>110 111 <screen><userinput remap="make">make</userinput></screen>112 113 <para>Install the package:</para>114 115 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install116 cp -Rv DESTDIR/usr/lib32/* /usr/lib32117 rm -rf DESTDIR</userinput></screen>118 119 </sect2><!-- m32 -->120 121 <!-- - - - - - - - - - -->122 <!-- Multilib - x32bit -->123 <!-- - - - - - - - - - -->124 125 <sect2 arch="ml_x32,ml_all" role="installation">126 <title>Installation of Eudev - x32bit</title>127 128 <para>Clean previous build:</para>129 130 <screen><userinput remap="pre">make distclean</userinput></screen>131 132 <para>Prepare Eudev for compilation:</para>133 134 <screen><userinput remap="configure">CC="gcc -mx32" \135 ./configure --host=x86_64-lfs-linux-gnux32 \136 --prefix=/usr \137 --bindir=/usr/sbin \138 --libdir=/usr/libx32 \139 --sysconfdir=/etc \140 --disable-manpages \141 --disable-static</userinput></screen>142 143 <para>Compile the package:</para>144 145 <screen><userinput remap="make">make</userinput></screen>146 147 <para>Install the package:</para>148 149 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install150 cp -Rv DESTDIR/usr/libx32/* /usr/libx32151 rm -rf DESTDIR</userinput></screen>152 153 </sect2><!-- mx32 -->154 86 155 87 <sect2 id="conf-eudev" role="configuration"> -
chapter08/expat.xml
rc49c1fb re5e442c 66 66 </sect2> 67 67 68 <!-- - - - - - - - - - -->69 <!-- Multilib - 32bit -->70 <!-- - - - - - - - - - -->71 72 <sect2 arch="ml_32,ml_all" role="installation">73 <title>Installation of Expat - 32bit</title>74 75 <para>Clean previous build but keep precompiled doc because it76 cannot be rebuilt in this stage of the system:</para>77 78 <screen><userinput remap="pre">sed -e "/^am__append_1/ s/doc//" -i Makefile79 make clean</userinput></screen>80 81 <para>Prepare Expat for compilation:</para>82 83 <screen><userinput remap="configure">CC="gcc -m32" ./configure \84 --prefix=/usr \85 --disable-static \86 --libdir=/usr/lib32 \87 --host=i686-pc-linux-gnu</userinput></screen>88 89 <para>Compile the package:</para>90 91 <screen><userinput remap="make">make</userinput></screen>92 93 <para>Install the package:</para>94 95 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install96 cp -Rv DESTDIR/usr/lib32/* /usr/lib3297 rm -rf DESTDIR</userinput></screen>98 99 </sect2><!-- m32 -->100 101 <!-- - - - - - - - - - -->102 <!-- Multilib - x32bit -->103 <!-- - - - - - - - - - -->104 105 <sect2 arch="ml_x32,ml_all" role="installation">106 <title>Installation of Expat - x32bit</title>107 108 <para>Clean previous build but keep precompiled doc because it109 cannot be rebuilt in this stage of the system:</para>110 111 <screen><userinput remap="pre">sed -e "/^am__append_1/ s/doc//" -i Makefile112 make clean</userinput></screen>113 114 <para>Prepare Expat for compilation:</para>115 116 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \117 --prefix=/usr \118 --disable-static \119 --libdir=/usr/libx32 \120 --host=x86_64-pc-linux-gnux32</userinput></screen>121 122 <para>Compile the package:</para>123 124 <screen><userinput remap="make">make</userinput></screen>125 126 <para>Install the package:</para>127 128 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install129 cp -Rv DESTDIR/usr/libx32/* /usr/libx32130 rm -rf DESTDIR</userinput></screen>131 132 </sect2><!-- mx32 -->133 134 68 <sect2 id="contents-expat" role="content"> 135 69 <title>Contents of Expat</title> -
chapter08/file.xml
rc49c1fb re5e442c 60 60 </sect2> 61 61 62 <!-- - - - - - - - - - -->63 <!-- Multilib - 32bit -->64 <!-- - - - - - - - - - -->65 66 <sect2 arch="ml_32,ml_all" role="installation">67 <title>Installation of File - 32bit</title>68 69 <para>Clean previous build:</para>70 71 <screen><userinput remap="pre">make distclean</userinput></screen>72 73 <para>Prepare File for compilation:</para>74 75 <screen><userinput remap="configure">CC="gcc -m32" ./configure \76 --prefix=/usr \77 --libdir=/usr/lib32 \78 --host=i686-pc-linux-gnu</userinput></screen>79 80 <para>Compile the package:</para>81 82 <screen><userinput remap="make">make</userinput></screen>83 84 <para>Install the package:</para>85 86 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install87 cp -Rv DESTDIR/usr/lib32/* /usr/lib3288 rm -rf DESTDIR</userinput></screen>89 90 </sect2><!-- m32 -->91 92 <!-- - - - - - - - - - -->93 <!-- Multilib - x32bit -->94 <!-- - - - - - - - - - -->95 96 <sect2 arch="ml_x32,ml_all" role="installation">97 <title>Installation of File - x32bit</title>98 99 <para>Clean previous build:</para>100 101 <screen><userinput remap="pre">make distclean</userinput></screen>102 103 <para>Prepare File for compilation:</para>104 105 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \106 --prefix=/usr \107 --libdir=/usr/libx32 \108 --host=x86_64-pc-linux-gnux32</userinput></screen>109 110 <para>Compile the package:</para>111 112 <screen><userinput remap="make">make</userinput></screen>113 114 <para>Install the package:</para>115 116 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install117 cp -Rv DESTDIR/usr/libx32/* /usr/libx32118 rm -rf DESTDIR</userinput></screen>119 120 </sect2><!-- mx32 -->121 62 122 63 <sect2 id="contents-file" role="content"> -
chapter08/gcc.xml
rc49c1fb re5e442c 58 58 libraries to <quote>lib</quote>:</para> 59 59 60 <screen arch="default"><userinput remap="pre">case $(uname -m) in60 <screen><userinput remap="pre">case $(uname -m) in 61 61 x86_64) 62 62 sed -e '/m64=/s/lib64/lib/' \ … … 65 65 esac</userinput></screen> 66 66 67 <para arch="ml_32,ml_x32,ml_all">Change the default directory name for 64-bit68 libraries to <quote>lib</quote>:</para>69 70 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="pre">sed -e '/m64=/s/lib64/lib/' \71 -e '/m32=/s/m32=.*/m32=..\/lib32$(call if_multiarch,:i386-linux-gnu)/' \72 -i.orig gcc/config/i386/t-linux64</userinput></screen>73 74 67 <para>The GCC documentation recommends building GCC in a dedicated build directory:</para> 75 68 … … 79 72 <para>Prepare GCC for compilation:</para> 80 73 81 <screen arch="default"><userinput remap="configure">../configure --prefix=/usr \74 <screen><userinput remap="configure">../configure --prefix=/usr \ 82 75 LD=ld \ 83 76 --enable-languages=c,c++ \ … … 86 79 --disable-multilib \ 87 80 --disable-bootstrap \ 88 --with-system-zlib</userinput></screen>89 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure"90 arch="ml_32" >mlist=m64,m32</userinput><userinput remap="configure"91 arch="ml_x32">mlist=m64,mx32</userinput><userinput remap="configure"92 arch="ml_all">mlist=m64,m32,mx32</userinput>93 <userinput remap="configure">../configure --prefix=/usr \94 LD=ld \95 --enable-languages=c,c++ \96 --enable-multilib \97 --with-multilib-list=$mlist \98 --disable-bootstrap \99 81 --with-system-zlib</userinput></screen> 100 82 … … 293 275 SEARCH_DIR("/usr/lib");</computeroutput></screen> 294 276 295 <para arch="default">A 32-bit system may see a few different directories. For example, here277 <para>A 32-bit system may see a few different directories. For example, here 296 278 is the output from an i686 machine:</para> 297 279 298 <!-- not using entities here as the dir names has nothing to do with multilib --> 299 <screen arch="default"><computeroutput>SEARCH_DIR("/usr/i686-pc-linux-gnu/lib32") 280 <screen><computeroutput>SEARCH_DIR("/usr/i686-pc-linux-gnu/lib32") 300 281 SEARCH_DIR("/usr/local/lib32") 301 282 SEARCH_DIR("/lib32") -
chapter08/glibc.xml
rc49c1fb re5e442c 71 71 <para>Prepare Glibc for compilation:</para> 72 72 73 <screen arch="default"><userinput remap="configure">../configure --prefix=/usr \73 <screen><userinput remap="configure">../configure --prefix=/usr \ 74 74 --disable-werror \ 75 75 --enable-kernel=&min-kernel; \ 76 76 --enable-stack-protector=strong \ 77 77 --with-headers=/usr/include \ 78 libc_cv_slibdir=/usr/lib</userinput></screen>79 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure --prefix=/usr \80 --disable-werror \81 --enable-kernel=&min-kernel; \82 --enable-stack-protector=strong \83 --with-headers=/usr/include \84 --enable-multi-arch \85 78 libc_cv_slibdir=/usr/lib</userinput></screen> 86 79 … … 492 485 </sect2> 493 486 494 <!-- - - - - - - - - - -->495 <!-- Multilib - 32bit -->496 <!-- - - - - - - - - - -->497 <sect2 arch="ml_32,ml_all">498 <title>Building Glibc - 32bit</title>499 500 <para>Now recompile for m32. The extracted source can be501 reused but needs to be cleaned before installing the m32502 version of Glibc.</para>503 504 <para>Clear the build directory and remove artefacts from505 previous build:</para>506 507 <screen><userinput remap="pre">rm -rf ./*508 find .. -name "*.a" -delete</userinput></screen>509 510 <para>Configure Glibc for m32 with the following commands:</para>511 512 <screen><userinput remap="configure">CC="gcc -m32" CXX="g++ -m32" \513 ../configure \514 --prefix=/usr \515 --host=i686-pc-linux-gnu \516 --build=$(../scripts/config.guess) \517 --enable-kernel=&min-kernel; \518 --with-headers=/usr/include \519 --enable-multi-arch \520 --libdir=/usr/lib32 \521 --libexecdir=/usr/lib32 \522 libc_cv_slibdir=/usr/lib32</userinput></screen>523 524 <para>Compile the package:</para>525 526 <screen><userinput remap="make">make</userinput></screen>527 528 <para>Install the package:</para>529 530 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install531 cp -a DESTDIR/usr/lib32/* /usr/lib32/532 install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-32.h \533 /usr/include/gnu/</userinput></screen>534 <!-- no longer required as they are created in chap5535 ln -svf ../lib32/ld-linux.so.2 /lib/ld-linux.so.2536 -->537 538 <para>Add the library name to the dynamic loader config:</para>539 540 <screen role="install"><userinput>echo "/usr/lib32" >> /etc/ld.so.conf</userinput></screen>541 542 <caution>543 <para>At this point, it is imperative to stop and ensure that the basic544 functions (compiling and linking) of the new toolchain are working as545 expected. To perform a sanity check, run the following commands:</para>546 547 <screen><userinput>echo 'int main(){}' > dummy.c548 gcc -m32 dummy.c549 readelf -l a.out | grep '/ld-linux'</userinput></screen>550 551 <para>If everything is working correctly, there should be no errors,552 and the output of the last command will be of the form:</para>553 554 <screen><computeroutput>[Requesting program interpreter: /lib/ld-linux.so.2]</computeroutput></screen>555 556 <para>If the output is not shown as above or there was no output at all,557 then something is wrong. Investigate and retrace the steps to find out558 where the problem is and correct it. This issue must be resolved before559 continuing on.</para>560 561 <para>Once all is well, clean up the test files:</para>562 563 <screen><userinput>rm -v dummy.c a.out</userinput></screen>564 565 </caution>566 567 </sect2><!-- m32 -->568 569 <!-- - - - - - - - - - -->570 <!-- Multilib - x32bit -->571 <!-- - - - - - - - - - -->572 573 <sect2 arch="ml_x32,ml_all">574 <title>Building Glibc - x32bit</title>575 576 <para>Now recompile for mx32. The extracted source can be577 reused but needs to be cleaned before installing the mx32578 version of Glibc.</para>579 580 <para>Clear the build directory and remove artefacts from581 previous build:</para>582 583 <screen><userinput remap="pre">rm -rf ./*584 find .. -name "*.a" -delete</userinput></screen>585 586 <para>Configure Glibc for mx32 with the following commands:</para>587 588 <screen><userinput remap="configure">CC="gcc -mx32" CXX="g++ -mx32" \589 ../configure \590 --prefix=/usr \591 --host=x86_64-pc-linux-gnux32 \592 --build=$(../scripts/config.guess) \593 --enable-kernel=&min-kernel; \594 --with-headers=/usr/include \595 --enable-multi-arch \596 --libdir=/usr/libx32 \597 --libexecdir=/usr/libx32 \598 libc_cv_slibdir=/usr/libx32</userinput></screen>599 600 <para>Compile the package:</para>601 602 <screen><userinput remap="make">make</userinput></screen>603 604 <para>Install the package:</para>605 606 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install607 cp -a DESTDIR/usr/libx32/* /usr/libx32/608 install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-x32.h \609 /usr/include/gnu/</userinput></screen>610 <!-- no longer required as they are created in chap5611 ln -svf ../libx32/ld-linux-x32.so.2 /lib/ld-linux-x32.so.2612 -->613 <para>Add the library name to the dynamic loader config:</para>614 615 <screen role="install"><userinput>echo "/usr/libx32" >> /etc/ld.so.conf</userinput></screen>616 617 <caution>618 <para>At this point, it is imperative to stop and ensure that the basic619 functions (compiling and linking) of the new toolchain are working as620 expected. To perform a sanity check, run the following commands:</para>621 622 <screen><userinput>echo 'int main(){}' > dummy.c623 gcc -mx32 dummy.c624 readelf -l a.out | grep '/ld-linux-x32'</userinput></screen>625 626 <para>If everything is working correctly, there should be no errors,627 and the output of the last command will be of the form:</para>628 629 <screen><computeroutput>[Requesting program interpreter: /libx32/ld-linux-x32.so.2]</computeroutput></screen>630 631 <para>If the output is not shown as above or there was no output at all,632 then something is wrong. Investigate and retrace the steps to find out633 where the problem is and correct it. This issue must be resolved before634 continuing on.</para>635 636 <para>Once all is well, clean up the test files:</para>637 638 <screen><userinput>rm -v dummy.c a.out</userinput></screen>639 640 </caution>641 642 </sect2><!-- mx32 -->643 644 487 <sect2 id="contents-glibc" role="content"> 645 488 <title>Contents of Glibc</title> -
chapter08/gmp.xml
rc49c1fb re5e442c 121 121 </sect2> 122 122 123 <!-- - - - - - - - - - -->124 <!-- Multilib - 32bit -->125 <!-- - - - - - - - - - -->126 127 <sect2 arch="ml_32,ml_all" role="installation">128 <title>Installation of GMP - 32bit</title>129 130 <para>Clean previous build:</para>131 132 <screen><userinput remap="pre">make distclean</userinput></screen>133 134 <para>Generic libraries can be created by running135 the following:</para>136 137 <screen role="nodump"><userinput remap="pre">cp -v configfsf.guess config.guess138 cp -v configfsf.sub config.sub</userinput></screen>139 140 <para>Prepare GMP for compilation:</para>141 142 <screen><userinput remap="configure">ABI="32" \143 CFLAGS="-m32 -O2 -pedantic -fomit-frame-pointer -mtune=generic -march=i686" \144 CXXFLAGS="$CFLAGS" \145 PKG_CONFIG_PATH="/usr/lib32/pkgconfig" \146 ./configure \147 --host=i686-pc-linux-gnu \148 --prefix=/usr \149 --disable-static \150 --enable-cxx \151 --libdir=/usr/lib32 \152 --includedir=/usr/include/m32/gmp</userinput></screen>153 154 <variablelist>155 <title>The meaning of the new configure options:</title>156 157 <varlistentry>158 <term><parameter>--includedir=/usr/include/m32/gmp</parameter></term>159 <listitem>160 <para>Some definitions in gmp.h differs for each arch but161 has same name. Therefore, the headers must be separated from162 each other.</para>163 </listitem>164 </varlistentry>165 166 </variablelist>167 168 <para>Compile the package:</para>169 170 <screen><userinput remap="make">sed -i 's/$(exec_prefix)\/include/$\(includedir\)/' Makefile171 make</userinput></screen>172 173 <important>174 <para>The test suite for GMP in this section is considered critical.175 Do not skip it under any circumstances.</para>176 </important>177 178 <para>Test the results:</para>179 180 <screen><userinput remap="test">make check 2>&1 | tee gmp-check-log</userinput></screen>181 182 <para>Ensure that all 197 tests in the test suite passed.183 Check the results by issuing the following command:</para>184 185 <screen><userinput remap="test">awk '/# PASS:/{total+=$3} ; END{print total}' gmp-check-log</userinput></screen>186 187 <para>Install the package:</para>188 189 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install190 cp -Rv DESTDIR/usr/lib32/* /usr/lib32191 cp -Rv DESTDIR/usr/include/m32/* /usr/include/m32/192 rm -rf DESTDIR</userinput></screen>193 194 </sect2><!-- m32 -->195 196 <!-- - - - - - - - - - -->197 <!-- Multilib - x32bit -->198 <!-- - - - - - - - - - -->199 200 <sect2 arch="ml_x32,ml_all" role="installation">201 <title>Installation of GMP - x32-bit</title>202 203 <para>Clean previous build:</para>204 205 <screen><userinput remap="pre">make distclean</userinput></screen>206 207 <para>Generic libraries can be created by running208 the following:</para>209 210 <screen role="nodump"><userinput remap="pre">cp -v configfsf.guess config.guess211 cp -v configfsf.sub config.sub</userinput></screen>212 213 <para>Prepare GMP for compilation:</para>214 215 <screen><userinput remap="configure">ABI="x32" \216 CFLAGS="-mx32 -O2 -pedantic -fomit-frame-pointer -mtune=generic -march=x86-64" \217 CXXFLAGS="$CFLAGS" \218 PKG_CONFIG_PATH="/usr/libx32/pkgconfig" \219 ./configure \220 --host=x86_64-pc-linux-gnux32 \221 --prefix=/usr \222 --disable-static \223 --enable-cxx \224 --libdir=/usr/libx32 \225 --includedir=/usr/include/mx32/gmp</userinput></screen>226 227 <para>Compile the package:</para>228 229 <screen><userinput remap="make">sed -i 's/$(exec_prefix)\/include/$\(includedir\)/' Makefile230 make</userinput></screen>231 232 <important>233 <para>The test suite for GMP in this section is considered critical.234 Do not skip it under any circumstances.</para>235 </important>236 237 <para>Test the results:</para>238 239 <screen><userinput remap="test">make check 2>&1 | tee gmp-check-log</userinput></screen>240 241 <para>Ensure that all 197 tests in the test suite passed.242 Check the results by issuing the following command:</para>243 244 <screen><userinput remap="test">awk '/# PASS:/{total+=$3} ; END{print total}' gmp-check-log</userinput></screen>245 246 <para>Install the package:</para>247 248 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install249 cp -Rv DESTDIR/usr/libx32/* /usr/libx32250 cp -Rv DESTDIR/usr/include/mx32/* /usr/include/mx32/251 rm -rf DESTDIR</userinput></screen>252 253 </sect2><!-- mx32 -->254 255 123 <sect2 id="contents-gmp" role="content"> 256 124 <title>Contents of GMP</title> -
chapter08/kmod.xml
rc49c1fb re5e442c 98 98 99 99 </sect2> 100 101 <!-- - - - - - - - - - -->102 <!-- Multilib - 32bit -->103 <!-- - - - - - - - - - -->104 105 <sect2 arch="ml_32,ml_all" role="installation">106 <title>Installation of Kmod - 32bit</title>107 108 <para>Clean previous build but keep man pages as they cannot109 be recreated since xsltproc isn't installed yet:</para>110 111 <screen><userinput remap="pre">sed -e "s/^CLEANFILES =.*/CLEANFILES =/" -i man/Makefile112 make clean</userinput></screen>113 114 <para>Prepare Kmod for compilation:</para>115 116 <screen><userinput remap="configure">CC="gcc -m32" ./configure \117 --host=i686-pc-linux-gnu \118 --prefix=/usr \119 --libdir=/usr/lib32 \120 --sysconfdir=/etc \121 --with-openssl \122 --with-xz \123 --with-zstd \124 --with-zlib \125 --with-rootlibdir=/usr/lib32</userinput></screen>126 127 <para>Compile the package:</para>128 129 <screen><userinput remap="make">make</userinput></screen>130 131 <para>Install the package:</para>132 133 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install134 cp -Rv DESTDIR/usr/lib32/* /usr/lib32135 rm -rf DESTDIR</userinput></screen>136 137 </sect2><!-- m32 -->138 139 <!-- - - - - - - - - - -->140 <!-- Multilib - x32bit -->141 <!-- - - - - - - - - - -->142 143 <sect2 arch="ml_x32,ml_all" role="installation">144 <title>Installation of Kmod - x32bit</title>145 146 <para>Clean previous build but keep man pages as they cannot147 be recreated since xsltproc isn't installed yet:</para>148 149 <screen><userinput remap="pre">sed -e "s/^CLEANFILES =.*/CLEANFILES =/" -i man/Makefile150 make clean</userinput></screen>151 152 <para>Prepare Kmod for compilation:</para>153 154 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \155 --host=x86_64-pc-linux-gnux32 \156 --prefix=/usr \157 --libdir=/usr/libx32 \158 --sysconfdir=/etc \159 --with-openssl \160 --with-xz \161 --with-zstd \162 --with-zlib \163 --with-rootlibdir=/usr/libx32</userinput></screen>164 165 <para>Compile the package:</para>166 167 <screen><userinput remap="make">make</userinput></screen>168 169 <para>Install the package:</para>170 171 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install172 cp -Rv DESTDIR/usr/libx32/* /usr/libx32173 rm -rf DESTDIR</userinput></screen>174 175 </sect2><!-- mx32 -->176 100 177 101 <sect2 id="contents-kmod" role="content"> -
chapter08/libcap.xml
rc49c1fb re5e442c 75 75 76 76 </sect2> 77 78 <!-- - - - - - - - - - -->79 <!-- Multilib - 32bit -->80 <!-- - - - - - - - - - -->81 82 <sect2 arch="ml_32,ml_all" role="installation">83 <title>Installation of Libcap - 32bit</title>84 85 <para>Clean previous build:</para>86 87 <screen><userinput remap="pre">make distclean</userinput></screen>88 89 <para>Compile the package:</para>90 91 <screen><userinput remap="make">make CC="gcc -m32 -march=i686"</userinput></screen>92 93 <para>Install the package:</para>94 95 <screen><userinput remap="install">make CC="gcc -m32 -march=i686" lib=lib32 prefix=$PWD/DESTDIR/usr -C libcap install96 cp -Rv DESTDIR/usr/lib32/* /usr/lib3297 sed -e "s|^libdir=.*|libdir=/usr/lib32|" -i /usr/lib32/pkgconfig/lib{cap,psx}.pc98 chmod -v 755 /usr/lib32/libcap.so.&libcap-version;99 rm -rf DESTDIR</userinput></screen>100 101 </sect2><!-- m32 -->102 103 <!-- - - - - - - - - - -->104 <!-- Multilib - x32bit -->105 <!-- - - - - - - - - - -->106 107 <sect2 arch="ml_x32,ml_all" role="installation">108 <title>Installation of Libcap - x32bit</title>109 110 <para>Clean previous build:</para>111 112 <screen><userinput remap="pre">make distclean</userinput></screen>113 114 <para>Compile the package:</para>115 116 <screen><userinput remap="make">make CC="gcc -mx32 -march=x86-64"</userinput></screen>117 118 <para>Install the package:</para>119 120 <screen><userinput remap="install">make CC="gcc -mx32 -march=x86-64" lib=libx32 prefix=$PWD/DESTDIR/usr -C libcap install121 cp -Rv DESTDIR/usr/libx32/* /usr/libx32122 sed -e "s|^libdir=.*|libdir=/usr/libx32|" -i /usr/libx32/pkgconfig/lib{cap,psx}.pc123 chmod -v 755 /usr/libx32/libcap.so.&libcap-version;124 rm -rf DESTDIR</userinput></screen>125 126 </sect2><!-- mx32 -->127 77 128 78 <sect2 id="contents-libcap" role="content"> -
chapter08/libelf.xml
rc49c1fb re5e442c 69 69 </sect2> 70 70 71 <!-- - - - - - - - - - -->72 <!-- Multilib - 32bit -->73 <!-- - - - - - - - - - -->74 75 <sect2 arch="ml_32,ml_all" role="installation">76 <title>Installation of Libelf - 32bit</title>77 78 <para>Clean previous build:</para>79 80 <screen><userinput remap="pre">make distclean</userinput></screen>81 82 <para>Prepare Libtool for compilation:</para>83 84 <screen><userinput remap="configure">CC="gcc -m32" ./configure \85 --host=i686-pc-linux-gnu \86 --prefix=/usr \87 --libdir=/usr/lib32 \88 --disable-debuginfod \89 --enable-libdebuginfod=dummy</userinput></screen>90 91 <para>Compile the package:</para>92 93 <screen><userinput remap="make">make</userinput></screen>94 95 <para>Install the package:</para>96 97 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR -C libelf install98 install -vDm644 config/libelf.pc DESTDIR/usr/lib32/pkgconfig/libelf.pc99 cp -Rv DESTDIR/usr/lib32/* /usr/lib32100 rm -rf DESTDIR</userinput></screen>101 102 </sect2><!-- m32 -->103 104 <!-- - - - - - - - - - -->105 <!-- Multilib - x32bit -->106 <!-- - - - - - - - - - -->107 108 <sect2 arch="ml_x32,ml_all" role="installation">109 <title>Installation of Libelf - x32bit</title>110 111 <para>Clean previous build:</para>112 113 <screen><userinput remap="pre">make distclean</userinput></screen>114 115 <para>Prepare Libtool for compilation:</para>116 117 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \118 --host=x86_64-pc-linux-gnux32 \119 --prefix=/usr \120 --libdir=/usr/libx32 \121 --disable-debuginfod \122 --enable-libdebuginfod=dummy</userinput></screen>123 124 <para>Compile the package:</para>125 126 <screen><userinput remap="make">make</userinput></screen>127 128 <para>Install the package:</para>129 130 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR -C libelf install131 install -vDm644 config/libelf.pc DESTDIR/usr/libx32/pkgconfig/libelf.pc132 cp -Rv DESTDIR/usr/libx32/* /usr/libx32133 rm -rf DESTDIR</userinput></screen>134 135 </sect2><!-- mx32 -->136 137 71 <sect2 id="contents-elfutils" role="content"> 138 72 <title>Contents of Libelf</title> -
chapter08/libffi.xml
rc49c1fb re5e442c 103 103 </sect2> 104 104 105 <!-- - - - - - - - - - -->106 <!-- Multilib - 32bit -->107 <!-- - - - - - - - - - -->108 109 <sect2 arch="ml_32,ml_all" role="installation">110 <title>Installation of Libffi - 32bit</title>111 112 <para>Clean previous build:</para>113 114 <screen><userinput remap="pre">make distclean</userinput></screen>115 116 <para>Prepare Libffi for compilation:</para>117 118 <screen><userinput remap="configure">CC="gcc -m32" CXX="g++ -m32" ./configure \119 --host=i686-pc-linux-gnu \120 --prefix=/usr \121 --libdir=/usr/lib32 \122 --disable-static \123 --with-gcc-arch=i686 \124 --disable-exec-static-tramp</userinput></screen>125 126 <para>Compile the package:</para>127 128 <screen><userinput remap="make">make</userinput></screen>129 130 <para>To test the results, issue:</para>131 132 <screen><userinput remap="test">make check</userinput></screen>133 134 <para>Install the package:</para>135 136 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install137 cp -Rv DESTDIR/usr/lib32/* /usr/lib32138 rm -rf DESTDIR</userinput></screen>139 140 </sect2><!-- m32 -->141 142 <!-- - - - - - - - - - -->143 <!-- Multilib - x32bit -->144 <!-- - - - - - - - - - -->145 146 <sect2 arch="ml_x32,ml_all" role="installation">147 <title>Installation of Libffi - x32bit</title>148 149 <para>Clean previous build:</para>150 151 <screen><userinput remap="pre">make distclean</userinput></screen>152 153 <para>Prepare Libffi for compilation:</para>154 155 <screen><userinput remap="configure">CC="gcc -mx32" CXX="g++ -mx32" ./configure \156 --host=x86_64-unknown-linux-gnux32 \157 --prefix=/usr \158 --libdir=/usr/libx32 \159 --disable-static \160 --with-gcc-arch=x86_64 \161 --disable-exec-static-tramp</userinput></screen>162 163 <para>Compile the package:</para>164 165 <screen><userinput remap="make">make</userinput></screen>166 167 <para>To test the results, issue:</para>168 169 <screen><userinput remap="test">make check</userinput></screen>170 171 <para>Install the package:</para>172 173 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install174 cp -Rv DESTDIR/usr/libx32/* /usr/libx32175 rm -rf DESTDIR</userinput></screen>176 177 </sect2><!-- mx32 -->178 179 105 <sect2 id="contents-libffi" role="content"> 180 106 <title>Contents of Libffi</title> … … 207 133 208 134 </sect1> 135 -
chapter08/libtool.xml
rc49c1fb re5e442c 78 78 </sect2> 79 79 80 <!-- - - - - - - - - - -->81 <!-- Multilib - 32bit -->82 <!-- - - - - - - - - - -->83 84 <sect2 arch="ml_32,ml_all" role="installation">85 <title>Installation of Libtool - 32bit</title>86 87 <para>Clean previous build:</para>88 89 <screen><userinput remap="pre">make distclean</userinput></screen>90 91 <para>Prepare Libtool for compilation:</para>92 93 <screen><userinput remap="configure">CC="gcc -m32" ./configure \94 --host=i686-pc-linux-gnu \95 --prefix=/usr \96 --libdir=/usr/lib32</userinput></screen>97 98 <para>Compile the package:</para>99 100 <screen><userinput remap="make">make</userinput></screen>101 102 <para>Install the package:</para>103 104 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install105 cp -Rv DESTDIR/usr/lib32/* /usr/lib32106 rm -rf DESTDIR</userinput></screen>107 108 </sect2><!-- m32 -->109 110 <!-- - - - - - - - - - -->111 <!-- Multilib - x32bit -->112 <!-- - - - - - - - - - -->113 114 <sect2 arch="ml_x32,ml_all" role="installation">115 <title>Installation of Libtool - x32bit</title>116 117 <para>Clean previous build:</para>118 119 <screen><userinput remap="pre">make distclean</userinput></screen>120 121 <para>Prepare Libtool for compilation:</para>122 123 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \124 --host=x86_64-pc-linux-gnux32 \125 --prefix=/usr \126 --libdir=/usr/libx32</userinput></screen>127 128 <para>Compile the package:</para>129 130 <screen><userinput remap="make">make</userinput></screen>131 132 <para>Install the package:</para>133 134 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install135 cp -Rv DESTDIR/usr/libx32/* /usr/libx32136 rm -rf DESTDIR</userinput></screen>137 138 </sect2><!-- mx32 -->139 80 140 81 <sect2 id="contents-libtool" role="content"> -
chapter08/ncurses.xml
rc49c1fb re5e442c 174 174 175 175 <screen role="nodump"><userinput>make distclean 176 ./configure --prefix=/usr \ 177 --with-shared \ 178 --without-normal \ 179 --with-cxx-shared \ 180 --without-debug \ 176 ./configure --prefix=/usr \ 177 --with-shared \ 178 --without-normal \ 179 --without-debug \ 181 180 --without-cxx-binding \ 182 181 --with-abi-version=5 … … 186 185 187 186 </sect2> 188 189 <!-- - - - - - - - - - -->190 <!-- Multilib - 32bit -->191 <!-- - - - - - - - - - -->192 <sect2 arch="ml_32,ml_all">193 <title>Building Ncurses - 32bit</title>194 195 <para>Clean previous build:</para>196 197 <screen><userinput remap="pre">make distclean</userinput></screen>198 199 <para>Prepare Ncurses for compilation:</para>200 201 <screen><userinput remap="configure">CC="gcc -m32" CXX="g++ -m32" \202 ./configure --prefix=/usr \203 --host=i686-pc-linux-gnu \204 --libdir=/usr/lib32 \205 --mandir=/usr/share/man \206 --with-shared \207 --without-debug \208 --without-normal \209 --with-cxx-shared \210 --enable-pc-files \211 --enable-widec \212 --with-pkg-config-libdir=/usr/lib32/pkgconfig</userinput></screen>213 214 <para>Compile the package:</para>215 216 <screen><userinput remap="make">make</userinput></screen>217 218 <para>Install the package:</para>219 220 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install221 mkdir -p DESTDIR/usr/lib32/pkgconfig222 for lib in ncurses form panel menu ; do223 rm -vf DESTDIR/usr/lib32/lib${lib}.so224 echo "INPUT(-l${lib}w)" > DESTDIR/usr/lib32/lib${lib}.so225 ln -svf ${lib}w.pc DESTDIR/usr/lib32/pkgconfig/$lib.pc226 done227 rm -vf DESTDIR/usr/lib32/libcursesw.so228 echo "INPUT(-lncursesw)" > DESTDIR/usr/lib32/libcursesw.so229 ln -sfv libncurses.so DESTDIR/usr/lib32/libcurses.so230 cp -Rv DESTDIR/usr/lib32/* /usr/lib32231 rm -rf DESTDIR</userinput></screen>232 233 </sect2><!-- m32 -->234 235 <!-- - - - - - - - - - -->236 <!-- Multilib - x32bit -->237 <!-- - - - - - - - - - -->238 <sect2 arch="ml_x32,ml_all">239 <title>Building Ncurses - x32bit</title>240 241 <para>Clean previous build:</para>242 243 <screen><userinput remap="pre">make distclean</userinput></screen>244 245 <para>Prepare Ncurses for compilation:</para>246 247 <screen><userinput remap="configure">CC="gcc -mx32" CXX="g++ -mx32" \248 ./configure --prefix=/usr \249 --host=x86_64-pc-linux-gnux32 \250 --libdir=/usr/libx32 \251 --mandir=/usr/share/man \252 --with-shared \253 --without-debug \254 --without-normal \255 --enable-pc-files \256 --enable-widec \257 --with-pkg-config-libdir=/usr/libx32/pkgconfig</userinput></screen>258 259 <para>Compile the package:</para>260 261 <screen><userinput remap="make">make</userinput></screen>262 263 <para>Install the package:</para>264 265 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install266 mkdir -p DESTDIR/usr/libx32/pkgconfig267 for lib in ncurses form panel menu ; do268 rm -vf DESTDIR/usr/libx32/lib${lib}.so269 echo "INPUT(-l${lib}w)" > DESTDIR/usr/libx32/lib${lib}.so270 ln -svf ${lib}w.pc DESTDIR/usr/libx32/pkgconfig/$lib.pc271 done272 rm -vf DESTDIR/usr/libx32/libcursesw.so273 echo "INPUT(-lncursesw)" > DESTDIR/usr/libx32/libcursesw.so274 ln -sfv libncurses.so DESTDIR/usr/libx32/libcurses.so275 cp -Rv DESTDIR/usr/libx32/* /usr/libx32276 rm -rf DESTDIR</userinput></screen>277 278 </sect2><!-- mx32 -->279 187 280 188 <sect2 id="contents-ncurses" role="content"> -
chapter08/openssl.xml
rc49c1fb re5e442c 108 108 109 109 </sect2> 110 111 <!-- - - - - - - - - - -->112 <!-- Multilib - 32bit -->113 <!-- - - - - - - - - - -->114 115 <sect2 arch="ml_32,ml_all" role="installation">116 <title>Installation of OpenSSL - 32bit</title>117 118 <para>Clean previous build:</para>119 120 <screen><userinput remap="pre">make distclean</userinput></screen>121 122 <para>Prepare OpenSSL for compilation:</para>123 124 <screen><userinput remap="configure">CFLAGS="-m32 -march=i686 -Wall -O3" CXXFLAGS="$CFLAGS" \125 ./config --prefix=/usr \126 --openssldir=/etc/ssl \127 --libdir=lib32 \128 shared \129 zlib-dynamic \130 linux-generic32</userinput></screen>131 132 <para>Compile the package:</para>133 134 <screen><userinput remap="make">make</userinput></screen>135 136 <para>Install the package:</para>137 138 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install139 cp -Rv DESTDIR/usr/lib32/* /usr/lib32140 rm -rf DESTDIR</userinput></screen>141 142 </sect2><!-- m32 -->143 144 <!-- - - - - - - - - - -->145 <!-- Multilib - x32bit -->146 <!-- - - - - - - - - - -->147 148 <sect2 arch="ml_x32,ml_all" role="installation">149 <title>Installation of OpenSSL - x32bit</title>150 151 <para>Clean previous build:</para>152 153 <screen><userinput remap="pre">make distclean</userinput></screen>154 155 <para>Prepare OpenSSL for compilation:</para>156 157 <screen><userinput remap="configure">CFLAGS="-mx32 -march=x86-64 -Wall -O3" CXXFLAGS="$CFLAGS" \158 ./config --prefix=/usr \159 --openssldir=/etc/ssl \160 --libdir=libx32 \161 shared \162 zlib-dynamic \163 linux-x32</userinput></screen>164 165 <para>Compile the package:</para>166 167 <screen><userinput remap="make">make</userinput></screen>168 169 <para>Install the package:</para>170 171 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install172 cp -Rv DESTDIR/usr/libx32/* /usr/libx32173 rm -rf DESTDIR</userinput></screen>174 175 </sect2><!-- mx32 -->176 110 177 111 <sect2 id="contents-openssl" role="content"> -
chapter08/readline.xml
rc49c1fb re5e442c 101 101 </sect2> 102 102 103 <!-- - - - - - - - - - -->104 <!-- Multilib - 32bit -->105 <!-- - - - - - - - - - -->106 107 <sect2 arch="ml_32,ml_all" role="installation">108 <title>Installation of Readline - 32bit</title>109 110 <para>Clean previous build:</para>111 112 <screen><userinput remap="pre">make distclean</userinput></screen>113 114 <para>Prepare Readline for compilation:</para>115 116 <screen><userinput remap="configure">CC="gcc -m32" ./configure \117 --host=i686-pc-linux-gnu \118 --prefix=/usr \119 --libdir=/usr/lib32 \120 --disable-static \121 --with-curses</userinput></screen>122 123 <para>Compile the package:</para>124 125 <screen><userinput remap="make">make SHLIB_LIBS="-lncursesw"</userinput></screen>126 127 <para>Install the package:</para>128 129 <screen><userinput remap="install">make SHLIB_LIBS="-lncursesw" DESTDIR=$PWD/DESTDIR install130 cp -Rv DESTDIR/usr/lib32/* /usr/lib32131 rm -rf DESTDIR</userinput></screen>132 133 </sect2><!-- m32 -->134 135 <!-- - - - - - - - - - -->136 <!-- Multilib - x32bit -->137 <!-- - - - - - - - - - -->138 139 <sect2 arch="ml_x32,ml_all" role="installation">140 <title>Installation of Readline - x32bit</title>141 142 <para>Clean previous build:</para>143 144 <screen><userinput remap="pre">make distclean</userinput></screen>145 146 <para>Prepare Readline for compilation:</para>147 148 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \149 --host=x86_64-pc-linux-gnux32 \150 --prefix=/usr \151 --libdir=/usr/libx32 \152 --disable-static \153 --with-curses</userinput></screen>154 155 <para>Compile the package:</para>156 157 <screen><userinput remap="make">make SHLIB_LIBS="-lncursesw"</userinput></screen>158 159 <para>Install the package:</para>160 161 <screen><userinput remap="install">make SHLIB_LIBS="-lncursesw" DESTDIR=$PWD/DESTDIR install162 cp -Rv DESTDIR/usr/libx32/* /usr/libx32163 rm -rf DESTDIR</userinput></screen>164 165 </sect2><!-- mx32 -->166 167 103 <sect2 id="contents-readline" role="content"> 168 104 <title>Contents of Readline</title> -
chapter08/stripping.xml
rc49c1fb re5e442c 65 65 66 66 cd /usr/lib 67 67 68 for LIB in $save_usrlib; do 68 69 objcopy --only-keep-debug $LIB $LIB.dbg … … 72 73 install -vm755 /tmp/$LIB /usr/lib 73 74 rm /tmp/$LIB 74 done</userinput> 75 <userinput arch="ml_32,ml_all"> 76 cd /usr/lib32 77 for LIB in $save_usrlib; do 78 objcopy --only-keep-debug $LIB $LIB.dbg 79 cp $LIB /tmp/$LIB 80 strip --strip-unneeded /tmp/$LIB 81 objcopy --add-gnu-debuglink=$LIB.dbg /tmp/$LIB 82 install -vm755 /tmp/$LIB /usr/lib32 83 rm /tmp/$LIB 84 done</userinput> 85 <userinput arch="ml_x32,ml_all"> 86 cd /usr/libx32 87 for LIB in $save_usrlib; do 88 objcopy --only-keep-debug $LIB $LIB.dbg 89 cp $LIB /tmp/$LIB 90 strip --strip-unneeded /tmp/$LIB 91 objcopy --add-gnu-debuglink=$LIB.dbg /tmp/$LIB 92 install -vm755 /tmp/$LIB /usr/libx32 93 rm /tmp/$LIB 94 done</userinput><userinput> 75 done 95 76 96 77 online_usrbin="bash find strip" … … 115 96 install -vm755 /tmp/$LIB /usr/lib 116 97 rm /tmp/$LIB 117 done</userinput><userinput arch="ml_32,ml_all"> 118 for LIB in $online_usrlib; do 119 cp /usr/lib32/$LIB /tmp/$LIB 120 strip --strip-unneeded /tmp/$LIB 121 install -vm755 /tmp/$LIB /usr/lib32 122 rm /tmp/$LIB 123 done</userinput><userinput arch="ml_x32,ml_all"> 124 for LIB in $online_usrlib; do 125 cp /usr/libx32/$LIB /tmp/$LIB 126 strip --strip-unneeded /tmp/$LIB 127 install -vm755 /tmp/$LIB /usr/libx32 128 rm /tmp/$LIB 129 done</userinput><userinput> 98 done 130 99 131 100 for i in $(find /usr/lib -type f -name \*.so* ! -name \*dbg) \ … … 138 107 ;; 139 108 esac 140 done</userinput><userinput arch="ml_32,ml_all"> 141 for i in $(find /usr/lib32 -type f -name \*.so* ! -name \*dbg) \ 142 $(find /usr/lib32 -type f -name \*.a); do 143 case "$online_usrbin $online_usrlib $save_usrlib" in 144 *$(basename $i)* ) 145 ;; 146 * ) strip --strip-unneeded $i 147 ;; 148 esac 149 done</userinput><userinput arch="ml_x32,ml_all"> 150 for i in $(find /usr/libx32 -type f -name \*.so* ! -name \*dbg) \ 151 $(find /usr/libx32 -type f -name \*.a); do 152 case "$online_usrbin $online_usrlib $save_usrlib" in 153 *$(basename $i)* ) 154 ;; 155 * ) strip --strip-unneeded $i 156 ;; 157 esac 158 done</userinput><userinput> 109 done 159 110 160 111 unset BIN LIB save_usrlib online_usrbin online_usrlib -
chapter08/systemd.xml
rc49c1fb re5e442c 213 213 214 214 </sect2> 215 216 <!-- - - - - - - - - - -->217 <!-- Multilib - 32bit -->218 <!-- - - - - - - - - - -->219 220 <sect2 arch="ml_32,ml_all" role="installation">221 <title>Installation of systemd - 32-bit</title>222 223 <para>Clean previous build:</para>224 225 <screen><userinput remap="pre">rm -rf *</userinput></screen>226 227 <para>Create a symlink to work around missing xsltproc:</para>228 229 <!-- screen><userinput remap="pre">ln -sf /tools/bin/true /usr/bin/xsltproc</userinput></screen -->230 <screen><userinput remap="pre">ln -sf /bin/true /usr/bin/xsltproc</userinput></screen>231 232 <!-- with cross-LFS we have util-linux in place:233 <para>Because we have not yet installed the final version of Util-Linux,234 create links to the libraries in the approprite location:</para>235 236 <screen><userinput remap="pre">for file in /tools/lib32/lib{blkid,mount,uuid}*; do237 ln -sf $file /usr/lib32/238 done</userinput></screen>239 -->240 241 <para>Prepare systemd for compilation:</para>242 243 <screen><userinput remap="configure">PKG_CONFIG_PATH="/usr/lib32/pkgconfig" \244 CC="gcc -m32 -march=i686" \245 CXX="g++ -m32 -march=i686" \246 LANG=en_US.UTF-8 \247 meson --prefix=/usr \248 --sysconfdir=/etc \249 --localstatedir=/var \250 -Drootlibdir=/usr/lib32 \251 -Dblkid=true \252 -Ddefault-dnssec=no \253 -Dfirstboot=false \254 -Dinstall-tests=false \255 -Dldconfig=false \256 -Dsysusers=false \257 -Db_lto=false \258 -Drpmmacrosdir=no \259 -Dhomed=false \260 -Duserdb=false \261 -Dman=false \262 -Dmode=release \263 ..</userinput></screen>264 265 <para>Compile the package:</para>266 267 <screen><userinput remap="make">LANG=en_US.UTF-8 ninja</userinput></screen>268 269 <para>Install the package:</para>270 271 <screen><userinput remap="install">LANG=en_US.UTF-8 DESTDIR=$PWD/DESTDIR ninja install272 cp -Rv DESTDIR/usr/lib32/* /usr/lib32273 rm -rf DESTDIR274 rm -f /usr/bin/xsltproc</userinput></screen>275 276 </sect2><!-- m32 -->277 278 <!-- - - - - - - - - - -->279 <!-- Multilib - x32bit -->280 <!-- - - - - - - - - - -->281 282 <sect2 arch="ml_x32,ml_all" role="installation">283 <title>Installation of systemd - x32-bit</title>284 285 <para>Clean previous build:</para>286 287 <screen><userinput remap="pre">rm -rf *</userinput></screen>288 289 <para>Create a symlink to work around missing xsltproc:</para>290 291 <screen><userinput remap="pre">ln -sf /bin/true /usr/bin/xsltproc</userinput></screen>292 <!--293 <para>Fix an issue on x32:</para>294 295 <screen><userinput remap="pre">sed '/log_debug/s@PRI_TIMEX@PRIi64@' -i src/timesync/timesyncd-manager.c296 sed '/long drift_freq;/s@long @int64_t @' -i src/timesync/timesyncd-manager.h</userinput></screen>297 -->298 <para>Prepare systemd for compilation:</para>299 300 <screen><userinput remap="configure">PKG_CONFIG_PATH="/usr/libx32/pkgconfig" \301 CC="gcc -mx32" \302 CXX="g++ -mx32" \303 CFLAGS+="-Wno-error=shift-overflow" \304 CXXFLAGS+="-Wno-error=shift-overflow" \305 LANG=en_US.UTF-8 \306 meson --prefix=/usr \307 --sysconfdir=/etc \308 --localstatedir=/var \309 -Drootlibdir=/usr/libx32 \310 -Dblkid=true \311 -Ddefault-dnssec=no \312 -Dfirstboot=false \313 -Dinstall-tests=false \314 -Dldconfig=false \315 -Dsysusers=false \316 -Db_lto=false \317 -Drpmmacrosdir=no \318 -Dhomed=false \319 -Duserdb=false \320 -Dman=false \321 -Dmode=release \322 ..</userinput></screen>323 324 <para>Compile the package:</para>325 326 <screen><userinput remap="make">LANG=en_US.UTF-8 ninja</userinput></screen>327 328 <para>Install the package:</para>329 330 <screen><userinput remap="install">LANG=en_US.UTF-8 DESTDIR=$PWD/DESTDIR ninja install331 cp -Rv DESTDIR/usr/libx32/* /usr/libx32332 rm -rf DESTDIR333 rm -f /usr/bin/xsltproc</userinput></screen>334 335 </sect2><!-- mx32 -->336 215 337 216 <sect2 id="contents-systemd" role="content"> -
chapter08/util-linux.xml
rc49c1fb re5e442c 113 113 --> 114 114 </sect2> 115 116 <!-- - - - - - - - - - -->117 <!-- Multilib - 32bit -->118 <!-- - - - - - - - - - -->119 120 <sect2 arch="ml_32,ml_all" role="installation">121 <title>Installation of Util-linux - 32-bit</title>122 123 <para>Clean previous build:</para>124 125 <screen><userinput remap="pre">make distclean</userinput></screen>126 127 <para>Move a tool out of the way which is optionally used by128 configure but will report invalid pathes for multilib builds.</para>129 130 <screen><userinput remap="configure">mv /usr/bin/ncursesw6-config{,.tmp}</userinput></screen>131 132 <para>Prepare Util-linux for compilation:</para>133 134 <screen revision="sysv"><userinput remap="configure">CC="gcc -m32" \135 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \136 --host=i686-pc-linux-gnu \137 --libdir=/usr/lib32 \138 --docdir=/usr/share/doc/util-linux-&util-linux-version; \139 --disable-chfn-chsh \140 --disable-login \141 --disable-nologin \142 --disable-su \143 --disable-setpriv \144 --disable-runuser \145 --disable-pylibmount \146 --disable-static \147 --without-python \148 --without-systemd \149 --without-systemdsystemunitdir</userinput></screen>150 151 <screen revision="systemd"><userinput remap="configure">CC="gcc -m32" \152 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \153 --host=i686-pc-linux-gnu \154 --libdir=/usr/lib32 \155 --docdir=/usr/share/doc/util-linux-&util-linux-version; \156 --disable-chfn-chsh \157 --disable-login \158 --disable-nologin \159 --disable-su \160 --disable-setpriv \161 --disable-runuser \162 --disable-pylibmount \163 --disable-static \164 --without-python</userinput></screen>165 166 <para>Restore the tool previously moved away:</para>167 168 <screen><userinput remap="configure">mv /usr/bin/ncursesw6-config{.tmp,}</userinput></screen>169 170 <para>Compile the package:</para>171 172 <screen><userinput remap="make">make</userinput></screen>173 174 <para>Install the package:</para>175 176 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install177 cp -Rv DESTDIR/usr/lib32/* /usr/lib32178 rm -rf DESTDIR</userinput></screen>179 180 </sect2><!-- m32 -->181 182 <!-- - - - - - - - - - -->183 <!-- Multilib - x32bit -->184 <!-- - - - - - - - - - -->185 186 <sect2 arch="ml_x32,ml_all" role="installation">187 <title>Installation of Util-linux - x32-bit</title>188 189 <para>Clean previous build:</para>190 191 <screen><userinput remap="pre">make distclean</userinput></screen>192 193 <para>Move a tool out of the way which is optionally used by194 configure but will report invalid pathes for multilib builds.</para>195 196 <screen><userinput remap="configure">mv /usr/bin/ncursesw6-config{,.tmp}</userinput></screen>197 198 <para>Prepare Util-linux for compilation:</para>199 200 <screen revision="sysv"><userinput remap="configure">CC="gcc -mx32" \201 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \202 --host=x86_64-pc-linux-gnux32 \203 --libdir=/usr/libx32 \204 --docdir=/usr/share/doc/util-linux-&util-linux-version; \205 --disable-chfn-chsh \206 --disable-login \207 --disable-nologin \208 --disable-su \209 --disable-setpriv \210 --disable-runuser \211 --disable-pylibmount \212 --disable-static \213 --without-python \214 --without-systemd \215 --without-systemdsystemunitdir</userinput></screen>216 217 <screen revision="systemd"><userinput remap="configure">CC="gcc -mx32" \218 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \219 --host=x86_64-pc-linux-gnux32 \220 --libdir=/usr/libx32 \221 --docdir=/usr/share/doc/util-linux-&util-linux-version; \222 --disable-chfn-chsh \223 --disable-login \224 --disable-nologin \225 --disable-su \226 --disable-setpriv \227 --disable-runuser \228 --disable-pylibmount \229 --disable-static \230 --without-python</userinput></screen>231 232 <para>Restore the tool previously moved away:</para>233 234 <screen><userinput remap="configure">mv /usr/bin/ncursesw6-config{.tmp,}</userinput></screen>235 236 <para>Compile the package:</para>237 238 <screen><userinput remap="make">make</userinput></screen>239 240 <para>Install the package:</para>241 242 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install243 cp -Rv DESTDIR/usr/libx32/* /usr/libx32244 rm -rf DESTDIR</userinput></screen>245 246 </sect2><!-- mx32 -->247 115 248 116 <sect2 id="contents-utillinux" role="content"> -
chapter08/wheel.xml
rc49c1fb re5e442c 87 87 <seg> 88 88 /usr/lib/python&python-minor;/site-packages/wheel and 89 /usr/lib/python&python-minor;/site-packages/wheel- &wheel-version;-py&python-minor;.egg-info89 /usr/lib/python&python-minor;/site-packages/wheel-0.37.1-py3.10.egg-info 90 90 </seg> 91 91 </seglistitem> -
chapter08/xz.xml
rc49c1fb re5e442c 68 68 69 69 </sect2> 70 71 <!-- - - - - - - - - - -->72 <!-- Multilib - 32bit -->73 <!-- - - - - - - - - - -->74 75 <sect2 arch="ml_32,ml_all" role="installation">76 <title>Installation of Xz - 32bit</title>77 78 <para>Clean previous build:</para>79 80 <screen><userinput remap="pre">make distclean</userinput></screen>81 82 <para>Prepare Xz for compilation:</para>83 84 <screen><userinput remap="configure">CC="gcc -m32" ./configure \85 --host=i686-pc-linux-gnu \86 --prefix=/usr \87 --libdir=/usr/lib32 \88 --disable-static</userinput></screen>89 90 <para>Compile the package:</para>91 92 <screen><userinput remap="make">make</userinput></screen>93 94 <para>Install the package:</para>95 96 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install97 cp -Rv DESTDIR/usr/lib32/* /usr/lib3298 rm -rf DESTDIR</userinput></screen>99 100 </sect2><!-- m32 -->101 102 <!-- - - - - - - - - - -->103 <!-- Multilib - x32bit -->104 <!-- - - - - - - - - - -->105 106 <sect2 arch="ml_x32,ml_all" role="installation">107 <title>Installation of Xz - x32bit</title>108 109 <para>Clean previous build:</para>110 111 <screen><userinput remap="pre">make distclean</userinput></screen>112 113 <para>Prepare Xz for compilation:</para>114 115 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \116 --host=x86_64-pc-linux-gnux32 \117 --prefix=/usr \118 --libdir=/usr/libx32 \119 --disable-static</userinput></screen>120 121 <para>Compile the package:</para>122 123 <screen><userinput remap="make">make</userinput></screen>124 125 <para>Install the package:</para>126 127 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install128 cp -Rv DESTDIR/usr/libx32/* /usr/libx32129 rm -rf DESTDIR</userinput></screen>130 131 </sect2><!-- mx32 -->132 70 133 71 <sect2 id="contents-xz" role="content"> -
chapter08/zlib.xml
rc49c1fb re5e442c 64 64 </sect2> 65 65 66 <!-- - - - - - - - - - -->67 <!-- Multilib - 32bit -->68 <!-- - - - - - - - - - -->69 70 <sect2 arch="ml_32,ml_all" role="installation">71 <title>Installation of Zlib - 32bit</title>72 73 <para>Clean previous build:</para>74 75 <screen><userinput remap="pre">make distclean</userinput></screen>76 77 <para>Prepare Zlib for compilation:</para>78 79 <screen><userinput remap="configure">CFLAGS+="-m32" CXXFLAGS+="-m32" \80 ./configure --prefix=/usr \81 --libdir=/usr/lib32</userinput></screen>82 83 <para>Compile the package:</para>84 85 <screen><userinput remap="make">make</userinput></screen>86 87 <para>Install the package:</para>88 89 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install90 cp -Rv DESTDIR/usr/lib32/* /usr/lib3291 rm -rf DESTDIR</userinput></screen>92 93 </sect2><!-- m32 -->94 95 <!-- - - - - - - - - - -->96 <!-- Multilib - x32bit -->97 <!-- - - - - - - - - - -->98 99 <sect2 arch="ml_x32,ml_all" role="installation">100 <title>Installation of Zlib - x32bit</title>101 102 <screen><userinput remap="pre">make distclean</userinput></screen>103 104 <para>Prepare Zlib for compilation:</para>105 106 <screen><userinput remap="configure">CFLAGS+="-mx32" CXXFLAGS+="-mx32" \107 ./configure --prefix=/usr \108 --libdir=/usr/libx32</userinput></screen>109 110 <para>Compile the package:</para>111 112 <screen><userinput remap="make">make</userinput></screen>113 114 <para>Install the package:</para>115 116 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install117 cp -Rv DESTDIR/usr/libx32/* /usr/libx32118 rm -rf DESTDIR</userinput></screen>119 120 </sect2><!-- mx32 -->121 122 66 <sect2 id="contents-zlib" role="content"> 123 67 <title>Contents of Zlib</title> -
chapter08/zstd.xml
rc49c1fb re5e442c 69 69 70 70 </sect2> 71 72 <!-- - - - - - - - - - -->73 <!-- Multilib - 32bit -->74 <!-- - - - - - - - - - -->75 76 <sect2 arch="ml_32,ml_all" role="installation">77 <title>Installation of Zstd - 32bit</title>78 79 <para>Clean previous build:</para>80 81 <screen><userinput remap="pre">make clean</userinput></screen>82 83 <para>Compile the package:</para>84 85 <screen><userinput remap="make">CC="gcc -m32" make prefix=/usr</userinput></screen>86 87 <para>Install the package:</para>88 89 <screen><userinput remap="install">make prefix=/usr DESTDIR=$PWD/DESTDIR install90 cp -Rv DESTDIR/usr/lib/* /usr/lib32/91 sed -e "/^libdir/s/lib$/lib32/" -i /usr/lib32/pkgconfig/libzstd.pc92 rm -rf DESTDIR</userinput></screen>93 94 </sect2><!-- m32 -->95 96 <!-- - - - - - - - - - -->97 <!-- Multilib - x32bit -->98 <!-- - - - - - - - - - -->99 100 <sect2 arch="ml_x32,ml_all" role="installation">101 <title>Installation of Zstd - x32bit</title>102 103 <para>Clean previous build:</para>104 105 <screen><userinput remap="pre">make clean</userinput></screen>106 107 <para>Compile the package:</para>108 109 <screen><userinput remap="make">CC="gcc -mx32" make prefix=/usr</userinput></screen>110 111 <para>Install the package:</para>112 113 <screen><userinput remap="install">make prefix=/usr DESTDIR=$PWD/DESTDIR install114 cp -Rv DESTDIR/usr/lib/* /usr/libx32/115 sed -e "/^libdir/s/lib$/libx32/" -i /usr/libx32/pkgconfig/libzstd.pc116 rm -rf DESTDIR</userinput></screen>117 118 </sect2><!-- mx32 -->119 71 120 72 <sect2 id="contents-zstd" role="content"> -
chapter10/kernel.xml
rc49c1fb re5e442c 197 197 </note> 198 198 199 <note arch="ml_32,ml_x32,ml_all">200 <para>201 The kernel on a multilib system needs to be able to202 identify and start binaries compiled for different architectures203 than the default.204 </para>205 206 <para arch="ml_32,ml_all">207 If support for any 32bit ABI was built, make sure that the option208 "IA32 Emulation" is selected. The option 'IA32 a.out support' is209 optional.210 </para>211 212 <para arch="ml_x32,ml_all">213 If support for the x32bit ABI was built, make sure that the option214 "x32 ABI for 64-bit mode" is selected.215 </para>216 217 <screen arch="ml_32">Binary Emulations --->218 [*] IA32 Emulation [CONFIG_IA32_EMULATION]219 <M> IA32 a.out support [CONFIG_IA32_AOUT]220 </screen>221 <screen arch="ml_x32">Binary Emulations --->222 [*] x32 ABI for 64-bit mode [CONFIG_X86_X32]223 </screen>224 <screen arch="ml_all">Binary Emulations --->225 [*] IA32 Emulation [CONFIG_IA32_EMULATION]226 <M> IA32 a.out support [CONFIG_IA32_AOUT]227 [*] x32 ABI for 64-bit mode [CONFIG_X86_X32]228 </screen>229 </note>230 231 199 <variablelist> 232 200 <title>The rationale for the above configuration items:</title> -
packages.ent
rc49c1fb re5e442c 351 351 <!ENTITY iproute2-fin-sbu "0.2 SBU"> 352 352 353 <!ENTITY isl-version "0.24">354 <!ENTITY isl-size "2.1 MB">355 <!-- ENTITY isl-url "http://isl.gforge.inria.fr/isl-&isl-version;.tar.xz" -->356 <!ENTITY isl-url "https://gcc.gnu.org/pub/gcc/infrastructure/isl-&isl-version;.tar.bz2">357 <!ENTITY isl-md5 "dd2f7b78e118c25bd96134a52aae7f4d">358 <!ENTITY isl-home "http://isl.gforge.inria.fr/">359 <!ENTITY isl-fin-du "20 MB">360 <!ENTITY isl-fin-sbu "0.1 SBU">361 362 353 <!ENTITY jinja2-version "3.1.2"> 363 354 <!ENTITY jinja2-size "262 KB"> -
prologue/bookinfo.xml
rc49c1fb re5e442c 8 8 <bookinfo> 9 9 <title>Linux From Scratch</title> 10 <subtitle>Version &version;< phrase arch="ml_32,ml_x32,ml_all">-multilib</phrase></subtitle>10 <subtitle>Version &version;</subtitle> 11 11 <subtitle>Published &releasedate;</subtitle> 12 12 … … 29 29 <firstname>Editor: DJ</firstname> 30 30 <surname>Lucas</surname> 31 </author>32 33 <author arch="ml_32,ml_x32,ml_all">34 <firstname>Editor: Thomas</firstname>35 <surname>Trepl</surname>36 31 </author> 37 32 </authorgroup> -
prologue/preface.xml
rc49c1fb re5e442c 16 16 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="architecture.xml"/> 17 17 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="prerequisites.xml"/> 18 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="multilib.xml"/>19 18 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="standards.xml"/> 20 19 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="why.xml"/>
Note:
See TracChangeset
for help on using the changeset viewer.