Changes in / [7f3f152:c04d98d]
- Files:
-
- 3 deleted
- 53 edited
Legend:
- Unmodified
- Added
- Removed
-
Makefile
r7f3f152 rc04d98d 33 33 endif 34 34 35 ifndef ARCH36 ARCH = default37 endif38 ifneq ($(ARCH), default)39 ifneq ($(ARCH), ml_32)40 ifneq ($(ARCH), ml_x32)41 ifneq ($(ARCH), ml_all)42 $(error ARCH must be either 'default' (default if unset), 'ml_32', 'ml_x32' or 'ml_all'.)43 endif44 endif45 endif46 endif47 48 35 book: validate profile-html 49 36 @echo "Generating chunked XHTML files at $(BASEDIR)/ ..." … … 138 125 --xinclude \ 139 126 --stringparam profile.revision $(REV) \ 140 --stringparam profile.arch $(ARCH) \141 127 --output $(RENDERTMP)/lfs-html2.xml \ 142 128 stylesheets/lfs-xsl/profile.xsl \ … … 196 182 --xinclude \ 197 183 --stringparam profile.revision $(REV) \ 198 --stringparam profile.arch $(ARCH) \199 184 --output $(RENDERTMP)/md5sum.xml \ 200 185 stylesheets/lfs-xsl/profile.xsl \ -
chapter01/askforhelp.xml
r7f3f152 rc04d98d 61 61 <itemizedlist> 62 62 <listitem> 63 <para>The version of the book being used (in this case &version; <phrase arch="ml_32,ml_x32,ml_all">-multilib</phrase>)</para>63 <para>The version of the book being used (in this case &version;)</para> 64 64 </listitem> 65 65 <listitem> … … 76 76 </listitem> 77 77 <listitem> 78 <para>Note whether you have deviated from the book at all </para>78 <para>Note whether you have deviated from the book at all </para> 79 79 </listitem> 80 80 </itemizedlist> -
chapter01/changelog.xml
r7f3f152 rc04d98d 11 11 <title>Changelog</title> 12 12 13 <para>This is version &version; <phrase arch="ml_32,ml_x32,ml_all">-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
r7f3f152 rc04d98d 277 277 bash version-check.sh</userinput></screen> 278 278 279 <para arch="ml_32,ml_x32,ml_all"> 280 Building multilib support requires the kernel of the host system 281 to have 32-bit emulation support included. 282 </para> 283 <screen arch="ml_32,ml_x32,ml_all">Binary Emulations ---> 284 [*] IA32 Emulation 285 <M> IA32 a.out support 286 [*] x32 ABI for 64-bit mode 287 </screen> 288 289 <para arch="ml_32,ml_x32,ml_all">The option 'IA32 a.out support' is 290 optional. In case your kernel does not have 'x32 ABI for 64-bit mode' 291 enabled but only 'IA32 Emulation', you can continue to build your 292 system but you have to leave out any sections showing instructions 293 for building x32 objects. If neither 'IA32 Emulation' nor 294 'x32 ABI for 64-bit mode' is enabled, you will run in errors 295 latest when building <application>glibc</application> in Chapter 6, 296 so an upgrade of your host system kernel is required. 297 </para> 298 299 </sect2> 300 279 </sect2> 301 280 </sect1> -
chapter03/packages.xml
r7f3f152 rc04d98d 378 378 379 379 <varlistentry> 380 <term>ISL (&isl-version;) - <token>&isl-size;</token>:</term>381 <listitem>382 <para>Home page: <ulink url="&isl-home;"/></para>383 <para>Download: <ulink url="&isl-url;"/></para>384 <para>MD5 sum: <literal>&isl-md5;</literal></para>385 </listitem>386 </varlistentry>387 388 <varlistentry>389 380 <term>Jinja2 (&jinja2-version;) - <token>&jinja2-size;</token>:</term> 390 381 <listitem> -
chapter04/addinguser.xml
r7f3f152 rc04d98d 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>su</command> command does not complete -
chapter04/creatingminlayout.xml
r7f3f152 rc04d98d 31 31 x86_64) mkdir -pv $LFS/lib64 ;; 32 32 esac</userinput></screen> 33 <screen arch="ml_32"><userinput>mkdir -pv $LFS/usr/lib3234 ln -sv usr/lib32 $LFS/lib32</userinput></screen>35 <screen arch="ml_x32"><userinput>mkdir -pv $LFS/usr/libx3236 ln -sv usr/libx32 $LFS/libx32</userinput></screen>37 <screen arch="ml_all"><userinput>mkdir -pv $LFS/usr/lib{,x}3238 ln -sv usr/lib32 $LFS/lib3239 ln -sv usr/libx32 $LFS/libx32</userinput></screen>40 33 41 34 <para>Programs in <xref linkend="chapter-temporary-tools"/> will be compiled -
chapter04/settingenviron.xml
r7f3f152 rc04d98d 39 39 <filename>.bashrc</filename> file now:</para> 40 40 41 <screen arch="default"><userinput>cat > ~/.bashrc << "EOF"41 <screen><userinput>cat > ~/.bashrc << "EOF" 42 42 <literal>set +h 43 43 umask 022 … … 50 50 CONFIG_SITE=$LFS/usr/share/config.site 51 51 export LFS LC_ALL LFS_TGT PATH CONFIG_SITE</literal> 52 EOF</userinput></screen>53 <screen arch="ml_32,ml_x32,ml_all"><userinput>cat > ~/.bashrc << "EOF"54 <literal>set +h55 umask 02256 LFS=/mnt/lfs57 LC_ALL=POSIX58 LFS_TGT=x86_64-lfs-linux-gnu59 LFS_TGT32=i686-lfs-linux-gnu60 LFS_TGTX32=x86_64-lfs-linux-gnux3261 PATH=/usr/bin62 if [ ! -L /bin ]; then PATH=/bin:$PATH; fi63 PATH=$LFS/tools/bin:$PATH64 CONFIG_SITE=$LFS/usr/share/config.site65 export LFS LC_ALL LFS_TGT LFS_TGT32 LFS_TGTX32 PATH</literal>66 52 EOF</userinput></screen> 67 53 -
chapter05/binutils-pass1.xml
r7f3f152 rc04d98d 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 \ … … 78 78 --disable-werror \ 79 79 --enable-default-hash-style=gnu</userinput></screen> 80 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure --prefix=$LFS/tools \81 --with-sysroot=$LFS \82 --target=$LFS_TGT \83 --disable-nls \84 --enable-gprofng=no \85 --disable-werror \86 --enable-default-hash-style=gnu \87 --enable-multilib</userinput></screen>88 80 89 81 <variablelist> … … 158 150 </varlistentry> 159 151 160 <varlistentry arch="ml_32,ml_x32,ml_all">161 <term><parameter>--enable-multilib</parameter></term>162 <listitem>163 <para>Enables multilib support.</para>164 </listitem>165 </varlistentry>166 167 152 </variablelist> 168 153 -
chapter05/gcc-pass1.xml
r7f3f152 rc04d98d 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 \ … … 109 101 --disable-libstdcxx \ 110 102 --enable-languages=c,c++</userinput></screen> 111 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure"112 arch="ml_32">mlist=m64,m32</userinput><userinput remap="configure"113 arch="ml_x32">mlist=m64,mx32</userinput><userinput remap="configure"114 arch="ml_all">mlist=m64,m32,mx32</userinput>115 <userinput remap="configure">../configure \116 --target=$LFS_TGT \117 --prefix=$LFS/tools \118 --with-glibc-version=&glibc-version; \119 --with-sysroot=$LFS \120 --with-newlib \121 --without-headers \122 --enable-default-pie \123 --enable-default-ssp \124 --enable-initfini-array \125 --disable-nls \126 --disable-shared \127 --enable-multilib --with-multilib-list=$mlist \128 --disable-decimal-float \129 --disable-threads \130 --disable-libatomic \131 --disable-libgomp \132 --disable-libquadmath \133 --disable-libssp \134 --disable-libvtv \135 --disable-libstdcxx \136 --enable-languages=c,c++</userinput></screen>137 138 103 <variablelist> 139 104 <title>The meaning of the configure options:</title> … … 192 157 </varlistentry> 193 158 194 <varlistentry arch="default">159 <varlistentry> 195 160 <term><parameter>--disable-multilib</parameter></term> 196 161 <listitem> 197 162 <para>On x86_64, LFS does not support a multilib configuration. 198 163 This switch is harmless for x86.</para> 199 </listitem>200 </varlistentry>201 <varlistentry arch="ml_32,ml_x32,ml_all">202 <term><parameter>--enable-multilib --with-multilib-list=...</parameter></term>203 <listitem>204 <para>LFS canbe used to support multilib. Which they are is205 specified in the multilib list.</para>206 164 </listitem> 207 165 </varlistentry> -
chapter05/glibc.xml
r7f3f152 rc04d98d 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> … … 90 87 <para>Next, prepare Glibc for compilation:</para> 91 88 92 <screen arch="default"><userinput remap="configure">../configure \89 <screen><userinput remap="configure">../configure \ 93 90 --prefix=/usr \ 94 91 --host=$LFS_TGT \ … … 98 95 --disable-nscd \ 99 96 libc_cv_slibdir=/usr/lib</userinput></screen> 100 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure \101 --prefix=/usr \102 --host=$LFS_TGT \103 --build=$(../scripts/config.guess) \104 --enable-kernel=&min-kernel; \105 --with-headers=$LFS/usr/include \106 --enable-multi-arch \107 libc_cv_slibdir=/usr/lib</userinput></screen>108 97 109 98 <variablelist> … … 225 214 <screen><computeroutput>[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]</computeroutput></screen> 226 215 227 <para arch="default">Note that for 32-bit machines, the interpreter name will be216 <para>Note that for 32-bit machines, the interpreter name will be 228 217 <filename>/lib/ld-linux.so.2</filename>.</para> 229 218 … … 253 242 </sect2> 254 243 255 <!-- - - - - - - - - - -->256 <!-- Multilib - 32bit -->257 <!-- - - - - - - - - - -->258 <sect2 arch="ml_32,ml_all">259 <title>Building Glibc - 32bit</title>260 261 <para>Now recompile for m32. The extracted source can be262 reused but needs to be cleaned before installing the m32263 version of Glibc.</para>264 265 <para>Clear the build directory and remove artefacts from266 previous build:</para>267 268 <screen><userinput remap="pre">make clean269 find .. -name "*.a" -delete</userinput></screen>270 271 <para>Configure Glibc for m32 with the following commands:</para>272 273 <screen><userinput remap="configure">CC="$LFS_TGT-gcc -m32" \274 CXX="$LFS_TGT-g++ -m32" \275 ../configure \276 --prefix=/usr \277 --host=$LFS_TGT32 \278 --build=$(../scripts/config.guess) \279 --enable-kernel=&min-kernel; \280 --with-headers=$LFS/usr/include \281 --enable-multi-arch \282 --libdir=/usr/lib32 \283 --libexecdir=/usr/lib32 \284 libc_cv_slibdir=/usr/lib32</userinput></screen>285 286 <para>Compile the package:</para>287 288 <screen><userinput remap="make">make</userinput></screen>289 290 <para>Install the package:</para>291 292 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install293 cp -a DESTDIR/usr/lib32 $LFS/usr/294 install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-32.h \295 $LFS/usr/include/gnu/296 ln -svf ../lib32/ld-linux.so.2 $LFS/lib/ld-linux.so.2</userinput></screen>297 298 299 <caution>300 <para>At this point, it is imperative to stop and ensure that the basic301 functions (compiling and linking) of the new toolchain are working as302 expected. To perform a sanity check, run the following commands:</para>303 304 <screen><userinput>echo 'int main(){}' > dummy.c305 $LFS_TGT-gcc -m32 dummy.c306 readelf -l a.out | grep '/ld-linux'</userinput></screen>307 308 <para>If everything is working correctly, there should be no errors,309 and the output of the last command will be of the form:</para>310 311 <screen><computeroutput>[Requesting program interpreter: /lib/ld-linux.so.2]</computeroutput></screen>312 313 <para>If the output is not shown as above or there was no output at all,314 then something is wrong. Investigate and retrace the steps to find out315 where the problem is and correct it. This issue must be resolved before316 continuing on.</para>317 318 <para>Once all is well, clean up the test files:</para>319 320 <screen><userinput>rm -v dummy.c a.out</userinput></screen>321 322 </caution>323 324 </sect2><!-- m32 -->325 326 <!-- - - - - - - - - - -->327 <!-- Multilib - x32bit -->328 <!-- - - - - - - - - - -->329 330 <sect2 arch="ml_x32,ml_all">331 <title>Building Glibc - x32bit</title>332 333 <para>Now recompile for mx32. The extracted source can be334 reused but needs to be cleaned before installing the mx32335 version of Glibc.</para>336 337 <para>Clear the build directory and remove artefacts from338 previous build:</para>339 340 <screen><userinput remap="pre">make clean341 find .. -name "*.a" -delete</userinput></screen>342 343 <para>Configure Glibc for mx32 with the following commands:</para>344 345 <screen><userinput remap="configure">CC="$LFS_TGT-gcc -mx32" \346 CXX="$LFS_TGT-g++ -mx32" \347 ../configure \348 --prefix=/usr \349 --host=$LFS_TGTX32 \350 --build=$(../scripts/config.guess) \351 --enable-kernel=&min-kernel; \352 --with-headers=$LFS/usr/include \353 --enable-multi-arch \354 --libdir=/usr/libx32 \355 --libexecdir=/usr/libx32 \356 libc_cv_slibdir=/usr/libx32</userinput></screen>357 358 <para>Compile the package:</para>359 360 <screen><userinput remap="make">make</userinput></screen>361 362 <para>Install the package:</para>363 364 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install365 cp -a DESTDIR/usr/libx32 $LFS/usr/366 install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-x32.h \367 $LFS/usr/include/gnu/368 ln -svf ../libx32/ld-linux-x32.so.2 $LFS/lib/ld-linux-x32.so.2</userinput></screen>369 370 <caution>371 <para>At this point, it is imperative to stop and ensure that the basic372 functions (compiling and linking) of the new toolchain are working as373 expected. To perform a sanity check, run the following commands:</para>374 375 <screen><userinput>echo 'int main(){}' > dummy.c376 $LFS_TGT-gcc -mx32 dummy.c377 readelf -l a.out | grep '/ld-linux-x32'</userinput></screen>378 379 <para>If everything is working correctly, there should be no errors,380 and the output of the last command will be of the form:</para>381 382 <screen><computeroutput>[Requesting program interpreter: /libx32/ld-linux-x32.so.2]</computeroutput></screen>383 384 <para>If the output is not shown as above or there was no output at all,385 then something is wrong. Investigate and retrace the steps to find out386 where the problem is and correct it. This issue must be resolved before387 continuing on.</para>388 389 <para>Once all is well, clean up the test files:</para>390 391 <screen><userinput>rm -v dummy.c a.out</userinput></screen>392 393 </caution>394 395 </sect2><!-- mx32 -->396 397 244 <sect2 role="content"> 398 245 <title/> -
chapter05/libstdc++.xml
r7f3f152 rc04d98d 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
r7f3f152 rc04d98d 65 65 <para>Prepare Binutils for compilation:</para> 66 66 67 <screen arch="default"><userinput remap="configure">../configure \67 <screen><userinput remap="configure">../configure \ 68 68 --prefix=/usr \ 69 69 --build=$(../config.guess) \ … … 75 75 --enable-64-bit-bfd \ 76 76 --enable-default-hash-style=gnu</userinput></screen> 77 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure \78 --prefix=/usr \79 --build=$(../config.guess) \80 --host=$LFS_TGT \81 --disable-nls \82 --enable-shared \83 --enable-gprofng=no \84 --disable-werror \85 --enable-64-bit-bfd \86 --enable-default-hash-style=gnu \87 --enable-multilib</userinput></screen>88 77 89 78 <variablelist> … … 104 93 <para>Enables 64-bit support (on hosts with smaller word sizes). 105 94 This may not be needed on 64-bit systems, but it does no harm.</para> 106 </listitem>107 </varlistentry>108 109 <varlistentry arch="ml_32,ml_x32,ml_all">110 <term><parameter>--enable-multilib</parameter></term>111 <listitem>112 <para>Enables multilib support in bintutils.</para>113 95 </listitem> 114 96 </varlistentry> -
chapter06/gcc-pass2.xml
r7f3f152 rc04d98d 58 58 mv -v mpc-&mpc-version; mpc</userinput></screen> 59 59 60 61 <para arch="default">If building on x86_64, change the default directory name for 64-bit 60 <para>If building on x86_64, change the default directory name for 64-bit 62 61 libraries to <quote>lib</quote>:</para> 63 62 64 <screen arch="default"><userinput remap="pre">case $(uname -m) in63 <screen><userinput remap="pre">case $(uname -m) in 65 64 x86_64) 66 65 sed -e '/m64=/s/lib64/lib/' \ … … 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 \ … … 103 95 --disable-nls \ 104 96 --disable-multilib \ 105 --disable-libatomic \106 --disable-libgomp \107 --disable-libquadmath \108 --disable-libsanitizer \109 --disable-libssp \110 --disable-libvtv \111 --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-default-pie \124 --enable-default-ssp \125 --disable-nls \126 --enable-multilib --with-multilib-list=$mlist \127 97 --disable-libatomic \ 128 98 --disable-libgomp \ -
chapter06/ncurses.xml
r7f3f152 rc04d98d 207 207 </sect2> 208 208 209 <!-- - - - - - - - - - -->210 <!-- Multilib - 32bit -->211 <!-- - - - - - - - - - -->212 <sect2 arch="ml_32,ml_all">213 <title>Building Ncurses - 32bit</title>214 215 <para>Clean previous build:</para>216 217 <screen><userinput remap="pre">make distclean</userinput></screen>218 219 <para>Prepare Ncurses for compilation:</para>220 221 <screen><userinput remap="configure">CC="$LFS_TGT-gcc -m32" \222 CXX="$LFS_TGT-g++ -m32" \223 ./configure --prefix=/usr \224 --host=$LFS_TGT32 \225 --build=$(./config.guess) \226 --libdir=/usr/lib32 \227 --mandir=/usr/share/man \228 --with-shared \229 --without-normal \230 --with-cxx-shared \231 --without-debug \232 --without-ada \233 --disable-stripping</userinput></screen>234 235 <para>Compile the package:</para>236 237 <screen><userinput remap="make">make</userinput></screen>238 239 <para>Install the package:</para>240 241 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR TIC_PATH=$(pwd)/build/progs/tic install242 ln -sv libncursesw.so DESTDIR/usr/lib32/libncurses.so243 cp -Rv DESTDIR/usr/lib32/* $LFS/usr/lib32244 rm -rf DESTDIR</userinput></screen>245 246 </sect2><!-- m32 -->247 248 <!-- - - - - - - - - - -->249 <!-- Multilib - x32bit -->250 <!-- - - - - - - - - - -->251 <sect2 arch="ml_x32,ml_all">252 <title>Building Ncurses - x32bit</title>253 254 <para>Clean previous build:</para>255 256 <screen><userinput remap="pre">make distclean</userinput></screen>257 258 <para>Prepare Ncurses for compilation:</para>259 260 <screen><userinput remap="configure">CC="$LFS_TGT-gcc -mx32" \261 CXX="$LFS_TGT-g++ -mx32" \262 ./configure --prefix=/usr \263 --host=$LFS_TGTX32 \264 --build=$(./config.guess) \265 --libdir=/usr/libx32 \266 --mandir=/usr/share/man \267 --with-shared \268 --without-normal \269 --with-cxx-shared \270 --without-debug \271 --without-ada \272 --disable-stripping</userinput></screen>273 274 <para>Compile the package:</para>275 276 <screen><userinput remap="make">make</userinput></screen>277 278 <para>Install the package:</para>279 280 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR TIC_PATH=$(pwd)/build/progs/tic install281 ln -sv libncursesw.so DESTDIR/usr/libx32/libncurses.so282 cp -Rv DESTDIR/usr/libx32/* $LFS/usr/libx32283 rm -rf DESTDIR</userinput></screen>284 285 </sect2><!-- mx32 -->286 287 209 <sect2 role="content"> 288 210 <title/> -
chapter07/changingowner.xml
r7f3f152 rc04d98d 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
r7f3f152 rc04d98d 24 24 failures. 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
r7f3f152 rc04d98d 43 43 install -dv -m 1777 /tmp /var/tmp</userinput></screen> 44 44 45 <para arch="ml_32,ml_x32,ml_all">Required directories for multilib46 support has already been created while previous installation steps.</para>47 48 45 <para>Directories are, by default, created with permission mode 755, but 49 46 this is not desirable everywhere. In the commands above, two -
chapter07/util-linux.xml
r7f3f152 rc04d98d 128 128 </sect2> 129 129 130 <!-- - - - - - - - - - -->131 <!-- Multilib - 32bit -->132 <!-- - - - - - - - - - -->133 134 <sect2 arch="ml_32,ml_all" role="installation">135 <title>Installation of Util-linux - 32-bit</title>136 137 <para>Clean previous build:</para>138 139 <screen><userinput remap="pre">make distclean</userinput></screen>140 141 <para>Prepare Util-linux for compilation:</para>142 143 <screen><userinput remap="configure">CC="gcc -m32" \144 ./configure --host=i686-pc-linux-gnu \145 --libdir=/usr/lib32 \146 --runstatedir=/run \147 --docdir=/usr/share/doc/util-linux-&util-linux-version; \148 --disable-chfn-chsh \149 --disable-login \150 --disable-nologin \151 --disable-su \152 --disable-setpriv \153 --disable-runuser \154 --disable-pylibmount \155 --disable-static \156 --disable-liblastlog2 \157 --without-python \158 ADJTIME_PATH=/var/lib/hwclock/adjtime</userinput></screen>159 160 <para>Compile the package:</para>161 162 <screen><userinput remap="make">make</userinput></screen>163 164 <para>Install the package:</para>165 166 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install167 cp -Rv DESTDIR/usr/lib32/* /usr/lib32168 rm -rf DESTDIR</userinput></screen>169 170 </sect2><!-- m32 -->171 172 <!-- - - - - - - - - - -->173 <!-- Multilib - x32bit -->174 <!-- - - - - - - - - - -->175 176 <sect2 arch="ml_x32,ml_all" role="installation">177 <title>Installation of Util-linux - x32-bit</title>178 179 <para>Clean previous build:</para>180 181 <screen><userinput remap="pre">make distclean</userinput></screen>182 183 <para>Prepare Util-linux for compilation:</para>184 185 <screen><userinput remap="configure">CC="gcc -mx32" \186 ./configure --host=x86_64-pc-linux-gnux32 \187 --libdir=/usr/libx32 \188 --runstatedir=/run \189 --docdir=/usr/share/doc/util-linux-&util-linux-version; \190 --disable-chfn-chsh \191 --disable-login \192 --disable-nologin \193 --disable-su \194 --disable-setpriv \195 --disable-runuser \196 --disable-pylibmount \197 --disable-static \198 --disable-liblastlog2 \199 --without-python \200 ADJTIME_PATH=/var/lib/hwclock/adjtime</userinput></screen>201 202 <para>Compile the package:</para>203 204 <screen><userinput remap="make">make</userinput></screen>205 206 <para>Install the package:</para>207 208 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install209 cp -Rv DESTDIR/usr/libx32/* /usr/libx32210 rm -rf DESTDIR</userinput></screen>211 212 </sect2><!-- mx32 -->213 214 130 <sect2 role="content"> 215 131 <title/> -
chapter08/acl.xml
r7f3f152 rc04d98d 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 Acl 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 Acl 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
r7f3f152 rc04d98d 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
r7f3f152 rc04d98d 50 50 <para>Prepare Binutils for compilation:</para> 51 51 52 <screen arch="default"><userinput remap="configure">../configure --prefix=/usr \52 <screen><userinput remap="configure">../configure --prefix=/usr \ 53 53 --sysconfdir=/etc \ 54 54 --enable-gold \ … … 60 60 --with-system-zlib \ 61 61 --enable-default-hash-style=gnu</userinput></screen> 62 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure --prefix=/usr \63 --sysconfdir=/etc \64 --enable-gold \65 --enable-ld=default \66 --enable-plugins \67 --enable-shared \68 --disable-werror \69 --enable-64-bit-bfd \70 --with-system-zlib \71 --enable-default-hash-style=gnu \72 --enable-multilib</userinput></screen>73 62 74 63 <variablelist> … … 103 92 <para>Use the installed zlib library instead of building the 104 93 included version.</para> 105 </listitem>106 </varlistentry>107 108 <varlistentry arch="ml_32,ml_x32,ml_all">109 <term><parameter>--enable-multilib</parameter></term>110 <listitem>111 <para>Enables multilib support in bintutils.</para>112 94 </listitem> 113 95 </varlistentry> -
chapter08/bzip2.xml
r7f3f152 rc04d98d 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
r7f3f152 rc04d98d 36 36 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="mpfr.xml"/> 37 37 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="mpc.xml"/> 38 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="isl.xml"/>39 38 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="attr.xml"/> 40 39 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="acl.xml"/> -
chapter08/cleanup.xml
r7f3f152 rc04d98d 22 22 builds. Remove those files now:</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/expat.xml
r7f3f152 rc04d98d 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
r7f3f152 rc04d98d 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
r7f3f152 rc04d98d 45 45 libraries to <quote>lib</quote>:</para> 46 46 47 <screen arch="default"><userinput remap="pre">case $(uname -m) in47 <screen><userinput remap="pre">case $(uname -m) in 48 48 x86_64) 49 49 sed -e '/m64=/s/lib64/lib/' \ … … 52 52 esac</userinput></screen> 53 53 54 <para arch="ml_32,ml_x32,ml_all">Change the default directory name for 64-bit55 libraries to <quote>lib</quote>:</para>56 57 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="pre">sed -e '/m64=/s/lib64/lib/' \58 -e '/m32=/s/m32=.*/m32=..\/lib32$(call if_multiarch,:i386-linux-gnu)/' \59 -i.orig gcc/config/i386/t-linux64</userinput></screen>60 61 54 <para>The GCC documentation recommends building GCC in a dedicated build directory:</para> 62 55 … … 66 59 <para>Prepare GCC for compilation:</para> 67 60 68 <screen arch="default"><userinput remap="configure">../configure --prefix=/usr \61 <screen><userinput remap="configure">../configure --prefix=/usr \ 69 62 LD=ld \ 70 63 --enable-languages=c,c++ \ … … 75 68 --disable-bootstrap \ 76 69 --disable-fixincludes \ 77 --with-system-zlib</userinput></screen>78 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure"79 arch="ml_32" >mlist=m64,m32</userinput><userinput remap="configure"80 arch="ml_x32">mlist=m64,mx32</userinput><userinput remap="configure"81 arch="ml_all">mlist=m64,m32,mx32</userinput>82 <userinput remap="configure">../configure --prefix=/usr \83 LD=ld \84 --enable-languages=c,c++ \85 --enable-default-pie \86 --enable-default-ssp \87 --enable-host-pie \88 --enable-multilib \89 --with-multilib-list=$mlist \90 --disable-bootstrap \91 --disable-fixincludes \92 70 --with-system-zlib</userinput></screen> 93 71 … … 310 288 SEARCH_DIR("/usr/lib");</computeroutput></screen> 311 289 312 <para arch="default">A 32-bit system may use a few other directories. For example, here290 <para>A 32-bit system may use a few other directories. For example, here 313 291 is the output from an i686 machine:</para> 314 292 315 <!-- not using entities here as the dir names has nothing to do with multilib --> 316 <screen arch="default"><computeroutput>SEARCH_DIR("/usr/i686-pc-linux-gnu/lib32") 293 <screen><computeroutput>SEARCH_DIR("/usr/i686-pc-linux-gnu/lib32") 317 294 SEARCH_DIR("/usr/local/lib32") 318 295 SEARCH_DIR("/lib32") -
chapter08/gdbm.xml
r7f3f152 rc04d98d 86 86 </sect2> 87 87 88 <!-- - - - - - - - - - -->89 <!-- Multilib - 32bit -->90 <!-- - - - - - - - - - -->91 92 <sect2 arch="ml_32,ml_all" role="installation">93 <title>Installation of GDBM - 32bit</title>94 95 <para>Clean previous build:</para>96 97 <screen><userinput remap="pre">make distclean</userinput></screen>98 99 <para>Prepare GDBM for compilation:</para>100 101 <screen><userinput remap="configure">CC="gcc -m32" CXX="g++ -m32" ./configure \102 --host=i686-pc-linux-gnu \103 --prefix=/usr \104 --libdir=/usr/lib32 \105 --disable-static \106 --enable-libgdbm-compat</userinput></screen>107 108 <para>Compile the package:</para>109 110 <screen><userinput remap="make">make</userinput></screen>111 112 <para>Install the package:</para>113 114 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install115 cp -Rv DESTDIR/usr/lib32/* /usr/lib32/116 rm -rf DESTDIR</userinput></screen>117 118 </sect2><!-- m32 -->119 120 <!-- - - - - - - - - - -->121 <!-- Multilib - x32bit -->122 <!-- - - - - - - - - - -->123 124 <sect2 arch="ml_x32,ml_all" role="installation">125 <title>Installation of GDBM - x32bit</title>126 127 <para>Clean previous build:</para>128 129 <screen><userinput remap="pre">make distclean</userinput></screen>130 131 <para>Prepare GDBM for compilation:</para>132 133 <screen><userinput remap="configure">CC="gcc -mx32" CXX="g++ -mx32" ./configure \134 --host=x86_64-pc-linux-gnux32 \135 --prefix=/usr \136 --libdir=/usr/libx32 \137 --disable-static \138 --enable-libgdbm-compat</userinput></screen>139 140 <para>Compile the package:</para>141 142 <screen><userinput remap="make">make</userinput></screen>143 144 <para>Install the package:</para>145 146 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install147 cp -Rv DESTDIR/usr/libx32/* /usr/libx32/148 rm -rf DESTDIR</userinput></screen>149 150 </sect2><!-- mx32 -->151 152 88 <sect2 id="contents-gdbm" role="content"> 153 89 <title>Contents of GDBM</title> -
chapter08/glibc.xml
r7f3f152 rc04d98d 69 69 <para>Prepare Glibc for compilation:</para> 70 70 71 <screen arch="default"><userinput remap="configure">../configure --prefix=/usr \71 <screen><userinput remap="configure">../configure --prefix=/usr \ 72 72 --disable-werror \ 73 73 --enable-kernel=&min-kernel; \ 74 74 --enable-stack-protector=strong \ 75 75 --disable-nscd \ 76 libc_cv_slibdir=/usr/lib</userinput></screen>77 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../configure --prefix=/usr \78 --disable-werror \79 --enable-kernel=&min-kernel; \80 --enable-stack-protector=strong \81 --with-headers=/usr/include \82 --enable-multi-arch \83 76 libc_cv_slibdir=/usr/lib</userinput></screen> 84 77 … … 614 607 </sect2> 615 608 616 <!-- - - - - - - - - - -->617 <!-- Multilib - 32bit -->618 <!-- - - - - - - - - - -->619 <sect2 arch="ml_32,ml_all">620 <title>Building Glibc - 32bit</title>621 622 <para>Now recompile for m32. The extracted source can be623 reused but needs to be cleaned before installing the m32624 version of Glibc.</para>625 626 <para>Clear the build directory and remove artefacts from627 previous build:</para>628 629 <screen><userinput remap="pre">rm -rf ./*630 find .. -name "*.a" -delete</userinput></screen>631 632 <para>Configure Glibc for m32 with the following commands:</para>633 634 <screen><userinput remap="configure">CC="gcc -m32" CXX="g++ -m32" \635 ../configure \636 --prefix=/usr \637 --host=i686-pc-linux-gnu \638 --build=$(../scripts/config.guess) \639 --enable-kernel=&min-kernel; \640 --with-headers=/usr/include \641 --enable-multi-arch \642 --libdir=/usr/lib32 \643 --libexecdir=/usr/lib32 \644 libc_cv_slibdir=/usr/lib32</userinput></screen>645 646 <para>Compile the package:</para>647 648 <screen><userinput remap="make">make</userinput></screen>649 650 <para>Install the package:</para>651 652 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install653 cp -a DESTDIR/usr/lib32/* /usr/lib32/654 install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-32.h \655 /usr/include/gnu/</userinput></screen>656 <!-- no longer required as they are created in chap5657 ln -svf ../lib32/ld-linux.so.2 /lib/ld-linux.so.2658 -->659 660 <para>Add the library name to the dynamic loader config:</para>661 662 <screen role="install"><userinput>echo "/usr/lib32" >> /etc/ld.so.conf</userinput></screen>663 664 <caution>665 <para>At this point, it is imperative to stop and ensure that the basic666 functions (compiling and linking) of the new toolchain are working as667 expected. To perform a sanity check, run the following commands:</para>668 669 <screen><userinput>echo 'int main(){}' > dummy.c670 gcc -m32 dummy.c671 readelf -l a.out | grep '/ld-linux'</userinput></screen>672 673 <para>If everything is working correctly, there should be no errors,674 and the output of the last command will be of the form:</para>675 676 <screen><computeroutput>[Requesting program interpreter: /lib/ld-linux.so.2]</computeroutput></screen>677 678 <para>If the output is not shown as above or there was no output at all,679 then something is wrong. Investigate and retrace the steps to find out680 where the problem is and correct it. This issue must be resolved before681 continuing on.</para>682 683 <para>Once all is well, clean up the test files:</para>684 685 <screen><userinput>rm -v dummy.c a.out</userinput></screen>686 687 </caution>688 689 </sect2><!-- m32 -->690 691 <!-- - - - - - - - - - -->692 <!-- Multilib - x32bit -->693 <!-- - - - - - - - - - -->694 695 <sect2 arch="ml_x32,ml_all">696 <title>Building Glibc - x32bit</title>697 698 <para>Now recompile for mx32. The extracted source can be699 reused but needs to be cleaned before installing the mx32700 version of Glibc.</para>701 702 <para>Clear the build directory and remove artefacts from703 previous build:</para>704 705 <screen><userinput remap="pre">rm -rf ./*706 find .. -name "*.a" -delete</userinput></screen>707 708 <para>Configure Glibc for mx32 with the following commands:</para>709 710 <screen><userinput remap="configure">CC="gcc -mx32" CXX="g++ -mx32" \711 ../configure \712 --prefix=/usr \713 --host=x86_64-pc-linux-gnux32 \714 --build=$(../scripts/config.guess) \715 --enable-kernel=&min-kernel; \716 --with-headers=/usr/include \717 --enable-multi-arch \718 --libdir=/usr/libx32 \719 --libexecdir=/usr/libx32 \720 libc_cv_slibdir=/usr/libx32</userinput></screen>721 722 <para>Compile the package:</para>723 724 <screen><userinput remap="make">make</userinput></screen>725 726 <para>Install the package:</para>727 728 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install729 cp -a DESTDIR/usr/libx32/* /usr/libx32/730 install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-x32.h \731 /usr/include/gnu/</userinput></screen>732 <!-- no longer required as they are created in chap5733 ln -svf ../libx32/ld-linux-x32.so.2 /lib/ld-linux-x32.so.2734 -->735 <para>Add the library name to the dynamic loader config:</para>736 737 <screen role="install"><userinput>echo "/usr/libx32" >> /etc/ld.so.conf</userinput></screen>738 739 <caution>740 <para>At this point, it is imperative to stop and ensure that the basic741 functions (compiling and linking) of the new toolchain are working as742 expected. To perform a sanity check, run the following commands:</para>743 744 <screen><userinput>echo 'int main(){}' > dummy.c745 gcc -mx32 dummy.c746 readelf -l a.out | grep '/ld-linux-x32'</userinput></screen>747 748 <para>If everything is working correctly, there should be no errors,749 and the output of the last command will be of the form:</para>750 751 <screen><computeroutput>[Requesting program interpreter: /libx32/ld-linux-x32.so.2]</computeroutput></screen>752 753 <para>If the output is not shown as above or there was no output at all,754 then something is wrong. Investigate and retrace the steps to find out755 where the problem is and correct it. This issue must be resolved before756 continuing on.</para>757 758 <para>Once all is well, clean up the test files:</para>759 760 <screen><userinput>rm -v dummy.c a.out</userinput></screen>761 762 </caution>763 764 </sect2><!-- mx32 -->765 766 609 <sect2 id="contents-glibc" role="content"> 767 610 <title>Contents of Glibc</title> -
chapter08/gmp.xml
r7f3f152 rc04d98d 126 126 </sect2> 127 127 128 <!-- - - - - - - - - - -->129 <!-- Multilib - 32bit -->130 <!-- - - - - - - - - - -->131 132 <sect2 arch="ml_32,ml_all" role="installation">133 <title>Installation of GMP - 32bit</title>134 135 <para>Clean previous build:</para>136 137 <screen><userinput remap="pre">make distclean</userinput></screen>138 139 <para>Generic libraries can be created by running140 the following:</para>141 142 <screen role="nodump"><userinput remap="pre">cp -v configfsf.guess config.guess143 cp -v configfsf.sub config.sub</userinput></screen>144 145 <para>Prepare GMP for compilation:</para>146 147 <screen><userinput remap="configure">ABI="32" \148 CFLAGS="-m32 -O2 -pedantic -fomit-frame-pointer -mtune=generic -march=i686" \149 CXXFLAGS="$CFLAGS" \150 PKG_CONFIG_PATH="/usr/lib32/pkgconfig" \151 ./configure \152 --host=i686-pc-linux-gnu \153 --prefix=/usr \154 --disable-static \155 --enable-cxx \156 --libdir=/usr/lib32 \157 --includedir=/usr/include/m32/gmp</userinput></screen>158 159 <variablelist>160 <title>The meaning of the new configure options:</title>161 162 <varlistentry>163 <term><parameter>--includedir=/usr/include/m32/gmp</parameter></term>164 <listitem>165 <para>Some definitions in gmp.h differs for each arch but166 has same name. Therefore, the headers must be separated from167 each other.</para>168 </listitem>169 </varlistentry>170 171 </variablelist>172 173 <para>Compile the package:</para>174 175 <screen><userinput remap="make">sed -i 's/$(exec_prefix)\/include/$\(includedir\)/' Makefile176 make</userinput></screen>177 178 <important>179 <para>The test suite for GMP in this section is considered critical.180 Do not skip it under any circumstances.</para>181 </important>182 183 <para>Test the results:</para>184 185 <screen><userinput remap="test">make check 2>&1 | tee gmp-check-log</userinput></screen>186 187 <para>Ensure that all 197 tests in the test suite passed.188 Check the results by issuing the following command:</para>189 190 <screen><userinput remap="test">awk '/# PASS:/{total+=$3} ; END{print total}' gmp-check-log</userinput></screen>191 192 <para>Install the package:</para>193 194 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install195 cp -Rv DESTDIR/usr/lib32/* /usr/lib32196 cp -Rv DESTDIR/usr/include/m32/* /usr/include/m32/197 rm -rf DESTDIR</userinput></screen>198 199 </sect2><!-- m32 -->200 201 <!-- - - - - - - - - - -->202 <!-- Multilib - x32bit -->203 <!-- - - - - - - - - - -->204 205 <sect2 arch="ml_x32,ml_all" role="installation">206 <title>Installation of GMP - x32-bit</title>207 208 <para>Clean previous build:</para>209 210 <screen><userinput remap="pre">make distclean</userinput></screen>211 212 <para>Generic libraries can be created by running213 the following:</para>214 215 <screen role="nodump"><userinput remap="pre">cp -v configfsf.guess config.guess216 cp -v configfsf.sub config.sub</userinput></screen>217 218 <para>Prepare GMP for compilation:</para>219 220 <screen><userinput remap="configure">ABI="x32" \221 CFLAGS="-mx32 -O2 -pedantic -fomit-frame-pointer -mtune=generic -march=x86-64" \222 CXXFLAGS="$CFLAGS" \223 PKG_CONFIG_PATH="/usr/libx32/pkgconfig" \224 ./configure \225 --host=x86_64-pc-linux-gnux32 \226 --prefix=/usr \227 --disable-static \228 --enable-cxx \229 --libdir=/usr/libx32 \230 --includedir=/usr/include/mx32/gmp</userinput></screen>231 232 <para>Compile the package:</para>233 234 <screen><userinput remap="make">sed -i 's/$(exec_prefix)\/include/$\(includedir\)/' Makefile235 make</userinput></screen>236 237 <important>238 <para>The test suite for GMP in this section is considered critical.239 Do not skip it under any circumstances.</para>240 </important>241 242 <para>Test the results:</para>243 244 <screen><userinput remap="test">make check 2>&1 | tee gmp-check-log</userinput></screen>245 246 <para>Ensure that all 197 tests in the test suite passed.247 Check the results by issuing the following command:</para>248 249 <screen><userinput remap="test">awk '/# PASS:/{total+=$3} ; END{print total}' gmp-check-log</userinput></screen>250 251 <para>Install the package:</para>252 253 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install254 cp -Rv DESTDIR/usr/libx32/* /usr/libx32255 cp -Rv DESTDIR/usr/include/mx32/* /usr/include/mx32/256 rm -rf DESTDIR</userinput></screen>257 258 </sect2><!-- mx32 -->259 260 128 <sect2 id="contents-gmp" role="content"> 261 129 <title>Contents of GMP</title> -
chapter08/kmod.xml
r7f3f152 rc04d98d 100 100 101 101 </sect2> 102 103 <!-- - - - - - - - - - -->104 <!-- Multilib - 32bit -->105 <!-- - - - - - - - - - -->106 107 <sect2 arch="ml_32,ml_all" role="installation">108 <title>Installation of Kmod - 32bit</title>109 110 <para>Clean previous build but keep man pages as they cannot111 be recreated since xsltproc isn't installed yet:</para>112 113 <screen><userinput remap="pre">sed -e "s/^CLEANFILES =.*/CLEANFILES =/" -i man/Makefile114 make clean</userinput></screen>115 116 <para>Prepare Kmod for compilation:</para>117 118 <screen><userinput remap="configure">CC="gcc -m32" ./configure \119 --host=i686-pc-linux-gnu \120 --prefix=/usr \121 --libdir=/usr/lib32 \122 --sysconfdir=/etc \123 --with-openssl \124 --with-xz \125 --with-zstd \126 --with-zlib \127 --with-rootlibdir=/usr/lib32</userinput></screen>128 129 <para>Compile the package:</para>130 131 <screen><userinput remap="make">make</userinput></screen>132 133 <para>Install the package:</para>134 135 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install136 cp -Rv DESTDIR/usr/lib32/* /usr/lib32137 rm -rf DESTDIR</userinput></screen>138 139 </sect2><!-- m32 -->140 141 <!-- - - - - - - - - - -->142 <!-- Multilib - x32bit -->143 <!-- - - - - - - - - - -->144 145 <sect2 arch="ml_x32,ml_all" role="installation">146 <title>Installation of Kmod - x32bit</title>147 148 <para>Clean previous build but keep man pages as they cannot149 be recreated since xsltproc isn't installed yet:</para>150 151 <screen><userinput remap="pre">sed -e "s/^CLEANFILES =.*/CLEANFILES =/" -i man/Makefile152 make clean</userinput></screen>153 154 <para>Prepare Kmod for compilation:</para>155 156 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \157 --host=x86_64-pc-linux-gnux32 \158 --prefix=/usr \159 --libdir=/usr/libx32 \160 --sysconfdir=/etc \161 --with-openssl \162 --with-xz \163 --with-zstd \164 --with-zlib \165 --with-rootlibdir=/usr/libx32</userinput></screen>166 167 <para>Compile the package:</para>168 169 <screen><userinput remap="make">make</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 102 179 103 <sect2 id="contents-kmod" role="content"> -
chapter08/libcap.xml
r7f3f152 rc04d98d 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
r7f3f152 rc04d98d 67 67 </sect2> 68 68 69 <!-- - - - - - - - - - -->70 <!-- Multilib - 32bit -->71 <!-- - - - - - - - - - -->72 73 <sect2 arch="ml_32,ml_all" role="installation">74 <title>Installation of Libelf - 32bit</title>75 76 <para>Clean previous build:</para>77 78 <screen><userinput remap="pre">make distclean</userinput></screen>79 80 <para>Prepare Libelf for compilation:</para>81 82 <screen><userinput remap="configure">CC="gcc -m32" CXX="g++ -m32" ./configure \83 --host=i686-pc-linux-gnu \84 --prefix=/usr \85 --libdir=/usr/lib32 \86 --disable-debuginfod \87 --enable-libdebuginfod=dummy</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 -C libelf install96 install -vDm644 config/libelf.pc DESTDIR/usr/lib32/pkgconfig/libelf.pc97 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 Libelf - x32bit</title>108 109 <para>Clean previous build:</para>110 111 <screen><userinput remap="pre">make distclean</userinput></screen>112 113 <para>Prepare Libelf for compilation:</para>114 115 <screen><userinput remap="configure">CC="gcc -mx32" CXX="g++ -mx32" ./configure \116 --host=x86_64-pc-linux-gnux32 \117 --prefix=/usr \118 --libdir=/usr/libx32 \119 --disable-debuginfod \120 --enable-libdebuginfod=dummy</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 -C libelf install129 install -vDm644 config/libelf.pc DESTDIR/usr/libx32/pkgconfig/libelf.pc130 cp -Rv DESTDIR/usr/libx32/* /usr/libx32131 rm -rf DESTDIR</userinput></screen>132 133 </sect2><!-- mx32 -->134 135 69 <sect2 id="contents-elfutils" role="content"> 136 70 <title>Contents of Libelf</title> -
chapter08/libffi.xml
r7f3f152 rc04d98d 97 97 </sect2> 98 98 99 <!-- - - - - - - - - - -->100 <!-- Multilib - 32bit -->101 <!-- - - - - - - - - - -->102 103 <sect2 arch="ml_32,ml_all" role="installation">104 <title>Installation of Libffi - 32bit</title>105 106 <para>Clean previous build:</para>107 108 <screen><userinput remap="pre">make distclean</userinput></screen>109 110 <para>Prepare Libffi for compilation:</para>111 112 <screen><userinput remap="configure">CC="gcc -m32" CXX="g++ -m32" ./configure \113 --host=i686-pc-linux-gnu \114 --prefix=/usr \115 --libdir=/usr/lib32 \116 --disable-static \117 --with-gcc-arch=i686</userinput></screen>118 119 <para>Compile the package:</para>120 121 <screen><userinput remap="make">make</userinput></screen>122 123 <para>To test the results, issue:</para>124 125 <screen><userinput remap="test">make check</userinput></screen>126 127 <para>Install the package:</para>128 129 <screen><userinput remap="install">make 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 Libffi - x32bit</title>141 142 <para>Clean previous build:</para>143 144 <screen><userinput remap="pre">make distclean</userinput></screen>145 146 <para>Prepare Libffi for compilation:</para>147 148 <screen><userinput remap="configure">CC="gcc -mx32" CXX="g++ -mx32" ./configure \149 --host=x86_64-unknown-linux-gnux32 \150 --prefix=/usr \151 --libdir=/usr/libx32 \152 --disable-static \153 --with-gcc-arch=x86_64</userinput></screen>154 155 <para>Compile the package:</para>156 157 <screen><userinput remap="make">make</userinput></screen>158 159 <para>To test the results, issue:</para>160 161 <screen><userinput remap="test">make check</userinput></screen>162 163 <para>Install the package:</para>164 165 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install166 cp -Rv DESTDIR/usr/libx32/* /usr/libx32167 rm -rf DESTDIR</userinput></screen>168 169 </sect2><!-- mx32 -->170 171 99 <sect2 id="contents-libffi" role="content"> 172 100 <title>Contents of Libffi</title> … … 199 127 200 128 </sect1> 129 -
chapter08/libtool.xml
r7f3f152 rc04d98d 74 74 </sect2> 75 75 76 <!-- - - - - - - - - - -->77 <!-- Multilib - 32bit -->78 <!-- - - - - - - - - - -->79 80 <sect2 arch="ml_32,ml_all" role="installation">81 <title>Installation of Libtool - 32bit</title>82 83 <para>Clean previous build:</para>84 85 <screen><userinput remap="pre">make distclean</userinput></screen>86 87 <para>Prepare Libtool for compilation:</para>88 89 <screen><userinput remap="configure">CC="gcc -m32" ./configure \90 --host=i686-pc-linux-gnu \91 --prefix=/usr \92 --libdir=/usr/lib32</userinput></screen>93 94 <para>Compile the package:</para>95 96 <screen><userinput remap="make">make</userinput></screen>97 98 <para>Install the package:</para>99 100 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install101 cp -Rv DESTDIR/usr/lib32/* /usr/lib32102 rm -rf DESTDIR</userinput></screen>103 104 </sect2><!-- m32 -->105 106 <!-- - - - - - - - - - -->107 <!-- Multilib - x32bit -->108 <!-- - - - - - - - - - -->109 110 <sect2 arch="ml_x32,ml_all" role="installation">111 <title>Installation of Libtool - x32bit</title>112 113 <para>Clean previous build:</para>114 115 <screen><userinput remap="pre">make distclean</userinput></screen>116 117 <para>Prepare Libtool for compilation:</para>118 119 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \120 --host=x86_64-pc-linux-gnux32 \121 --prefix=/usr \122 --libdir=/usr/libx32</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 install131 cp -Rv DESTDIR/usr/libx32/* /usr/libx32132 rm -rf DESTDIR</userinput></screen>133 134 </sect2><!-- mx32 -->135 76 136 77 <sect2 id="contents-libtool" role="content"> -
chapter08/libxcrypt.xml
r7f3f152 rc04d98d 116 116 </sect2> 117 117 118 <!-- - - - - - - - - - -->119 <!-- Multilib - 32bit -->120 <!-- - - - - - - - - - -->121 <sect2 arch="ml_32,ml_all" role="installation">122 <title>Installation of Libxcrypt - 32bit</title>123 124 <para>Clean previous build:</para>125 126 <screen><userinput remap="pre">make distclean</userinput></screen>127 128 <para>Prepare Libxcrypt for compilation:</para>129 130 <screen><userinput remap="configure">CC="gcc -m32" \131 ./configure --prefix=/usr \132 --host=i686-pc-linux-gnu \133 --libdir=/usr/lib32 \134 --enable-hashes=strong,glibc \135 --enable-obsolete-api=glibc \136 --disable-static \137 --disable-failure-tokens</userinput></screen>138 139 <para>Compile the package:</para>140 141 <screen><userinput remap="make">make</userinput></screen>142 143 <para>Install the package:</para>144 145 <screen><userinput remap="install">cp -av .libs/libcrypt.so* /usr/lib32/ &&146 make install-pkgconfigDATA &&147 ln -svf libxcrypt.pc /usr/lib32/pkgconfig/libcrypt.pc</userinput></screen>148 149 </sect2><!-- m32 -->150 151 <!-- - - - - - - - - - -->152 <!-- Multilib - x32bit -->153 <!-- - - - - - - - - - -->154 <sect2 arch="ml_x32,ml_all" role="installation">155 <title>Installation of Libxcrypt - x32bit</title>156 157 <para>Clean previous build:</para>158 159 <screen><userinput remap="pre">make distclean</userinput></screen>160 161 <para>Prepare Libxcrypt for compilation:</para>162 163 <screen><userinput remap="configure">CC="gcc -mx32" \164 ./configure --prefix=/usr \165 --host=x86_64-pc-linux-gnux32 \166 --libdir=/usr/libx32 \167 --enable-hashes=strong,glibc \168 --enable-obsolete-api=glibc \169 --disable-static \170 --disable-failure-tokens</userinput></screen>171 172 <para>Compile the package:</para>173 174 <screen><userinput remap="make">make</userinput></screen>175 176 <para>Install the package:</para>177 178 <screen><userinput remap="install">cp -av .libs/libcrypt.so* /usr/libx32/ &&179 make install-pkgconfigDATA &&180 ln -svf libxcrypt.pc /usr/libx32/pkgconfig/libcrypt.pc</userinput></screen>181 182 </sect2><!-- mx32 -->183 184 118 <sect2 id="contents-libxcrypt" role="content"> 185 119 <title>Contents of Libxcrypt</title> -
chapter08/lz4.xml
r7f3f152 rc04d98d 60 60 61 61 </sect2> 62 63 <!-- - - - - - - - - - -->64 <!-- Multilib - 32bit -->65 <!-- - - - - - - - - - -->66 <sect2 arch="ml_32,ml_all" role="installation">67 <title>Installation of Lz4 - 32bit</title>68 69 <para>Clean previous build:</para>70 71 <screen><userinput remap="pre">make clean</userinput></screen>72 73 <para>Compile the package:</para>74 75 <screen><userinput remap="make">CC="gcc -m32" make BUILD_STATIC=no</userinput></screen>76 77 <para>Install the package:</para>78 79 <screen><userinput remap="install">make BUILD_STATIC=no PREFIX=/usr LIBDIR=/usr/lib32 DESTDIR=$(pwd)/m32 install &&80 cp -a m32/usr/lib32/* /usr/lib32/81 </userinput></screen>82 83 </sect2><!-- m32 -->84 85 <!-- - - - - - - - - - -->86 <!-- Multilib - x32bit -->87 <!-- - - - - - - - - - -->88 <sect2 arch="ml_x32,ml_all" role="installation">89 <title>Installation of Lz4 - x32bit</title>90 91 <para>Clean previous build:</para>92 93 <screen><userinput remap="pre">make clean</userinput></screen>94 95 <para>Compile the package:</para>96 97 <screen><userinput remap="make">CC="gcc -mx32" make BUILD_STATIC=no</userinput></screen>98 99 <para>Install the package:</para>100 101 <screen><userinput remap="install">make BUILD_STATIC=no PREFIX=/usr LIBDIR=/usr/libx32 DESTDIR=$(pwd)/mx32 install &&102 cp -a mx32/usr/libx32/* /usr/libx32/103 </userinput></screen>104 105 </sect2><!-- mx32 -->106 62 107 63 <sect2 id="contents-lz4" role="content"> -
chapter08/ncurses.xml
r7f3f152 rc04d98d 177 177 178 178 <screen role="nodump"><userinput>make distclean 179 ./configure --prefix=/usr \ 180 --with-shared \ 181 --without-normal \ 182 --with-cxx-shared \ 183 --without-debug \ 179 ./configure --prefix=/usr \ 180 --with-shared \ 181 --without-normal \ 182 --without-debug \ 184 183 --without-cxx-binding \ 185 184 --with-abi-version=5 … … 189 188 190 189 </sect2> 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="gcc -m32" CXX="g++ -m32" \205 ./configure --prefix=/usr \206 --host=i686-pc-linux-gnu \207 --libdir=/usr/lib32 \208 --mandir=/usr/share/man \209 --with-shared \210 --without-debug \211 --without-normal \212 --with-cxx-shared \213 --enable-pc-files \214 --with-pkg-config-libdir=/usr/lib32/pkgconfig</userinput></screen>215 216 <para>Compile the package:</para>217 218 <screen><userinput remap="make">make</userinput></screen>219 220 <para>Install the package:</para>221 222 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install223 mkdir -p DESTDIR/usr/lib32/pkgconfig224 for lib in ncurses form panel menu ; do225 rm -vf DESTDIR/usr/lib32/lib${lib}.so226 echo "INPUT(-l${lib}w)" > DESTDIR/usr/lib32/lib${lib}.so227 ln -svf ${lib}w.pc DESTDIR/usr/lib32/pkgconfig/$lib.pc228 done229 rm -vf DESTDIR/usr/lib32/libcursesw.so230 echo "INPUT(-lncursesw)" > DESTDIR/usr/lib32/libcursesw.so231 ln -sfv libncurses.so DESTDIR/usr/lib32/libcurses.so232 cp -Rv DESTDIR/usr/lib32/* /usr/lib32233 rm -rf DESTDIR</userinput></screen>234 235 </sect2><!-- m32 -->236 237 <!-- - - - - - - - - - -->238 <!-- Multilib - x32bit -->239 <!-- - - - - - - - - - -->240 <sect2 arch="ml_x32,ml_all">241 <title>Building Ncurses - x32bit</title>242 243 <para>Clean previous build:</para>244 245 <screen><userinput remap="pre">make distclean</userinput></screen>246 247 <para>Prepare Ncurses for compilation:</para>248 249 <screen><userinput remap="configure">CC="gcc -mx32" CXX="g++ -mx32" \250 ./configure --prefix=/usr \251 --host=x86_64-pc-linux-gnux32 \252 --libdir=/usr/libx32 \253 --mandir=/usr/share/man \254 --with-shared \255 --without-debug \256 --without-normal \257 --enable-pc-files \258 --with-pkg-config-libdir=/usr/libx32/pkgconfig</userinput></screen>259 260 <para>Compile the package:</para>261 262 <screen><userinput remap="make">make</userinput></screen>263 264 <para>Install the package:</para>265 266 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install267 mkdir -p DESTDIR/usr/libx32/pkgconfig268 for lib in ncurses form panel menu ; do269 rm -vf DESTDIR/usr/libx32/lib${lib}.so270 echo "INPUT(-l${lib}w)" > DESTDIR/usr/libx32/lib${lib}.so271 ln -svf ${lib}w.pc DESTDIR/usr/libx32/pkgconfig/$lib.pc272 done273 rm -vf DESTDIR/usr/libx32/libcursesw.so274 echo "INPUT(-lncursesw)" > DESTDIR/usr/libx32/libcursesw.so275 ln -sfv libncurses.so DESTDIR/usr/libx32/libcurses.so276 cp -Rv DESTDIR/usr/libx32/* /usr/libx32277 rm -rf DESTDIR</userinput></screen>278 279 </sect2><!-- mx32 -->280 190 281 191 <sect2 id="contents-ncurses" role="content"> -
chapter08/openssl.xml
r7f3f152 rc04d98d 111 111 112 112 </sect2> 113 114 <!-- - - - - - - - - - -->115 <!-- Multilib - 32bit -->116 <!-- - - - - - - - - - -->117 118 <sect2 arch="ml_32,ml_all" role="installation">119 <title>Installation of OpenSSL - 32bit</title>120 121 <para>Clean previous build:</para>122 123 <screen><userinput remap="pre">make distclean</userinput></screen>124 125 <para>Prepare OpenSSL for compilation:</para>126 127 <screen><userinput remap="configure">./config --prefix=/usr \128 --openssldir=/etc/ssl \129 --libdir=lib32 \130 shared \131 zlib-dynamic \132 linux-x86</userinput></screen>133 134 <para>Compile the package:</para>135 136 <screen><userinput remap="make">make</userinput></screen>137 138 <para>Install the package:</para>139 140 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install141 cp -Rv DESTDIR/usr/lib32/* /usr/lib32142 rm -rf DESTDIR</userinput></screen>143 144 </sect2><!-- m32 -->145 146 <!-- - - - - - - - - - -->147 <!-- Multilib - x32bit -->148 <!-- - - - - - - - - - -->149 150 <sect2 arch="ml_x32,ml_all" role="installation">151 <title>Installation of OpenSSL - x32bit</title>152 153 <para>Clean previous build:</para>154 155 <screen><userinput remap="pre">make distclean</userinput></screen>156 157 <para>Prepare OpenSSL for compilation:</para>158 159 <screen><userinput remap="configure">./config --prefix=/usr \160 --openssldir=/etc/ssl \161 --libdir=libx32 \162 shared \163 zlib-dynamic \164 linux-x32</userinput></screen>165 166 <para>Compile the package:</para>167 168 <screen><userinput remap="make">make</userinput></screen>169 170 <para>Install the package:</para>171 172 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install173 cp -Rv DESTDIR/usr/libx32/* /usr/libx32174 rm -rf DESTDIR</userinput></screen>175 176 </sect2><!-- mx32 -->177 113 178 114 <sect2 id="contents-openssl" role="content"> -
chapter08/pkgconf.xml
r7f3f152 rc04d98d 64 64 <screen><userinput remap="install">ln -sv pkgconf /usr/bin/pkg-config 65 65 ln -sv pkgconf.1 /usr/share/man/man1/pkg-config.1</userinput></screen> 66 <!--67 <para arch="ml_32,ml_x32,ml_all">68 For better support of the multilib platform create some69 additional files by executing the following commands:70 </para>71 66 72 <screen arch="ml_32,ml_x32,ml_all"><userinput remap="install">ln -sv pkgconf /usr/bin/i686-pc-linux-gnu-pkg-config73 ln -sv pkgconf /usr/bin/x86_64-pc-linux-gnux32-pkg-config74 ln -sv pkgconf /usr/bin/x86_64-pc-linux-gnu-pkg-config75 76 mkdir -pv /usr/share/pkgconfig/personality.d77 78 cat > /usr/share/pkgconfig/personality.d/i686-pc-linux-gnu.personality <<EOF79 Triplet: i686-pc-linux-gnu80 SysrootDir: /81 DefaultSearchPaths: /usr/lib32/pkgconfig:/usr/share/pkgconfig82 SystemIncludePaths: /usr/include83 SystemLibraryPaths: /usr/lib3284 EOF85 86 cat > /usr/share/pkgconfig/personality.d/x86_64-pc-linux-gnux32.personality <<EOF87 Triplet: x86_64-pc-linux-gnux3288 SysrootDir: /89 DefaultSearchPaths: /usr/libx32/pkgconfig:/usr/share/pkgconfig90 SystemIncludePaths: /usr/include91 SystemLibraryPaths: /usr/libx3292 EOF93 94 cat > /usr/share/pkgconfig/personality.d/x86_64-pc-linux-gnu.personality <<EOF95 Triplet: x86_64-pc-linux-gnu96 SysrootDir: /97 DefaultSearchPaths: /usr/lib/pkgconfig:/usr/share/pkgconfig98 SystemIncludePaths: /usr/include99 SystemLibraryPaths: /usr/lib100 EOF101 </userinput></screen>102 -->103 67 </sect2> 104 68 -
chapter08/readline.xml
r7f3f152 rc04d98d 112 112 </sect2> 113 113 114 <!-- - - - - - - - - - -->115 <!-- Multilib - 32bit -->116 <!-- - - - - - - - - - -->117 118 <sect2 arch="ml_32,ml_all" role="installation">119 <title>Installation of Readline - 32bit</title>120 121 <para>Clean previous build:</para>122 123 <screen><userinput remap="pre">make distclean</userinput></screen>124 125 <para>Prepare Readline for compilation:</para>126 127 <screen><userinput remap="configure">CC="gcc -m32" ./configure \128 --host=i686-pc-linux-gnu \129 --prefix=/usr \130 --libdir=/usr/lib32 \131 --disable-static \132 --with-curses</userinput></screen>133 134 <para>Compile the package:</para>135 136 <screen><userinput remap="make">make SHLIB_LIBS="-lncursesw"</userinput></screen>137 138 <para>Install the package:</para>139 140 <screen><userinput remap="install">make SHLIB_LIBS="-lncursesw" DESTDIR=$PWD/DESTDIR install141 cp -Rv DESTDIR/usr/lib32/* /usr/lib32142 rm -rf DESTDIR</userinput></screen>143 144 </sect2><!-- m32 -->145 146 <!-- - - - - - - - - - -->147 <!-- Multilib - x32bit -->148 <!-- - - - - - - - - - -->149 150 <sect2 arch="ml_x32,ml_all" role="installation">151 <title>Installation of Readline - x32bit</title>152 153 <para>Clean previous build:</para>154 155 <screen><userinput remap="pre">make distclean</userinput></screen>156 157 <para>Prepare Readline for compilation:</para>158 159 <screen><userinput remap="configure">CC="gcc -mx32" ./configure \160 --host=x86_64-pc-linux-gnux32 \161 --prefix=/usr \162 --libdir=/usr/libx32 \163 --disable-static \164 --with-curses</userinput></screen>165 166 <para>Compile the package:</para>167 168 <screen><userinput remap="make">make SHLIB_LIBS="-lncursesw"</userinput></screen>169 170 <para>Install the package:</para>171 172 <screen><userinput remap="install">make SHLIB_LIBS="-lncursesw" DESTDIR=$PWD/DESTDIR install173 cp -Rv DESTDIR/usr/libx32/* /usr/libx32174 rm -rf DESTDIR</userinput></screen>175 176 </sect2><!-- mx32 -->177 178 114 <sect2 id="contents-readline" role="content"> 179 115 <title>Contents of Readline</title> -
chapter08/stripping.xml
r7f3f152 rc04d98d 80 80 81 81 cd /usr/lib 82 82 83 for LIB in $save_usrlib; do 83 84 objcopy --only-keep-debug --compress-debug-sections=zlib $LIB $LIB.dbg … … 87 88 install -vm755 /tmp/$LIB /usr/lib 88 89 rm /tmp/$LIB 89 done</userinput> 90 <userinput arch="ml_32,ml_all"> 91 cd /usr/lib32 92 for LIB in $save_usrlib; do 93 objcopy --only-keep-debug $LIB $LIB.dbg 94 cp $LIB /tmp/$LIB 95 strip --strip-unneeded /tmp/$LIB 96 objcopy --add-gnu-debuglink=$LIB.dbg /tmp/$LIB 97 install -vm755 /tmp/$LIB /usr/lib32 98 rm /tmp/$LIB 99 done</userinput> 100 <userinput arch="ml_x32,ml_all"> 101 cd /usr/libx32 102 for LIB in $save_usrlib; do 103 objcopy --only-keep-debug $LIB $LIB.dbg 104 cp $LIB /tmp/$LIB 105 strip --strip-unneeded /tmp/$LIB 106 objcopy --add-gnu-debuglink=$LIB.dbg /tmp/$LIB 107 install -vm755 /tmp/$LIB /usr/libx32 108 rm /tmp/$LIB 109 done</userinput><userinput> 90 done 110 91 111 92 online_usrbin="bash find strip" … … 132 113 install -vm755 /tmp/$LIB /usr/lib 133 114 rm /tmp/$LIB 134 done</userinput><userinput arch="ml_32,ml_all"> 135 for LIB in $online_usrlib; do 136 cp /usr/lib32/$LIB /tmp/$LIB 137 strip --strip-unneeded /tmp/$LIB 138 install -vm755 /tmp/$LIB /usr/lib32 139 rm /tmp/$LIB 140 done</userinput><userinput arch="ml_x32,ml_all"> 141 for LIB in $online_usrlib; do 142 cp /usr/libx32/$LIB /tmp/$LIB 143 strip --strip-unneeded /tmp/$LIB 144 install -vm755 /tmp/$LIB /usr/libx32 145 rm /tmp/$LIB 146 done</userinput><userinput> 115 done 147 116 148 117 for i in $(find /usr/lib -type f -name \*.so* ! -name \*dbg) \ … … 155 124 ;; 156 125 esac 157 done</userinput><userinput arch="ml_32,ml_all"> 158 for i in $(find /usr/lib32 -type f -name \*.so* ! -name \*dbg) \ 159 $(find /usr/lib32 -type f -name \*.a); do 160 case "$online_usrbin $online_usrlib $save_usrlib" in 161 *$(basename $i)* ) 162 ;; 163 * ) strip --strip-unneeded $i 164 ;; 165 esac 166 done</userinput><userinput arch="ml_x32,ml_all"> 167 for i in $(find /usr/libx32 -type f -name \*.so* ! -name \*dbg) \ 168 $(find /usr/libx32 -type f -name \*.a); do 169 case "$online_usrbin $online_usrlib $save_usrlib" in 170 *$(basename $i)* ) 171 ;; 172 * ) strip --strip-unneeded $i 173 ;; 174 esac 175 done</userinput><userinput> 126 done 176 127 177 128 unset BIN LIB save_usrlib online_usrbin online_usrlib -
chapter08/systemd.xml
r7f3f152 rc04d98d 263 263 264 264 </sect2> 265 266 <!-- - - - - - - - - - -->267 <!-- Multilib - 32bit -->268 <!-- - - - - - - - - - -->269 270 <sect2 arch="ml_32,ml_all" role="installation">271 <title>Installation of systemd - 32-bit</title>272 273 <para>Clean previous build:</para>274 275 <screen><userinput remap="pre">rm -rf *</userinput></screen>276 277 <para>Create a symlink to work around missing xsltproc:</para>278 279 <!-- screen><userinput remap="pre">ln -sf /tools/bin/true /usr/bin/xsltproc</userinput></screen -->280 <screen><userinput remap="pre">ln -sf /bin/true /usr/bin/xsltproc</userinput></screen>281 282 <!-- with cross-LFS we have util-linux in place:283 <para>Because we have not yet installed the final version of Util-Linux,284 create links to the libraries in the approprite location:</para>285 286 <screen><userinput remap="pre">for file in /tools/lib32/lib{blkid,mount,uuid}*; do287 ln -sf $file /usr/lib32/288 done</userinput></screen>289 -->290 291 <para>Prepare systemd for compilation:</para>292 293 <screen><userinput remap="configure">PKG_CONFIG_PATH="/usr/lib32/pkgconfig" \294 CC="gcc -m32 -march=i686" \295 CXX="g++ -m32 -march=i686" \296 LANG=en_US.UTF-8 \297 meson --prefix=/usr \298 --sysconfdir=/etc \299 --localstatedir=/var \300 --libdir=/usr/lib32 \301 -Drootlibdir=/usr/lib32 \302 -Dblkid=true \303 -Ddefault-dnssec=no \304 -Dfirstboot=false \305 -Dinstall-tests=false \306 -Dldconfig=false \307 -Dsysusers=false \308 -Db_lto=false \309 -Drpmmacrosdir=no \310 -Dhomed=false \311 -Duserdb=false \312 -Dman=false \313 -Dmode=release \314 ..</userinput></screen>315 316 <para>Compile the package:</para>317 318 <screen><userinput remap="make">LANG=en_US.UTF-8 ninja</userinput></screen>319 320 <para>Install the package:</para>321 322 <screen><userinput remap="install">LANG=en_US.UTF-8 DESTDIR=$PWD/DESTDIR ninja install323 cp -Rv DESTDIR/usr/lib32/* /usr/lib32324 rm -rf DESTDIR325 rm -f /usr/bin/xsltproc</userinput></screen>326 327 </sect2><!-- m32 -->328 329 <!-- - - - - - - - - - -->330 <!-- Multilib - x32bit -->331 <!-- - - - - - - - - - -->332 333 <sect2 arch="ml_x32,ml_all" role="installation">334 <title>Installation of systemd - x32-bit</title>335 336 <para>Clean previous build:</para>337 338 <screen><userinput remap="pre">rm -rf *</userinput></screen>339 340 <para>Create a symlink to work around missing xsltproc:</para>341 342 <screen><userinput remap="pre">ln -sf /bin/true /usr/bin/xsltproc</userinput></screen>343 <!--344 <para>Fix an issue on x32:</para>345 346 <screen><userinput remap="pre">sed '/log_debug/s@PRI_TIMEX@PRIi64@' -i src/timesync/timesyncd-manager.c347 sed '/long drift_freq;/s@long @int64_t @' -i src/timesync/timesyncd-manager.h</userinput></screen>348 -->349 <para>Prepare systemd for compilation:</para>350 351 <screen><userinput remap="configure">PKG_CONFIG_PATH="/usr/libx32/pkgconfig" \352 CC="gcc -mx32" \353 CXX="g++ -mx32" \354 CFLAGS+=" -Wno-error=shift-overflow" \355 CXXFLAGS+=" -Wno-error=shift-overflow" \356 LANG=en_US.UTF-8 \357 meson --prefix=/usr \358 --sysconfdir=/etc \359 --localstatedir=/var \360 --libdir=/usr/libx32 \361 -Drootlibdir=/usr/libx32 \362 -Dblkid=true \363 -Ddefault-dnssec=no \364 -Dfirstboot=false \365 -Dinstall-tests=false \366 -Dldconfig=false \367 -Dsysusers=false \368 -Db_lto=false \369 -Drpmmacrosdir=no \370 -Dhomed=false \371 -Duserdb=false \372 -Dman=false \373 -Dmode=release \374 ..</userinput></screen>375 376 <para>Compile the package:</para>377 378 <screen><userinput remap="make">LANG=en_US.UTF-8 ninja</userinput></screen>379 380 <para>Install the package:</para>381 382 <screen><userinput remap="install">LANG=en_US.UTF-8 DESTDIR=$PWD/DESTDIR ninja install383 cp -Rv DESTDIR/usr/libx32/* /usr/libx32384 rm -rf DESTDIR385 rm -f /usr/bin/xsltproc</userinput></screen>386 387 </sect2><!-- mx32 -->388 265 389 266 <sect2 id="contents-systemd" role="content"> -
chapter08/udev.xml
r7f3f152 rc04d98d 196 196 </sect2> 197 197 198 <!-- - - - - - - - - - -->199 <!-- Multilib - 32bit -->200 <!-- - - - - - - - - - -->201 <sect2 arch="ml_32,ml_all" role="installation">202 <title>Installation of Udev - 32bit</title>203 204 <para>Clean previous build (while still in the build directory):</para>205 206 <screen><userinput remap="pre">rm -rf *</userinput></screen>207 208 <para>Prepare Udev for compilation:</para>209 210 <screen><userinput remap="configure">PKG_CONFIG_PATH="/usr/lib32/pkgconfig" \211 CC="gcc -m32 -march=i686" \212 CXX="g++ -m32 -march=i686" \213 LANG=en_US.UTF-8 \214 meson setup \215 --prefix=/usr \216 --buildtype=release \217 -Dmode=release \218 -Ddev-kvm-mode=0660 \219 -Dlink-udev-shared=false \220 -Dlogind=false \221 -Dvconsole=false \222 ..</userinput></screen>223 224 <para>Compile the package:</para>225 226 <screen><userinput remap="make">ninja \227 $(grep -o -E "^build (src/libudev|src/udev)[^:]*" \228 build.ninja | awk '{ print $2 }') \229 $(realpath libudev.so --relative-to .)</userinput></screen>230 231 <para>Install the package:</para>232 233 <screen><userinput remap="install">mkdir -pv /usr/lib32/pkgconfig &&234 cp -av libudev.so{,*[0-9]} /usr/lib32/ &&235 sed -e "s;/usr/lib;&32;g" src/libudev/libudev.pc > /usr/lib32/pkgconfig/libudev.pc</userinput></screen>236 237 </sect2><!-- m32 -->238 239 <!-- - - - - - - - - - -->240 <!-- Multilib - x32bit -->241 <!-- - - - - - - - - - -->242 <sect2 arch="ml_x32,ml_all" role="installation">243 <title>Installation of Udev - x32bit</title>244 <para>Clean previous build (while still in the build directory):</para>245 246 <screen><userinput remap="pre">rm -rf *</userinput></screen>247 248 <para>Prepare Udev for compilation:</para>249 250 <screen><userinput remap="configure">PKG_CONFIG_PATH="/usr/libx32/pkgconfig" \251 CC="gcc -mx32" \252 CXX="g++ -mx32" \253 CFLAGS+=" -Wno-error=shift-overflow" \254 CXXFLAGS+=" -Wno-error=shift-overflow" \255 LANG=en_US.UTF-8 \256 meson setup \257 --prefix=/usr \258 --buildtype=release \259 -Dmode=release \260 -Ddev-kvm-mode=0660 \261 -Dlink-udev-shared=false \262 -Dlogind=false \263 -Dvconsole=false \264 ..</userinput></screen>265 266 <para>Compile the package:</para>267 268 <screen><userinput remap="make">ninja \269 $(grep -o -E "^build (src/libudev|src/udev)[^:]*" \270 build.ninja | awk '{ print $2 }') \271 $(realpath libudev.so --relative-to .)</userinput></screen>272 273 <para>Install the package:</para>274 275 <screen><userinput remap="install">mkdir -pv /usr/libx32/pkgconfig &&276 cp -av libudev.so{,*[0-9]} /usr/libx32/ &&277 sed -e "s;/usr/lib;&x32;g" src/libudev/libudev.pc > /usr/libx32/pkgconfig/libudev.pc</userinput></screen>278 279 </sect2><!-- mx32 -->280 281 198 <sect2 id="conf-udev" role="configuration"> 282 199 <title>Configuring Udev</title> -
chapter08/util-linux.xml
r7f3f152 rc04d98d 138 138 --> 139 139 </sect2> 140 141 <!-- - - - - - - - - - -->142 <!-- Multilib - 32bit -->143 <!-- - - - - - - - - - -->144 145 <sect2 arch="ml_32,ml_all" role="installation">146 <title>Installation of Util-linux - 32-bit</title>147 148 <para>Clean previous build:</para>149 150 <screen><userinput remap="pre">make distclean</userinput></screen>151 152 <para>Move a tool out of the way which is optionally used by153 configure but will report invalid pathes for multilib builds.</para>154 155 <screen><userinput remap="configure">mv /usr/bin/ncursesw6-config{,.tmp}</userinput></screen>156 157 <para>Prepare Util-linux for compilation:</para>158 159 <screen revision="sysv"><userinput remap="configure">CC="gcc -m32" \160 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \161 --host=i686-pc-linux-gnu \162 --libdir=/usr/lib32 \163 --runstatedir=/run \164 --sbindir=/usr/sbin \165 --docdir=/usr/share/doc/util-linux-&util-linux-version; \166 --disable-chfn-chsh \167 --disable-login \168 --disable-nologin \169 --disable-su \170 --disable-setpriv \171 --disable-runuser \172 --disable-pylibmount \173 --disable-liblastlog2 \174 --disable-static \175 --without-python \176 --without-systemd \177 --without-systemdsystemunitdir</userinput></screen>178 179 <screen revision="systemd"><userinput remap="configure">CC="gcc -m32" \180 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \181 --host=i686-pc-linux-gnu \182 --libdir=/usr/lib32 \183 --runstatedir=/run \184 --sbindir=/usr/sbin \185 --docdir=/usr/share/doc/util-linux-&util-linux-version; \186 --disable-chfn-chsh \187 --disable-login \188 --disable-nologin \189 --disable-su \190 --disable-setpriv \191 --disable-runuser \192 --disable-pylibmount \193 --disable-liblastlog2 \194 --disable-static \195 --without-python</userinput></screen>196 197 <para>Restore the tool previously moved away:</para>198 199 <screen><userinput remap="configure">mv /usr/bin/ncursesw6-config{.tmp,}</userinput></screen>200 201 <para>Compile the package:</para>202 203 <screen><userinput remap="make">make</userinput></screen>204 205 <para>Install the package:</para>206 207 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install208 cp -Rv DESTDIR/usr/lib32/* /usr/lib32209 rm -rf DESTDIR</userinput></screen>210 211 </sect2><!-- m32 -->212 213 <!-- - - - - - - - - - -->214 <!-- Multilib - x32bit -->215 <!-- - - - - - - - - - -->216 217 <sect2 arch="ml_x32,ml_all" role="installation">218 <title>Installation of Util-linux - x32-bit</title>219 220 <para>Clean previous build:</para>221 222 <screen><userinput remap="pre">make distclean</userinput></screen>223 224 <para>Move a tool out of the way which is optionally used by225 configure but will report invalid pathes for multilib builds.</para>226 227 <screen><userinput remap="configure">mv /usr/bin/ncursesw6-config{,.tmp}</userinput></screen>228 229 <para>Prepare Util-linux for compilation:</para>230 231 <screen revision="sysv"><userinput remap="configure">CC="gcc -mx32" \232 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \233 --host=x86_64-pc-linux-gnux32 \234 --libdir=/usr/libx32 \235 --runstatedir=/run \236 --sbindir=/usr/sbin \237 --docdir=/usr/share/doc/util-linux-&util-linux-version; \238 --disable-chfn-chsh \239 --disable-login \240 --disable-nologin \241 --disable-su \242 --disable-setpriv \243 --disable-runuser \244 --disable-pylibmount \245 --disable-liblastlog2 \246 --disable-static \247 --without-python \248 --without-systemd \249 --without-systemdsystemunitdir</userinput></screen>250 251 <screen revision="systemd"><userinput remap="configure">CC="gcc -mx32" \252 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \253 --host=x86_64-pc-linux-gnux32 \254 --libdir=/usr/libx32 \255 --runstatedir=/run \256 --sbindir=/usr/sbin \257 --docdir=/usr/share/doc/util-linux-&util-linux-version; \258 --disable-chfn-chsh \259 --disable-login \260 --disable-nologin \261 --disable-su \262 --disable-setpriv \263 --disable-runuser \264 --disable-pylibmount \265 --disable-liblastlog2 \266 --disable-static \267 --without-python</userinput></screen>268 269 <para>Restore the tool previously moved away:</para>270 271 <screen><userinput remap="configure">mv /usr/bin/ncursesw6-config{.tmp,}</userinput></screen>272 273 <para>Compile the package:</para>274 275 <screen><userinput remap="make">make</userinput></screen>276 277 <para>Install the package:</para>278 279 <screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install280 cp -Rv DESTDIR/usr/libx32/* /usr/libx32281 rm -rf DESTDIR</userinput></screen>282 283 </sect2><!-- mx32 -->284 140 285 141 <sect2 id="contents-utillinux" role="content"> -
chapter08/xz.xml
r7f3f152 rc04d98d 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
r7f3f152 rc04d98d 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
r7f3f152 rc04d98d 65 65 66 66 </sect2> 67 68 <!-- - - - - - - - - - -->69 <!-- Multilib - 32bit -->70 <!-- - - - - - - - - - -->71 72 <sect2 arch="ml_32,ml_all" role="installation">73 <title>Installation of Zstd - 32bit</title>74 75 <para>Clean previous build:</para>76 77 <screen><userinput remap="pre">make clean</userinput></screen>78 79 <para>Compile the package:</para>80 81 <screen><userinput remap="make">CC="gcc -m32" make prefix=/usr</userinput></screen>82 83 <para>Install the package:</para>84 85 <screen><userinput remap="install">make prefix=/usr DESTDIR=$PWD/DESTDIR install86 cp -Rv DESTDIR/usr/lib/* /usr/lib32/87 sed -e "/^libdir/s/lib$/lib32/" -i /usr/lib32/pkgconfig/libzstd.pc88 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 Zstd - x32bit</title>98 99 <para>Clean previous build:</para>100 101 <screen><userinput remap="pre">make clean</userinput></screen>102 103 <para>Compile the package:</para>104 105 <screen><userinput remap="make">CC="gcc -mx32" make prefix=/usr</userinput></screen>106 107 <para>Install the package:</para>108 109 <screen><userinput remap="install">make prefix=/usr DESTDIR=$PWD/DESTDIR install110 cp -Rv DESTDIR/usr/lib/* /usr/libx32/111 sed -e "/^libdir/s/lib$/libx32/" -i /usr/libx32/pkgconfig/libzstd.pc112 rm -rf DESTDIR</userinput></screen>113 114 </sect2><!-- mx32 -->115 67 116 68 <sect2 id="contents-zstd" role="content"> -
chapter10/kernel.xml
r7f3f152 rc04d98d 187 187 </note> 188 188 189 <note arch="ml_32,ml_x32,ml_all">190 <para>191 The kernel on a multilib system needs to be able to192 identify and start binaries compiled for different architectures193 than the default.194 </para>195 196 <para arch="ml_32,ml_all">197 If support for any 32bit ABI was built, make sure that the option198 "IA32 Emulation" is selected. The option 'IA32 a.out support' is199 optional.200 </para>201 202 <para arch="ml_x32,ml_all">203 If support for the x32bit ABI was built, make sure that the option204 "x32 ABI for 64-bit mode" is selected.205 </para>206 207 <screen arch="ml_32">Binary Emulations --->208 [*] IA32 Emulation [CONFIG_IA32_EMULATION]209 <M> IA32 a.out support [CONFIG_IA32_AOUT]210 </screen>211 <screen arch="ml_x32">Binary Emulations --->212 [*] x32 ABI for 64-bit mode [CONFIG_X86_X32]213 </screen>214 <screen arch="ml_all">Binary Emulations --->215 [*] IA32 Emulation [CONFIG_IA32_EMULATION]216 <M> IA32 a.out support [CONFIG_IA32_AOUT]217 [*] x32 ABI for 64-bit mode [CONFIG_X86_X32]218 </screen>219 </note>220 221 189 <variablelist> 222 190 <title>The rationale for the above configuration items:</title> -
packages.ent
r7f3f152 rc04d98d 349 349 <!ENTITY iproute2-fin-du "17 MB"> 350 350 <!ENTITY iproute2-fin-sbu "0.1 SBU"> 351 352 <!ENTITY isl-version "0.26">353 <!ENTITY isl-size "1,988 KB">354 <!-- ENTITY isl-url "http://isl.gforge.inria.fr/isl-&isl-version;.tar.xz" -->355 <!-- ENTITY isl-url "https://gcc.gnu.org/pub/gcc/infrastructure/isl-&isl-version;.tar.bz2" -->356 <!ENTITY isl-url "https://libisl.sourceforge.io/isl-&isl-version;.tar.xz">357 <!ENTITY isl-md5 "f2b56e8da688eba89838d414470da85f">358 <!ENTITY isl-home "http://libisl.sourceforge.io/">359 <!ENTITY isl-fin-du "20 MB">360 <!ENTITY isl-fin-sbu "0.1 SBU">361 351 362 352 <!ENTITY jinja2-version "3.1.4"> -
prologue/bookinfo.xml
r7f3f152 rc04d98d 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
r7f3f152 rc04d98d 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.